(1),创建表
基本格式:<强> 强>表名
,,,(
,,,列名数据类型列级完整性约束,列名数据类型列级完整性约束<强> 强> <强> 强>
<强> 强> 强>
,,,)
列级完整性约束有:不是零限制列取值为空默认指定列的默认值独特定义列取值不能重复检查定义列的取值范围(检查是定义的多列之间的取值约束,只能在表级完整性约束)处定义主键定义主码约束外键定义外码约束表级完整性约束:独特的定义列取值不能重复检查定义列的取值范围(检查是定义的多列之间的取值约束,只能在表级完整性约束)处定义主键定义主码约束外键定义外码约束
知道呢有哪些约束,那么,怎么定义完整性约束呢?他们的格式是什么呢?
主码约束:主键(列名,列名,列名……)
外码约束:外键列(名)引用外表名(外表列名)
独特约束:列名数据类型独特(列名,列名……)
默认约束:列名,默认默认值
检查约束:检查逻辑表达式(逻辑表达式中不能包含来自多个表的列)
(2),修改表:
基本格式:<强> 强>表名
,,,,改变列列名新的数据类型,,(修改列的定义)
,,,,添加列名,数据类型约束,,,(才能增加新的列)
,,,下降,列列名,,,,,,,(删除列)
,,,,添加约束定义,,,,,,,,(添加约束)
,,,,下降约束名,,,,,,,,,(删除约束)
注意:不同的DBMS的alter table语句格式都不同,在这里以SQL2014为例,,,
(3),删除表:
基本格式:<强> 强>表名
列名含义数据类型约束Sno学号char(11)主码Sname姓名nchar(4)非空Snumber×××号char(18)取值不重Ssex性别nchar(1)默认值为“男”圣人年龄非常小的整数取值范围为15-45Sdept所在系nvarchar (20)
<强>创建学生表代码:强>
<强>使用学生强>
<强> create table学生强>
<强>(强>
<强> Sno char(11)主键,强>
<强> Sname nchar (4) not null, 强>
<强> Snumber char(18)独一无二的,强>
<强> Ssex nchar(1)默认“男”,强>
<强>圣人非常小的整数检查(Sage祝辞=15,和圣人& lt;=45), 强>
<强> Sdept nvarchar(20) 强>
<强>)强>
课程表(课程)
列名含义数据类型约束Cno课程号char(6)主码Cname课程名nvarchar(20)非空信贷学分数字(3,1)大于0学期学期非常小的整数 <强>
强>
<>强创建过程表代码:强>
<强>使用学生强>
<强> create table课程强>
<强>(强>
<强> Cno char(6)主键,强>
<强> Cname nvarchar (20) not null, 强>
<强>信用数值(3,1)检查(信贷比;0),>
<强> Semeter非常小的整数强>
<强>)强>
<强>
强>
选课表(sc)
列名含义数据类型约束Sno学号char(11)主码,引用学生的外码Cno课程号char(6)主码,引课程用的外码级成绩非常小的整数
<>强创建sc表代码:强>
<强>使用学生强>
<强> create table sc 强>
<强>(强>
<强> Sno char(11)不是null, 强>
<强> Cno char (6) not null, 强>
<强>年级非常小的整数,强>
<强>主键(Sno,碳氮氧),强>
<强>外键(Sno)引用学生(Sno) 强>
<强>外键(Cno)引用课程(Cno) 强>
<强>)强>
(2)为sc表添加的修课类别”(类型)列,允许为空,代码如下:
<强> alter table sc 强>
<强>添加类型nchar(1)空强>
(3)为sc表添加的修课类别”(类型)列修改他的数据类型为nchar(2),代码如下:
<强> alter table sc 强>
<强>改变列类型nchar(2) 强>
(4)为sc表添加的修课类别”(类型)列添加取值范围为{必修,重修,选修}的约束,代码如下:
<强> alter table sc 强>
<强>添加检查(类型(“必修”,“重修”、“选修”))强>
(5)删除类型列,代码如下:
<强> alter table sc 强>
<强>删除列类型强>