SQL语言编程学习系列(一)——数据库及表的创建与管理

2023-10-31

        本系列同样是记录代码为主,附带实验内容与要求,可参考代码,SQL编码习惯为小写且习惯性换行

        实验的环境和软件为Microsoft SQLServer 2019

实验内容:

1.创建教务管理数据库(jwgl),其数据文件和日志文件分别为jwgl_data.mdf和jwgl_log.ldf。

2.依据表1~表5所示创建对应的数据表,设置表的列名、数据类型及约束。


表1 学生表(student)

字段名称

字段类型及长度

说明

备注

sno

char(10)

学生学号

主键

sname

char(6)

学生姓名

非空

ssex

char(2)

学生性别

可为空

sbirth

smalldatetime

学生出生日期

可为空

clno

char(6)

班级编号

外键

表2 课程表(course)

字段名称

字段类型及长度

说明

备注

cno

char(4)

课程编号

主键

cname

varchar(20)

课程名称

非空

chours

int

学时

可为空

表3 选课表(sc)

字段名称

字段类型及长度

说明

备注

sno

char(10)

学生学号

外键,联合主键

cno

char(4)

课程编号

外键,联合主键

grade

int

成绩

可为空

表4 班级表(class)

字段名称

字段类型及长度

说明

备注

clno

char(6)

班级编号

主键

clname

varchar(20)

班级名称

非空

clth

char(9)

班主任编号

可为空

 表5 教师表(teacher)

字段名称

字段类型及长度

说明

备注

tno

char(7)

教师编号

主键

tname

char(10)

教师姓名

非空

tsex

char(2)

学生性别

默认为“男”

dept

char(20)

所在部门

可为空

sid

char(18)

身份证号

非空


--3-1-1
create database 教务系统 on primary
(name='jwgl',
filename='E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\jwgl.mdf',
size=30,maxsize=unlimited,filegrowth=10)
log on
(name='jwgl_log',
filename='E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\jwgl_log.ldf',
size=20,maxsize=2048gb,filegrowth=10)
go

--3-1-2
use 教务系统
create table course(
cno char(4) primary key,
cname varchar(20) not null,
chours int)
bulk insert 教务系统.dbo.course
from 'E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\ex3data\course.txt'


use 教务系统
create table class(
clno char(6) primary key,
clname varchar(20) not null,
clth char(9))
bulk insert 教务系统.dbo.class
from 'E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\ex3data\class.txt'


use 教务系统
create table teacher(
tno char(7) primary key,
tname char(10) not null,
tsex char(2) default'm',
dept char(20),
tid char(18) not null)


use 教务系统
create table student(
sno char(10) primary key,
sname char(6) not null,
ssex char(2),
sbirth char(20),
clno char(6) foreign key references class(clno))
bulk insert 教务系统.dbo.student
from 'E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\ex3data\student.txt'


use 教务系统
create table sc(
sno char(10) foreign key references student(sno),
cno char(4) foreign key references course(cno),primary key(sno,cno),
grade int)
bulk insert 教务系统.dbo.sc
from 'E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\ex3data\sc.txt'

3.在student表中增加新字段“班级编号(clno)”和“班级名称(clname)”。 

--3-1-3
alter table student
add clname varchar(20)

4.在student表中删除字段“班级名称(clname)”。

--3-1-4
alter table student
drop column clname

5.修改student表的sname字段的长度为6。

--3-1-5
alter table student
alter column sname char(6)

6.修改student表的sbirth字段的名称为sbirthday。

--3-1-6
EXEC sp_rename 'student.[sbirth]','sbirthday','column'

7.修改teacher表的名称为th_info。

--3-1-7
EXEC sp_rename @objname='teacher',@newname='th_info'

8.删除teacher表。

--3-1-8
drop table th_info

9.在sc表中为grade字段增加一个check约束,限制其值在0~100之间。

--3-1-9
alter table sc
add check (grade>=0 and grade<=100)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL语言编程学习系列(一)——数据库及表的创建与管理 的相关文章

  • SQL 多次更新与单次更新性能

    假设我有 10 000 行需要更新 什么会更快 UPDATE DB Servers SET Live 1 where name server1 UPDATE DB Servers SET Live 1 where name server2
  • 如何在MyBatis foreach中迭代HashMap?

    我正在尝试在 mybatis 中生成如下所示的 sql SELECT COL C FROM TBLE 1 WHERE COL A COL B in kp kar srt sach 而我的输入参数类型是HashMap 现在如何从映射器 xml
  • MySQL 按主键排序

    某些 SQL 服务器允许使用通用语句 例如ORDER BY PRIMARY KEY 我不相信这适用于 MySQL 是否有任何此类解决方法可以允许跨多个表自动选择 或者是否需要查找查询来确定主键 我一直在研究的解决方法包括调用SHOW COL
  • PostgreSQL Age() 函数:在不同月份登陆时出现不同/意外的结果

    今天 我在 PostgreSQL 9 6 中运行此查询时遇到了无法解释的结果 SELECT age 2018 06 30 2018 05 19 AS one age 2018 07 01 2018 05 20 AS two 两列的预期结果
  • Sql Server:如何在 WHERE 子句中使用 MAX 等聚合函数

    我想获得该记录的最大值 请帮我 SELECT rest field1 FROM mastertable AS m INNER JOIN SELECT t1 field1 field1 t2 field2 FROM table1 AS T1
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • 如何以最少的查询次数获取帖子列表和关联标签

    我的表格结构如下 标签 更多的是一个类别 id 标签名称 描述 slug POSTS ID 标题 网址 邮戳 id idPost idTag USERS ID 用户名 userSlug VOTES id idPost idUser 每个帖子
  • sql查询将两列与一列连接起来

    我在 MS Access 2010 中有 2 个表 如下所示 USERS u id u name LOAN l id l from ref users u id l to ref users u id l amount Users u id
  • 对于数据库来说,选择正确的数据类型会影响性能吗?

    如果是这样 为什么 我的意思是 tinyint 的搜索速度比 int 快吗 如果是这样 性能上的实际差异是什么 是的 根据数据类型 它确实有所不同 int vs tinyint不会在速度上产生明显的差异 但会在数据大小上产生差异 假设tin
  • 使用 Spark DataFrame 获取组后所有组的 TopN

    我有一个 Spark SQL DataFrame user1 item1 rating1 user1 item2 rating2 user1 item3 rating3 user2 item1 rating4 如何按用户分组然后返回TopN
  • SQL Server 用分隔符分割字符串

    我有一个输入字符串 100 2 3 101 2 1 103 2 3 我想解析它并将其添加到具有 3 列的表中 因此它应该是 f x col1 col2 col3 100 2 3 类似的其他数据以逗号分隔作为记录和 作为列 Thanks ni
  • 查找 PostgreSQL 中所有范围集合的所有交集

    我正在寻找一种有效的方法来查找时间戳范围集之间的所有交集 它需要与 PostgreSQL 9 2 配合使用 假设这些范围代表一个人可以见面的时间 每个人都可以有一个或多个空闲时间范围 我想找到all可以召开会议的时间段 即所有人都有空的时间
  • Mysql 检索所有有限制的行

    我想检索特定用户的所有行 限制为 0 x 所以我只是想问是否有任何方法可以检索 mysql 中的所有行 而不调用返回 x 的 count id 的方法 而不重载现有函数 该函数在查询中根本没有限制 与我们的 string Relace 功能
  • 独立对列进行排序,使得所有空值都位于每列的最后

    这是一个名为的示例表animal name color fox brown fox red dog gold 现在 我想要的是这样的结果 fox dog brown gold red 名称应该是结果的列 不同颜色值作为行 我的第一个想法是
  • 列中差异的数量

    我想检索一列每行中有多少个字母的差异 例如 如果您有一个值 test 而另一行有一个值 testing 则 test 和 testing 之间的差异为 4 个字母 该列的数据值为 4 I have reflected about it an
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 了解 SSMS 2008 中关系的更新和删除规则

    当我们定义外键约束时 我对 SQL Server 2008 Management Studio 中的更新和删除规则的含义感到困惑 我也没有找到相关的帮助文档 例如F1帮助 这是屏幕快照 如果有人能描述它们的含义并推荐一些相关文档来阅读 我将
  • 在 SQL 数据库中存储“列表”的最正确方法是什么?

    因此 我读了很多关于如何将多个值存储到一个列中是一个坏主意 并且违反了数据标准化的第一条规则 令人惊讶的是 这不是 不要谈论数据标准化 所以我需要一些帮助 目前我正在为我工 作的地方设计一个 ASP NET 网页 我想根据此人所属的 Act
  • 当所有维度值都具有 100% 重要性时处理多对多维度

    我至少会尽力保持简洁 假设我们正在跟踪一段时间内的账户余额 所以我们的事实表将包含诸如 账户余额情况表 FK 账户ID FK 日期ID Balance 显然你有一个账户维度表 and a 日期维度表 所以现在我们可以轻松地过滤帐户或日期 或
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和

随机推荐

  • noip模拟赛

    T1 给一个01矩阵 求一个最大子矩阵 矩阵内的和不超过k k leq n 2 n leq 500 sol O n 4 枚举左上角和右下角 发现后两维有单调性 可以用一个滑窗来搞 但其实非常优秀的枚举3个坐标然后二分第四个坐标的 O n 3
  • 黑盒白盒测试的区别

    一 黑盒测试 Black box Testing 黑盒测试也称功能测试 测试中把被测的软件当成一个黑盒子 不关心盒子的内部结构是什么 只关心软件的输入数据与输出数据 不看软件代码 只对功能进行测试 对软件进行操作 观察结果是否和我们想象的一
  • 【Python数据挖掘课程】五.线性回归知识及预测糖尿病实例

    今天主要讲述的内容是关于一元线性回归的知识 Python实现 包括以下内容 1 机器学习常用数据集介绍 2 什么是线性回顾 3 LinearRegression使用方法 4 线性回归判断糖尿病 前文推荐 Python数据挖掘课程 一 安装P
  • Ubuntu 20.04换国内源

    ubuntu默认的源是国处的源 更新下载速度较慢 因此安装好ubuntu20 04之后 将其源更新为国内的源 步骤如下 1 备份原始的源 源的路径 etc apt sources list 备份操作 cd etc apt cp source
  • 【电工技术】期末复习题

    1 电路是为实现人们的某种需求 由 电源 中间环节和负载三部分按一定方式组合起来 使电流流通的整体 2 在使用叠加定理对电路进行分析时 通常要对电源作除源处理 处理方法是将各个理想电压源 短接 将各个理想电流源 开路 3 利用戴维宁定理可以
  • 分析冰蝎三流量特征以及请求包

    1 使用wireshark获取冰蝎流量 首先在冰蝎中执行命令 捕捉流量 流量特征 可以看Accept字段的值 冰蝎脚本的这个请求值比较固定 还可以看user agent这个字段的值 还可以看content的值 2 分析流量 将数据包内容复制
  • 关于有些网站访问不了的问题

    1 网络攻击导致的 先要确定是不是仅仅一个用户的网页打不开 如果是一个用户的网页打不开 非常可能是这个网站的代码有问题 或许是域名没有分析好等原因 如果是大无数用户或全部用户的网页打不开 首要确定是不是攻击以致的 因为攻击有非常多种 例如C
  • 面试了一个00后,绝对能称为是内卷届的天花板

    前言 公司前段缺人 也面了不少测试 结果竟然没有一个合适的 一开始瞄准的就是中级的水准 也没指望来大牛 提供的薪资也不低 面试的人很多 但平均水平很让人失望 令我印象最深的是一个00后测试员 他技术基础方面确实还不错 面试也表现的非常自信
  • rsync服务

    文章目录 rsync简介 rsync特性 rsync的ssh认证协议 rsync命令 rsync简介 rsync是可以实现增量备份的工具 配合任务计划 rsync能实现定时或间隔同步 配合inotify或sersync 可以实现触发式的实时
  • 新一代树莓派 Raspberry Pi 2 性能测试之软件无线电追踪飞机信息

    新一代树莓派 Raspberry Pi 2 性能测试之软件无线电追踪飞机信息 转载自zza1003169 2015年02月28日 于 开源杂志 发表 安装开源软件无线电 GNU Radio 用电视棒追踪飞机轨迹 众所周知 树莓派 Raspb
  • Discuz!教程之当插件、门户或自定义页面设置成首页时手机版访问跳转到forum.php?mobile=yes的问题

    最近由于项目需要 将自定义单页设置为网站首页 测试过程中一直发现手机版无法访问 被强制跳转到了forum php mobile yes页面 仔细查看了一下Discuz 代码 source class discuz discuz applic
  • 免费python课程排行榜-重庆Python培训机构排行榜

    重庆千锋python全栈开发培训 0基础教学 带你玩转python开发 30天直追年薪20万 快速咨询 Python是一种非常强大的计算机语言 你可能已经听说过很多种流行编程语言 比如非常难学的C语言 非常流行的Java语言 适合初学者的B
  • Apollo如何通知/订阅主题topic

    转自 https blog csdn net u012423865 article details 80024870 How to advertise and subscribe a topic 导读 众所周知 Apollo是基于ROS开发
  • Qt5下串口对高频率自发性数据的接收及处理方法

    在项目中需要用Qt5 9采集仪表中的数据 仪表是以200Hz的频率主动向外连续发送数据 发送频率很高 而且主动发送 不需要软件发送一次 再读取一次 而是软件直接读取 这种直接连续读取 有两个关键点 1 如何从接收buffer里面查找出所需的
  • React:refs转发和useImperativeHandle

    具体的使用范例 可以参考官方API Refs转发 本人也是看了官方API以后自己所学习理解领悟的给记录一下 如果有不正确的地方 可以在文章下方的评论区参与评论 然后指正出来 欢迎各位来评论吧 refs是用来绑定元素的 一定要注意 React
  • Excel导出级联下拉功能实现

    效果如下 直接上代码 自己看 工具类 import cn hutool core util ObjectUtil import com alibaba fastjson JSONObject import lombok extern slf
  • Django vue 搭建前后端分离的web 二

    bootstrap的安装和使用 安装 在vue项目下使用npm直接安装即可 由于bootstrap依赖jQuery 所以第一步安装jQuery npm install jquery 检查在package json的dependencies中
  • 【FPGA实现SPI发送】——详解Verilog代码实现

    FPGA实现SPI发送 详解Verilog代码实现 在FPGA开发中 SPI Serial Peripheral Interface 通信协议是常用的一种 它可以实现单片机与外围设备的连接与数据传输 本文将详细讲解如何通过Verilog代码
  • IGBT基本工作原理及IGBT的作用是什么?

    IGBT由栅极 G 发射 E 和集电极 C 三个极控制 如图1 IGBT的开关作用是通过加正向栅极电压形成沟道 给PNP晶体管提供基极电流 使IGBT导通 反之 加反向门极电压消除沟道 切断基极电 使IGBT关断 由图2可知 若在IGBT的
  • SQL语言编程学习系列(一)——数据库及表的创建与管理

    本系列同样是记录代码为主 附带实验内容与要求 可参考代码 SQL编码习惯为小写且习惯性换行 实验的环境和软件为Microsoft SQLServer 2019 实验内容 1 创建教务管理数据库 jwgl 其数据文件和日志文件分别为jwgl