SQL语句(二)创建带主键和约束的数据表
创建带主键和约束的表
创建带组合主键和外键的表
-
Student (学生表)
-
CREATE TABLE Student ( sclass varchar(10) NOT NULL, --- 限制非空 snumb varchar(10) PRIMARY KEY, --- 设置为主键 sname varchar(40) NOT NULL, --- (下)设置默认值男,约束选项为男女 sgender varchar(4) DEFAULT '男' CONSTRAINT consgender CHECK (sgender IN('男', '女')), sbirthday date, sage int CONSTRAINT consage CHECK (sage >= 0 and sage <= 150) ) CONSTRAINT 约束名 CHECK (条件)
-
SELECT INTO Student VALUES('电气51', '10002', '王涛', '男', '1993-2-1', 18)
INSERT INTO Student(sclass, snumb, sname) VALUES('电气51', '10004', '王涛') ---> 产生默认性别男 SELECT * FROM Student
INSERT INTO Student(sclass, snumb) VALUES('电气51', '10005') ---- 出现错误: 不能将值 NULL 插入列 'sname'
以上为,加了约束之后的效果
- Course (课程)
CREATE TABLE Course
(
cnumb varchar(10) PRIMARY KEY, --- 设为主键
cname varchar(40) NOT NULL, --- 非空
chours int CONSTRAINT conshour CHECK(chours >= 0 and chours <= 300),
credit decimal(5,2) CONSTRAINT conscredit CHECK(credit >= 0 and credit < 20),
intro text --- text字段存放一段文字
)
INSERT INTO Course
VALUES('ENP09001', '理论力学', 56, 3, '研究物体机械运动的基本规律')
SELECT * FROM Course
-
study (选课表)
CREATE TABLE Study
(
snumb varchar(10),
cnumb varchar(10),
score decimal(5,2),
PRIMARY KEY (snumb, cnumb), ---- 设为组合主键
FOREIGN KEY (snumb) REFERENCES Student(snumb), ---- (参照完整性)声明是什么表中的外键(即:插入数据时,必须要在Student和Course存在才可以)
FOREIGN KEY (cnumb) REFERENCES Course (cnumb)
)
INSERT INTO Study
VALUES('10001', 'ENP09001', 90) --- snumb和cnumb必须要在Student和Course存在才可以
SELECT * FROM Student
SELECT * FROM Course
SELECT * FROM Study
3.总结:
//添加内容
四类数据完整性:
实体完整性,确保不出现完全相同的数据记录
区域完整性, 通过限制数据类型,检查约束,输入格式,外键约束,默认值,非空等体现
参考完整性,避免因一个数据表的记录改变而造成相关数据表内的数据变成无效值。
用户自定义完整性,用户自定义由用户根据实际应用中的需要自行定义。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理