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

简介: 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 课程(课程号)
)
go

PS :

     作者在理解这个reference的时候遇到了点困难,这里我是这样理解的。我们定义两个表,两个表中含有相同属性,将表2的相同属性定义为外键foreign key,而这个外键的取值范围可以reference表1的相同属性。

一.增加表的列

语法:

alter table 表名 add 属性名 数据类型 是否为空

alter table 学生 add 年级 int null

输出:

二.删除表的列

语法:

alter table 表名 drop column 属性名

alter table 学生 drop column 年级
go

输出:

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

举列子:

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

这里我们需要使用constraint配合check使用。

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

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

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

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

alter table 学生 nocheck constraint 年龄约束
go

这里我们要学习的知识点是nocheck constraint 约束名

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

执行一下代码:

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

nocheck改成check就可以又恢复那个约束了。

四.删除表

语法:

drop table 表名

目录
相关文章
|
2天前
|
SQL 存储 数据库
SQL学习一:ACID四个特性,CURD基本操作,常用关键字,常用聚合函数,五个约束,综合题
这篇文章是关于SQL基础知识的全面介绍,包括ACID特性、CURD操作、常用关键字、聚合函数、约束以及索引的创建和使用,并通过综合题目来巩固学习。
15 1
|
2月前
|
SQL 数据采集 关系型数据库
7、SQL约束
7、SQL约束
40 0
|
3月前
|
SQL Oracle 关系型数据库
CREATE TABLE 时的 SQL FOREIGN KEY 约束
【7月更文挑战第24天】CREATE TABLE 时的 SQL FOREIGN KEY 约束。
46 5
|
3月前
|
SQL Oracle 关系型数据库
ALTER TABLE 时的 SQL PRIMARY KEY 约束
【7月更文挑战第24天】ALTER TABLE 时的 SQL PRIMARY KEY 约束。
28 3
|
3月前
|
SQL Oracle 关系型数据库
CREATE TABLE 时的 SQL FOREIGN KEY 约束
【7月更文挑战第19天】CREATE TABLE 时的 SQL FOREIGN KEY 约束
38 8
|
3月前
|
SQL Oracle 关系型数据库
CREATE TABLE 时的 SQL PRIMARY KEY 约束
【7月更文挑战第24天】CREATE TABLE 时的 SQL PRIMARY KEY 约束。
38 2
|
3月前
|
SQL Oracle 关系型数据库
SQL CHECK 约束
【7月更文挑战第19天】SQL CHECK 约束。
41 5
|
3月前
|
SQL Oracle 关系型数据库
SQL UNIQUE 约束
【7月更文挑战第18天】SQL UNIQUE 约束。
40 6
|
3月前
|
SQL
SQL NOT NULL 约束
【7月更文挑战第18天】SQL NOT NULL 约束。
41 6
|
3月前
|
SQL Oracle 关系型数据库
SQL PRIMARY KEY 约束
【7月更文挑战第19天】SQL PRIMARY KEY 约束。
46 4