千家信息网

SQL学习之使用命令方式创建、删除与修改关系表

发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,首先,先介绍用命令方式创建、删除和修改关系表,(1)、创建表基本格式:create table 表名(列名 数据类型 列级完整性约束,列名 数据类型 列级完整性约束(如果有多个列,注意要用 英文式的逗
千家信息网最后更新 2025年11月06日SQL学习之使用命令方式创建、删除与修改关系表

首先,先介绍用命令方式创建、删除和修改关系表,

(1)、创建表

基本格式:create table 表名

(

列名 数据类型 列级完整性约束,列名 数据类型 列级完整性约束(如果有多个列,注意要用 英文式的逗号隔开)

表级完整性约束(表级完整性约束和列级完整性约束之间也要用逗号分隔开)

)

列级完整性约束有:
not null限制列取值为空
default指定列的默认值
unique定义列取值不能重复
check定义列的取值范围(check是定义的多列之间的取值约束,只能在表级完整性约束)处定义
primary key定义主码约束
foreign key定义外码约束
表级完整性约束:
unique定义列取值不能重复
check定义列的取值范围(check是定义的多列之间的取值约束,只能在表级完整性约束)处定义
primary key定义主码约束
foreign key定义外码约束


知道呢有哪些约束,那么,怎么定义完整性约束呢?他们的格式是什么呢?

主码约束:primary key (列名,列名,列名......)


外码约束:foreign key (列名) references 外表名 (外表列名)


unique约束:列名 数据类型 unique (列名,列名......)


default约束:列名 default 默认值


check约束:check 逻辑表达式(逻辑表达式中不能包含来自多个表的列)


(2)、修改表:


基本格式: alter table 表名

alter column 列名 新的数据类型 (修改列的定义)

add 列名 数据类型 约束 (增加新的列)

drop column 列名 (删除列)

add 约束定义 (添加约束)

drop 约束名 (删除约束)


注意:不同的DBMS的alter table语句格式都不同,在这里以SQL2014为例


(3)、删除表:


基本格式: drop table 表名


注意:如果被删除的表中有其他表对他的外码引用约束,则必须先删除外码所在的表,然后再删除被引 用码所在的表


实例说明:(1)创建3张表,学生表(student)、课程表(course)和学生选课表(sc)

学生表(student)

列名含义数据类型约束
Sno学号char(11)主码
Sname姓名nchar(4)非空
Snumber×××号char(18)取值不重
Ssex性别nchar(1)默认值为'男'
Sage年龄tinyint取值范围为15-45
Sdept所在系nvarchar(20)


创建student表代码:

use student

create table student

(

Sno char(11) primary key,

Sname nchar(4) not null,

Snumber char(18) unique,

Ssex nchar(1) default '男',

Sage tinyint check(sage >= 15 and sage <= 45),

Sdept nvarchar(20)

)


课程表(course)

列名含义数据类型约束
Cno课程号char(6)主码
Cname课程名nvarchar(20)非空
Credit学分numeric(3,1)大于0
Semester学期tinyint


创建course表代码:

use student

create table course

(

Cno char(6) primary key,

Cname nvarchar(20) not null,

Credit numeric(3,1) check(Credit > 0),

Semeter tinyint

)


选课表(sc)

列名含义数据类型约束
Sno学号char(11)主码,引用student的外码
Cno课程号char(6)主码,引用course的外码
Grade成绩tinyint


创建sc表代码:

use student

create table sc

(

Sno char(11) not null,

Cno char(6) not null,

Grade tinyint,

primary key (sno,cno),

foreign key (sno) references student(sno),

foreign key (cno) references course(cno)

)


(2)为sc表添加'修课类别'(type)列,允许为空,代码如下:

alter table sc

add type nchar(1) null


(3)为sc表添加'修课类别'(type)列修改他的数据类型为nchar(2),代码如下:

alter table sc

alter column type nchar(2)


(4)为sc表添加'修课类别'(type)列添加取值范围为{必修,重修,选修}的约束,代码如下:

alter table sc

add check(type in ('必修','重修','选修'))


(5)删除type列,代码如下:

alter table sc

drop column type

完整性 数据 类型 代码 格式 课程 范围 之间 含义 学生 所在 类别 不同 外表 多个 学号 表达式 课程表 逗号 逻辑 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 腾讯为何入局网络安全托管服务 收看网络安全教育片 深圳市盖亚拓普网络技术有限公司 宁夏省网络安全应急响应平台 微信小程序云数据库字段自减 宁夏餐饮业的互联网等科技手段 oracle数据库总是停掉 web应用软件开发赛项 世界数据库众生相 软件开发企业队伍建设 jdk对于数据库的作用 简述维普中文期刊数据库的特点 工控系统网络安全吗 中国网络安全设备主流品牌 浦东新区一站式数据库服务服务费 bank数据库实例 前后端放同一服务器调用接口出错 英雄联盟分多少个服务器 特朗普关于网络安全的十大雷语 网络安全厂家排名2020营收 饥荒服务器列表 长沙市软件开发有限公司 网络安全与执法学数学 数据库重插 相城区提供网络技术咨询热线 河南卓丰网络技术有限公司 山东软件开发者公司 消防网络安全信息 口袋动画远程服务器返回错误 中体彩软件开发笔试题目
0