天天看点

SQL_语句常见的操作创建,使用,删除表和表级约束

文章目录

  • ​​前言:​​
  • ​​一.增加表的列​​
  • ​​二.删除表的列​​
  • ​​三.增加表的表级约束,并使其暂时约束失效​​
  • ​​四.删除表​​

前言:

   在上一篇文章《创建数据库》中,我们学会了如何创建数据库,使用数据库,删除数据库。这一章我们继续承接上文,在上文,我们已经建立了三张表:

create table 学生
(
  学号 char(5) not null unique,
  姓名 char(8) not null,
  年龄 smallint default 20,
  性别 char(2) check(性别 in ('男','女')),
  所在系 char(20)
)
GO
create table 课程
(
  课程号 char(5) primary key,
  课程名 varchar(20),
  先行课 char(5)
)
go

create table 选课
(
  学号 char(5),
  课程号 char(5),
  成绩 smallint check(成绩 between 0 and 100),
  constraint c1 primary key(学号,课程号),
  constraint c2 foreign key(学号) references 学生(学号),
  constraint c3 foreign key(课程号) references 课程(课程号)
)      

PS :

      作者在理解这个​​

​reference​

​​的时候遇到了点困难,这里我是这样理解的。我们定义两个表,两个表中含有相同属性,将表2的相同属性定义为外键​

​foreign key​

​​,而这个外键的取值范围可以​

​reference​

​表1的相同属性。

一.增加表的列

语法:

​alter​

​​ ​

​table​

​ 表名 ​

​add​

​ 属性名 数据类型 是否为空

alter table 学生 add 年级 int null      

输出:

SQL_语句常见的操作创建,使用,删除表和表级约束

二.删除表的列

语法:

​​

​alter table​

​​ 表名 ​

​drop column​

​ 属性名

alter table 学生 drop column      

输出:

SQL_语句常见的操作创建,使用,删除表和表级约束

三.增加表的表级约束,并使其暂时约束失效

举列子:

我们为学生表增加一个表级约束--------年龄要大于18岁,并使其暂时约束失效。

这里我们需要使用​

​constraint​

​​配合​

​check​

​使用。

alter table 学生 add constraint 年龄约束 check(年龄>18)      

当我们在代码执行成功后,我们在年龄里输入数字进行测试。

SQL_语句常见的操作创建,使用,删除表和表级约束

当我们输入的年龄超过18岁了,我们就可以输入成功了。

SQL_语句常见的操作创建,使用,删除表和表级约束

现在我们又要使刚刚加的年龄约束暂时失效,请看代码:

alter table 学生 nocheck constraint      

这里我们要学习的知识点是​

​nocheck constraint​

​ 约束名

值得说的是这个约束名就是在上面我们设置表级约束的时候起的一个名字------“年龄约束”。

执行一下代码:

SQL_语句常见的操作创建,使用,删除表和表级约束

这时候我们的年龄输入的是1,小于18,输入成功,说明“年龄约束”已经被取消了。我们只要把

四.删除表