本文已参与「新人创作礼」活动,一起开启掘金创作之路。
在实验一的基础上:数据库XSCJ,初始大小20MB,自动增长/最大大小1MB,收缩百分比50%
目的表
XSQK--学生情况
KC--课程
XS_KC--学生_课程
T-SQL创建表
1)新建查询
单击“标准”工具栏“新建查询”
2)切换数据库
在“SQL编辑器”工具栏单击“可用数据库”下拉按钮-->将当前数据库切换成“XSCJ”
3)输入T-SQL查询语句创建表
XSQK--学生情况
CREATE TABLE XSQK
(学号 CHAR(6) NOT NULL,
姓名 CHAR(8) NOT NULL,
性别 CHAR(2) NOT NULL,
出生日期 SMALLDATETIME NOT NULL,
专业名 CHAR(10) NOT NULL,
联系电话 CHAR(11),
备注 TEXT,
CONSTRAINT PK_XSQK_XH PRIMARY KEY(学号),
CONSTRAINT UQ_XSQK_DH UNIQUE(姓名),
CONSTRAINT CK_XSQK_DH CHECK(联系电话 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
GO
KC--课程
CREATE TABLE KC
(课程号 CHAR(3) NOT NULL PRIMARY KEY(课程号),
课程名 CHAR(20) NOT NULL,
授课教师 CHAR(8),
开课学期 TINYINT NOT NULL DEFAULT 1,
学时 TINYINT NOT NULL,
学分 TINYINT,
CONSTRAINT CK_KC_XQ CHECK(开课学期>=1 AND 开课学期<=8))
GO
XS_KC--学生_课程
CREATE TABLE XS_KC
(学号 CHAR(6) NOT NULL REFERENCES XSQK(学号),
课程号 CHAR(3) NOT NULL,
成绩 TINYINT CHECK(成绩>=0 AND 成绩<=100),
PRIMARY KEY(学号,课程号),
FOREIGN KEY(课程号) REFERENCES KC(课程号))
GO
4)执行命令
在“SQL编辑器”工具栏中单击“执行”
5)查看表
在“对象资源管理器”中单击“XSCJ”数据库-->单击“刷新”
SSMS创建表
单击“目标数据库”-->右键“表”-->“新建”-->“表”-->弹出表设计器窗口-->设置字段名、字段类型、是否可以为null-->保存
XSQK--学生情况
设置主键
右键“姓名”-->“设置主键”
KC--课程
设置列属性
单击某条字段后下方“列属性”可以进行设置,这里将默认值设置为1:
设置约束
右键需要设置约束的字段-->单击“CHECK约束”-->添加约束-->设置表达式
(这里题目要求设置约束值为1~8,使用AND连接两个条件)
注意AND语句后面语法:字段 符号 最大值
XS_KC--学生_课程
设置主键外键
-
一张表的某个字段如果是外键,表示该字段是另外一张表的主键!
-
建立关系时,数据类型必须一致!
设置外键时,右键需要设置外键的字段-->单击“关系”-->“常规”-->“表和列规范”-->单击···设置外键关系
这里报错如下:
考虑题目中XSQK表将“姓名”字段设置成主键错误,这里将XSQK表的主键修改为“学号”:
设置组合主键时,按住shift,再点击你要选中的列就ok了
设置约束
这里对“成绩”字段进行约束(成绩区间为0~100)
注意AND语句后面语法:字段 符号 最大值
查看创建的表(SQL创建)
右键需要查看的表-->单击“设计”
XSQK--学生情况
KC--课程
这里与题目要求稍有不同,“学时”字段可以为空。
做以下修改:
ALTER TABLE KC
MODIFY column 学时 TINYINT DEFAULT NULL;#可以为空
GO
这里已经删除SQL语句创建的表,不再做修改演示
XS_KC--学生_课程
手动添加数据
右键需要添加数据的表-->“编辑前200行”-->手动添加数据
XSQK--学生情况
KC--课程
XS_KC--学生_课程
注意
添加信息须注意约束,修改内容时也要注意约束,添加每一条数据须完整才能下一条
表的其他操作
删除数据
在上面手动填充的数据基础上,进行以下删除操作:
直接删除XSQK表中的数据:
这里因为主表XS_KC中用到了从表XSQK中的“学号”字段,因此不能直接删除XS_KC表中的数据
这里查看一下数据库关系图:
单击所在数据库XSCJ-->右键“数据库关系图”-->“新建数据库关系图”-->添加表,这里可以按住shift全部选中
删除成功
注意:
- 删除记录后不可以恢复
- 可以同时删除多条记录
- 先删除从表中的相关记录,然后才能删除主表中的相关的记录
Reference
强推:SQL server SSMS图形界面实现(创建表、约束、关系图)/文CSDN@自学之路←_←
SQL server 中设置CHECK约束/文CSDN@烟敛寒林o
sqlserver设置两个及两个以上主键/文CSDN@不坠青云之志