当前课程知识点:数据库系统原理与开发 > 第3章 数据库操作SQL语言 > 3.2 数据定义SQL语句 > 3.2.2数据定义SQL语句-2
同学们,大家好!
我是主讲教师陆鑫
本节继续学习数据库课程
第3.2小节“数据定义SQL语句”的数据库表创建、修改、删除
本节学习目标如下:
1)掌握SQL语言的数据库表创建语句
2)掌握SQL语言的数据库表修改语句
3)掌握SQL语言的数据库表删除语句
下面开始学习数据库表操作SQL语句
一、数据库表创建SQL语句
1. 语句基本格式
CREATE TABLE
( [列完整性约束],
其中CREATE TABLE 为创建表语句的关键词
为将被创建的数据库表名称
在表中定义各个属性列
需要给出列名、数据类型
针对一些特定属性列
还需要给出该列的完整性约束
2. 列完整性约束
在create table建表SQL语句中
可以针对一些列定义完整性约束
如该列的取值约束、唯一性约束、非空值约束
这些是通过如下关键字来定义
PRIMARY KEY作为主键约束
NOT NULL作为非空值约束
NULL作为空值约束
UNIQUE作为值唯一约束
CHECK作为有效性检查约束
DEFAULT作为缺省值约束
下面通过应用举例来说明数据库表创建SQL语句应用方法
3. SQL语句应用
例如 选课管理数据库的学生表Student设计需求
如下表所示
针对该表结构设计
下面将编写创建数据库表的SQL语句
创建学生表Student的SQL语句如下
在创建Student表的SQL语句中
定义StudentID列
为该表主键
主键列默认为NOT NULL
同样,StudentName列约束为NOT NULL
其它属性列为允许NULL值
4.SQL语句执行
在PostgreSQL服务器中
执行SQL语句
创建数据库关系表Student
其操作界面如下
将SQL语句输入编辑页面
点取"运行"按钮
提交该SQL语句到服务器执行
当该SQL成功执行后
将返回创建数据库表成功消息
在左侧表目录刷新后
新创建的数据库表
student将出现
下面继续学习在创建关系表的SQL语句
5.其它的列完整性约束应用
在关系表创建SQL语句中
除了使用主键约束、是否空值约束外
有时还会使用如下约束
UNIQUE值唯一约束
CHECK有效性检查约束
DEFAULT缺省值约束
例如 选课管理系统数据库
课程信息表Course设计需求如下
在该课程信息表设计中
“课程名”列要求取值唯一
“课程类别”列要求限定取值范围
为“基础课”、“专业课”、“选修课”
“考核方式”列要求默认值为“闭卷考试”
创建课程信息表Course的SQL语句如下
在创建Course表的SQL语句中
定义CourseName列约束为“UNIQUE”
CourseType列约束为CHECK
取值范围在('基础课','专业课','选修课')内
同样,定义TestMethod列约束为DEFAULT默认值'闭卷考试'
在PostgreSQL服务器中
执行SQL语句创建数据库关系表Course
其操作界面如下
将SQL语句输入编辑页面
点取"运行"按钮提交该SQL语句到服务器执行
当该SQL语句成功执行后
将返回创建数据库表成功消息
在左侧表目录刷新后
新创建的数据库表course将出现
6.表约束定义主键
使用列约束关键词PRIMARY KEY
定义表的主键列只能定义单列主键
若要定义由多个列构成的复合主键
则需要使用表约束方式来定义
在创建关系表SQL语句中
使用表约束定义主键的语句格式如下
在创建关系表SQL语句中
使用CONSTRAINT PRIMARY Key(主键列)子句定义主键
例如 选课管理系统数据库的开课计划表
Plan设计需求如下
在开课计划表设计中
需要将“课程编号”列和“教师编号”
作为该关系表的复合主键
在创建开课计划表的SQL语句中
使用了表约束定义语句
约束课程ID和教师ID作为该表的复合主键
在PostgreSQL服务器中
执行SQL语句创建数据库关系表Plan
其操作界面如下
将SQL语句输入编辑页面
点取"运行"按钮
提交该SQL语句到服务器执行
当该SQL成功执行后
将返回创建数据库表成功消息
在左侧表目录刷新后
新创建的数据库表Plan将出现
使用表约束定义主键的优点如下:
便于定义复合主键
可命名主键约束
便于定义代理键
在创建关系表的SQL语句中
使用表约束不但可以定义主键、复合主键,还能定义代理键
表代理键定义
在一些关系表中
为了方便数据处理
可以使用代理键去替代复合主键
在SQL语句中
关系表的代理键采用表约束方式来定义
使用表约束定义代理键的SQL语句如下
代理键是一种由DBMS提供序列值
其数据类型为Serial数据类型
同时使用CONSTRAINT PRIMARY Key(代理键列名)子句定义代理键
例如 选课管理系统数据库
开课计划表Plan设计需求如下表
在开课计划表设计中
不使用复合主键
而使用代理键
这时我们可以
将开课编号设为代理键
其数据类型为自动编号
创建开课计划表plan的SQL语句如下
在实现plan关系表的SQL语句中
使用表约束定义
CoursePlanID作为代理键
其数据类型为Serial
并使用constraint定义它为代理键
在PostgreSQL中
执行SQL语句创建数据库关系表Plan
其操作界面如下
将SQL语句输入编辑页面
点取"运行"按钮
提交该SQL语句到服务器执行
当该SQL成功执行后
将返回创建数据库表成功消息
在左侧表目录刷新后
新创建的数据库表Plan将出现
在创建关系表的SQL语句中
使用表约束不但可以定义主键
复合主键、代理键
还能定义外键
表约束定义外键
在数据库中
一些关系表之间存在联系
在一个表中作为主键的列
在另外的关联表中则作为外键
使用表约束定义外键的SQL语句格式如下
同样使用CONSTRAINT FOREIGN Key(外键列)子句定义外键
例如 选课管理系统数据库
注册表Register设计需求如下表所示
在注册表设计中
定义“注册编号”列作为关系表的代理键
“开课编号”列、“学号”列作为该关系表的外键
创建注册表Register的SQL语句如下所示
在实现register关系表的SQL语句中
使用表约束定义CoursePlanID列、StudentID为外键
在PostgreSQL中
执行SQL语句创建数据库关系表Register
其操作界面如下
将SQL语句输入编辑页面
点取"运行"按钮
提交该SQL语句到服务器执行
当该SQL成功执行后
将返回创建数据库表成功消息
在左侧表目录刷新后
新创建的数据库表Register将出现
在数据库使用中
有时需要对表进行修改
这可以通过执行修改表结构SQL语句实现
二、修改表结构SQL语句
语句基本格式
在该语句中
ALTER TABLE ;
ALTER TABLE 作为修改表的关键词
表名为修改表的名称
主要语句类型
1)ADD修改方式
用于增加新列或列完整性约束
其语句格式如下
ALTER TABLE ADD |[完整性约束]
2)DROP修改方式
用于删除指定列或列的完整性约束条件
语句格式如下
ALTER TABLE DROP COLUMN ;
ALTER TABLE DROP CONSTRAINT;
3)RENAME修改方式
用于修改表名称、列名称
语句格式如下
ALTER TABLE RENAME TO ;
ALTER TABLE RENAME TO ;
4)ALTER修改方式
用于修改列的数据类型
语句格式如下
ALTER TABLE ALTER COLUMN TYPE;
3.表修改举例
Student表原有结构及数据见下表所示
例 在学生表Student中
新增一个“email”列
其操作界面如下
在该界面中
将SQL语句输入页面
点取"运行"按钮
提交该SQL语句到服务器执行
当该SQL成功执行后
将返回修改数据库表成功消息
当刷新左侧学生表列表
我们将看到email列出现
修改学生Student表的SQL语句执行后
学生表将增加email列
修改后的学生表数据结构及数据如下表所示
在数据库中
若有的关系表不再使用
这可以通过执行删除表结构SQL语句进行处理
三、删除表结构SQL语句
1.语句基本格式
DROP TABLE ;
该语句将删除该表的所有数据及其结构
2.表删除举例
例如 删除注册表Register表及其数据
可以使用如下语句
DROP TABLE Register;
例 执行SQL语句删除注册表Register
其操作界面如下
将SQL语句输入编辑页面
点取"运行"按钮
提交该SQL语句到服务器执行
当该SQL成功执行后
将返回删除数据库表成功消息
本节学习结束!
-1.1 数据库及其系统概念
-1.2 数据库技术发展
-1.3 数据库应用系统
-1.4 典型数据库管理系统
-1.5 PostgreSQL对象-关系数据库系统软件
-第1章 数据库系统概论--本章单元测试
-2.1 关系及其相关概念
-2.2 关系模型原理
-2.3 PostgreSQL数据库关系操作实践
-第2章 数据库关系模型--本章单元测试
-3.1 SQL语言概述
-3.2 数据定义SQL语句
-3.3 数据操纵SQL语句
-3.4 数据查询SQL语句
-3.5 数据控制SQL语句
-3.6 视图SQL语句
-3.7 PostgreSQL数据库SQL实践
-第3章 数据库操作SQL语言--本章单元测试
-4.1 数据库设计概述
-4.2 E-R模型方法
-4.3 数据库建模设计
-4.4 数据库规范化设计
-4.5 数据库设计模型SQL实现
-4.6 基于Power Designer的数据库设计建模实践
--4.6 基于Power Designer的数据库设计建模实践
-第4章 数据库设计与实现--本章单元测试
-5.1 数据库管理概述
-5.2 事务管理
--5.2 事务管理
-5.3 并发控制
-5.4 安全管理
-5.5 数据库备份与恢复
-5.6 PostgreSQL数据库管理项目实践
-第5章 数据库管理--本章单元测试
-6.1 数据库连接技术
-6.2 数据库存储过程
-6.3 数据库触发器
-6.4 数据库游标
-6.5 嵌入式SQL编程
-第6章 数据库应用编程--本章单元测试
-7.1 NoSQL数据库概述
-7.2 列存储数据库
-7.3 键值对数据库
-7.4 文档型数据库
-7.5 图形数据库
-7.6 HBase数据库项目实践
-第7章 NoSQL数据库技术--本章单元测试
-期末测试--期末测试