📄 示例-完整性.sql
字号:
--创建学生基本情况表
CREATE TABLE XS
( 学号 char(6) PRIMARY KEY,
姓名 char(8) NOT NULL,
身份证 char(20) CONSTRAINT sh_uk UNIQUE,
专业名 char(10) NULL,
性别 bit NOT NULL DEFAULT 1,
出生时间 smalldatetime NULL,
总学分 tinyint NULL CHECK(总学分<=50),
备注 text NULL,
CONSTRAINT chk CHECK
(学号 like '[0-9][0-9][0-9][0-9][0-9][0-9]')
)
--插入测试数据
INSERT xs VALUES('010001','王林' ,'140104198510121234','计算机',1,'1984.10.12',40,'本市')
INSERT xs VALUES('010002','程明' ,'','通信工程',0,'1985.1.1',20,NULL)
SELECT * FROM XS
--创建课程情况表
CREATE TABLE KC
(
课程号 char(3) PRIMARY KEY ,
课程名 char(16) NOT NULL ,
开课学期 tinyint NOT NULL ,
学时 tinyint NOT NULL ,
学分 tinyint NULL
)
--插入测试数据
INSERT KC VALUES('101','计算机基础', 1, 80, 5)
INSERT KC VALUES('102','程序设计语言', 2, 68, 4)
INSERT KC VALUES('206','离散数学', 4, 68, 4)
--创建学生选课情况表
CREATE TABLE XS_KC
( 学号 char(6) NOT NULL REFERENCES xs(学号),
课程号 char(3) NOT NULL REFERENCES KC(课程号),
成绩 tinyint NULL,
学分 tinyint NULL,
CONSTRAINT pk PRIMARY KEY(学号,课程号)
)
--插入测试数据
INSERT XS_KC(学号,课程号,成绩) VALUES('010001','101',80)
INSERT XS_KC(学号,课程号,成绩) VALUES('010001','102',78)
INSERT XS_KC(学号,课程号,成绩) VALUES('010002','101',62)
--检查DEFAULT约束
INSERT xs(学号,姓名,身份证) VALUES('010003','王燕' ,'不祥')
--检查NOT NULL约束
INSERT xs(学号,身份证) VALUES('010003','14010119700506133')
--检查PRIMARY KEY约束
INSERT xs VALUES('010002','王玉民' ,'','计算机',0,'1985.1.1',20,NULL)
INSERT XS_KC(学号,课程号,成绩) VALUES('010001','101',100)
--检查UNIQUE约束
INSERT xs(学号,姓名,身份证) VALUES('010004','王玉民' ,'140104198510121234')
INSERT xs(学号,姓名,身份证) VALUES('010004','王玉民' ,NULL)
INSERT xs(学号,姓名,身份证) VALUES('010005','张平' ,NULL)
--检查CHECK约束
INSERT xs(学号,姓名,身份证) VALUES('01006','赵高' ,'1234')
UPDATE xs SET 总学分=60 WHERE 学号 = '010003'
--检查FOREGIN KEY约束
INSERT XS_KC(学号,课程号,成绩) VALUES('010006','102',78)
UPDATE xs SET 学号='010007' WHERE 学号 = '010003'
UPDATE xs SET 学号='010008' WHERE 学号 = '010002'
DELETE xs WHERE 学号 = '010002'
SELECT * FROM XS
SELECT * FROM XS_KC
SELECT * FROM KC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -