SQL语句(二)创建带主键和约束的数据表
内容摘要
创建带主键和约束的表
创建带组合主键和外键的表
1. 创建带主键和约束的表
Student (学生表)
CREATE TABLE Student
(
sclass varchar() NOT NULL, --- 限制非空
snumb varchar() PRIMARY KEY, --- 设置为主键
sname varchar() NOT NULL, --- (下)设置默认值男,约束选项为男女
sgender varchar() DEFAULT '男' CONSTRAINT consgender CHECK (sgender IN('男', '女')),
sbirthday date,
sage int CONSTRAINT consage CHECK (sage >= and sage <= )
)
CONSTRAINT 约束名 CHECK (条件)SELECT INTO Student VALUES('电气51', '', '王涛', '男', '1993-2-1', )INSERT INTO Student(sclass, snumb, sname)
VALUES('电气51', '', '王涛') ---> 产生默认性别男
SELECT * FROM StudentINSERT INTO Student(sclass, snumb)
VALUES('电气51', '') ---- 出现错误: 不能将值 NULL 插入列 'sname'以上为,加了约束之后的效果
- Course (课程)

CREATE TABLE Course
(
cnumb varchar() PRIMARY KEY, --- 设为主键
cname varchar() NOT NULL, --- 非空
chours int CONSTRAINT conshour CHECK(chours >= and chours <= ),
credit decimal(,) CONSTRAINT conscredit CHECK(credit >= and credit < ),
intro text --- text字段存放一段文字
)
INSERT INTO Course
VALUES('ENP09001', '理论力学', , , '研究物体机械运动的基本规律') SELECT * FROM Course
2. 创建带组合约束和外键的表
study (选课表)

CREATE TABLE Study
(
snumb varchar(),
cnumb varchar(),
score decimal(,),
PRIMARY KEY (snumb, cnumb), ---- 设为组合主键
FOREIGN KEY (snumb) REFERENCES Student(snumb), ---- (参照完整性)声明是什么表中的外键(即:插入数据时,必须要在Student和Course存在才可以)
FOREIGN KEY (cnumb) REFERENCES Course (cnumb)
)
INSERT INTO Study
VALUES('', 'ENP09001', ) --- snumb和cnumb必须要在Student和Course存在才可以 SELECT * FROM Student
SELECT * FROM Course
SELECT * FROM Study
3.总结:

//添加内容
四类数据完整性:
实体完整性,确保不出现完全相同的数据记录
区域完整性, 通过限制数据类型,检查约束,输入格式,外键约束,默认值,非空等体现
参考完整性,避免因一个数据表的记录改变而造成相关数据表内的数据变成无效值。
用户自定义完整性,用户自定义由用户根据实际应用中的需要自行定义。




SQL语句(二)创建带主键和约束的数据表的更多相关文章
- SQL语句添加,删除主键
IF EXISTS (SELECT * FROM sys.all_objects WHERE type_desc= N'主键名')begin --删除主键 alter table 表名 drop ...
- Sql Server中的游标最好只用于有主键或唯一键的表
游标cursor,我想大多数人都在sql server里面用过.当一个表数据量不太大的时候,游标还是可以用的,毕竟游标是循环一个表中每一行数据的最简便办法.但是如果你用一个游标去循环一个没有主键或唯一 ...
- SQL Server学习之路(二):主键和外键
0.目录 1.定义 1.1 什么是主键和外键 1.2 主键和外键的作用 1.3 主键.外键和索引的区别 2.主键(primary key) 2.1 通过SSMS设置主键 2.2 通过SQL语句设置主键 ...
- SQL语句删除和添加外键、主键的方法
--删除外键 语法:alter table 表名 drop constraint 外键约束名 如: alter table Stu_PkFk_Sc drop constraint FK_s alter ...
- 【转】SQL语句删除和添加外键、主键
--删除外键 语法:alter table 表名 drop constraint 外键约束名 如: alter table Stu_PkFk_Sc drop constraint FK_s alter ...
- mysql创建,添加主键
primary key 1.最简单的: CREATE TABLE t1( id int not null, name char(20)); 2.带主键的: a:CREATE TABLE t1( id ...
- (转)Mybatis高级映射、动态SQL及获得自增主键
原文:http://www.cnblogs.com/edwinchen/p/4105278.html?utm_source=tuicool&utm_medium=referral 一.动态SQ ...
- Oracle中SQL查询表字段基本信息、主键、外键(转)
select utc.column_name, utc.data_type, utc.data_length, utc.data_precision, utc.data_Scale, utc.null ...
- SQLServer 自增主键创建, 指定自增主键列值插入数据,插入主键
http://blog.csdn.net/zh2qiang/article/details/5323981 SQLServer 中含自增主键的表,通常不能直接指定ID值插入,可以采用以下方法插入. 1 ...
随机推荐
- Mybatis复杂嵌套关联一例
Mybatis three entity relation:association in collection PatentMapper.xml <resultMap id="Bas ...
- 简单的数据库备份语句--Oracle+SQLSERVER
1. 工作中经常需要备份数据库表, 有时候经常需要baidu或者是询问,简单些一下.. 如果备份表不存在时: Oracle的语法 create table zhaobsh as select * fr ...
- MongoDb在windows10下的安装、创建用户和数据库
1.mongodb下载地址https://www.mongodb.com/download-center#community 2.安装 3.在D:\MongoDB目录下创建db和log两个文件夹 ...
- Tomcat7/8访问Server Status、Manager App、Host Manager出现403 forbidden
在配置好Tomcat7/8后,我们往往需要访问Tomcat7/8的Manager以及Host Manager.就需要在tomcat-users.xml中配置用户角色来实现.在地址栏输入:localho ...
- poj3320(尺取法)
题目大意:给你一串数字,找出最小的能够覆盖所有出现过的数字的区间长度: 解题思路:依旧是尺取法,但要用map标记下出现过的书: 代码:别用cin输入: #include<iostream> ...
- 使用JQuery进行DOM操作
获得内容 - text().html() 以及 val() 三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元 ...
- Codeforces Round #431 (Div. 2) B. Tell Your World
B. Tell Your World time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- shell 一
1.shell是什么 shell是一种脚本语言 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚本可以实现自动化运维,能大大增加我们的运维效率 2.shell脚本 ...
- 切割模型固定写死了切平面方程是y=0.1
上一篇讲到3d模型切割我遇到的问题(切面的纹理会混乱),经过这段时间的琢磨,有了解决方案,当然我这里只给出我的解决思路,投入到实际项目中还需要做许多工作,比如我在上一篇中切割模型固定写死了切平面方程是 ...
- [NOI2012] 骑行川藏 | 求导 二分
一个能看的题解!预备知识只有高中数学的[导数].不用什么偏导数/拉格朗日乘子法之类的我看不懂的东西( •̀∀•́ )! 如果你不知道什么是导数,可以找本高中数学选修2-2来看一下!看第一章第1.2节就 ...