第三单元 创建与管理数据表 课件(共67张PPT)- 《网站数据库应用技术SQL Server》同步教学(水利水电版)

资源下载
  1. 二一教育资源

第三单元 创建与管理数据表 课件(共67张PPT)- 《网站数据库应用技术SQL Server》同步教学(水利水电版)

资源简介

(共67张PPT)
第三单元 创建与管理数据表
任务3.1 创建表
任务3.2 修改表
任务3.3 删除表
3.1.1 情景描述
3.1.2问题分析
3.1.3 解决方案
3.1.4 知识总结
3.1.5 应用实践
任务3.1 创建表
数据库开发人员需要在学生管理数据库中保存“专业”的基本信息,记录专业的编号,专业名称,专业描述和专业状态的信息。
3.1.1 情景描述
为此需要完成以下任务:
1.根据“专业”的关系模式,设计表的字段及字段的属性;
通过分析,得到“专业”表的关系模式为:专业(专业代码(pk),专业名称,描述,状态), “专业”表的结构如表3-1所示。
2.根据表结构,编写创建“专业”表的语句。
3.执行语句,完成“专业”表的创建。
表3-1 “专业”表的结构
3.1.2问题分析
字段名称 数据类型 是否允许NULL值 约束
专业代码 int 否 主键
专业名称 varchar(32) 否
描述 varchar(100) 是
状态 varchar(20) 是
1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;
2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;
3.在“查询编辑器”上输入以下代码:
3.1.3 解决方案
CREATE TABLE 专业
(
专业代码 int primary key,
专业名称 varchar(32) not null,
描述 varchar(100),
状态 varchar(20)
)
4.单击工具栏上的【执行】按钮、。
5.刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“专业”表创建完成,如图所示。
数据类型
创建表
约束
3.1.4 知识总结
整型数据类型
定点小数数据类型
近似数字类型
日期类型
字符数据类型
货币数据类型
二进制字符数据类型
其它数据类型
数据类型
整型数据类型
数据类型 数据范围 精度 长度
bigint [-263,263-1] 19 8个字节
int [-231,231-1] 10 4个字节
smallint [-215,215-1] 5 2个字节
tinyint [0,255] 3 1个字节
定点小数数据类型
数据类型 数据范围 精度 小数位数 长度
numeric(p,s) [-1038 +1,1038 -1] p s 精度p为1到9,则用5字节;
精度p为10到19,则用9字节;精度p为20到28,则用13字节;精度p为29到38,则用17字节
decimal(p,s) [-1038 +1,1038 -1] p s 精度p为1到9,则用5字节;
精度p为10到19,则用9字节;精度p为20到28,则用13字节;精度p为29到38,则用17字节
近似数字类型
数据类型 数据范围 精度 长度
float(n) [-1.79×10308,1.79×10308] 精确到小数点后15位 n省略,用8字节,n取值范围为1到7,则用4个字节,n取值范围为8到15,则用8个字节
real [-3.40×1038,3.40×1038] 最大可以有7位精确位数 4个字节
日期类型
数据类型 数据范围 精度 长度
datetime [1753.1.1,999.12.31] 精确到3.33毫秒 8个字节
smalldatetime [1900.1.1,2079.6.6] 精确到分钟 4个字节
date [,9999.12.31] 精确到天 3个字节
time [00:00:00.0000000,23:59:59.9999999] 精确到100纳秒 5个字节
字符数据类型
数据类型 长度 解释
char(n) 由n指定,n取值范围1到8000 ASCII编码,固定长度,一个汉字占两个字节,要存放汉字的性别,n要取值为2
varchar(n) 由n指定,n取值范围1到8000 ASCII编码,可变长度,最大不超过n
text 最长为231-1 ASCII编码,当字段中存储的字符个数超过8000时,选择text
nchar(n) 由n指定,n取值范围1到4000 UNICODE编码,采用2个字节为一个存储单位,固定长度,一个汉字占两个字节,要存放汉字的性别,n要取值为1
nvarchar(n) 由n指定,n取值范围1到4000 UNICODE编码,采用2个字节为一个存储单位,最大不超过n
ntext 最长为230-1 UNICODE编码,采用2个字节为一个存储单位,当字段中存储的字符个数超过4000时,选择text
货币数据类型
数据类型 数据范围 精度 小数位数 长度
money [-922337203685477.5808,922337203685477.5807] 19 4 8个字节
smallmoney [-214748.3468,214748.3467] 10 4 4个字节
二进制字符数据类型
数据类型 长度 解释
binary(n) 由于n指定,n取值范围1到8000 存储固定长度为n的二进制数据
varbinary(n) 由于n指定,n取值范围1到8000 存储可变长度为n的二进制数据
image 最长为231-1字节 如果字段要存储超过8000字节的可变长度的二进制数据,选择 image
其它数据类型
数据类型 描述
bit 存储0、1的逻辑型数据。输入0以外的其它值均当做1看待
timestamp 时间戳数据类型,主要用于在数据表中记录其数据的修改时间
uniqueidentifier 用于储存16位GUID的唯一标识符数据类型
table 用来存储随后进行的处理的结果集
使用CREATE TABLE语句创建表,语法规则如下:
创建表
CREATE TABLE 表名

列名1 数据类型 约束 ,
列名2 数据类型 约束,
列名3 数据类型 约束,
......
列名n 数据类型 约束
)
参数说明如下:
表名:用于指定所创建的表的名称。
列名:用于指定创建表包含的列的名称。
数据类型:用于指定表中包含的列的数据类型。
约束:用于指定列需要满足的约束,包含是否为空(NULL)、是否有默认值,是否是主键,是否是外键,是否唯一,是否限定取值范围。如果省略,约束默认允许为空值。
【例3-1】在“学生管理”数据库中创建不带任何约束的“系部”表,具体的表结构如表所示。
字段名称 数据类型 是否允许NULL值 约束
系部代码 int 是
系部名称 varchar(50) 是
办公电话 varchar(11) 是
系主任 varchar(20) 是
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
CREATE TABLE 系部
(
系部代码 int ,
系部名称 varchar(50) ,
办公电话 char(11),
系主任 varchar(20)
)
(2)单击工具栏上的【执行】按钮;
(3)刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“系部”表创建完成。
非空(NOT NULL)约束
主键(PRIMARY KEY)约束
唯一(UNIQUE)约束
检查(CHECK)约束
外键(FOREIGN KEY)约束
默认(DEFAULT)约束
约束
列是否为空决定了表中的字段是否允许为空值。设置了非空约束的列,满足列的取值不为空的要求。在创建表时候使用NOT NULL关键字指定非空约束的语法规则为:
非空(NOT NULL)约束
CREATE TABLE 表名

列名1 数据类型 NOT NULL ,
列名2 数据类型 ,
列名3 数据类型 ,
......
列名n 数据类型
)
【例3-2】在“学生管理”数据库中创建带非空约束的“课程”表,具体的表结构如表所示。
字段名称 数据类型 是否允许NULL值 约束
课程编号 int 否
课程名称 varchar(50) 否
课程性质 varchar(30) 否
学分 int 否
开课学期 varchar(20) 否
课程分类 varchar(20) 否
①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
CREATE TABLE 课程
(
课程编号 int not null,
课程名称 varchar(50) not null,
课程性质 varchar(30) not null,
学分 int not null,
开课学期 varchar(20) not null,
课程分类 varchar(20) not null
)
②单击工具栏上的【执行】按钮;
③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“课程”表创建完成
在表中定义一个主键来唯一标识表中的每行记录。每个表中只能有一个主键,要求主键列的数据唯一,并且不允许为空。在一个表中,不能有两行具有相同的主键值。在创建表的时候使用PRIMARY KEY来创建主键约束的语法规则为:
主键(PRIMARY KEY)约束
CREATE TABLE 表名

列名1 数据类型 PRIMARY KEY ,
列名2 数据类型 ,
列名3 数据类型 ,
......
列名n 数据类型
)
【例3-3】在“学生管理”数据库中创建带主键约束的“班级”表,具体的表结构如表所示。
字段名称 数据类型 是否允许NULL值 约束
班级代码 int 否 主键
班级名称 varchar(50) 否
专业代码 int 否
所属年级 varchar(20) 是
班主任 varchar(20) 是
描述 varchar(100) 是
①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
CREATE TABLE 班级
(
班级代码 int primary key,
班级名称 varchar(50) not null,
专业代码 int not null,
所属年级 varchar(20),
班主任 varchar(20),
描述 varchar(100)
)
②单击工具栏上的【执行】按钮;
③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“班级”表创建完成
一个表中只能有一个主键,如果有多个字段需要实施数据唯一性,可以使用UNIQUE约束来限制表的非主键列中不允许输入重复值。唯一约束要求列的取值唯一,在一个表中,该列的任何两行都不能有相同的列值,如果该列允许NULL值,但只能出现一次。在创建表的时候使用UNIQUE来创建唯一约束的语法规则为:
唯一(UNIQUE)约束
CREATE TABLE 表名

列名1 数据类型 UNIQUE ,
列名2 数据类型 ,
列名3 数据类型 ,
......
列名n 数据类型
)
【例3-4】在“学生管理”数据库中创建带唯一约束的“学生”表,具体的表结构如表所示。
字段名称 数据类型 是否允许NULL值 约束
学号 int 否 主键
姓名 varchar(50) 否
性别 char(2) 否
出生日期 datetime 是
个人联系电话 char(11) 是 唯一约束
政治面貌 varchar(20) 是
身份证号 char(18) 否
邮政编码 varchar(10) 是
家庭联系电话 char(11) 是 唯一约束
家庭联系地址 varchar(100) 是
①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
CREATE TABLE 学生
(
学号 int primary key,
姓名 varchar(50) not null,
性别 char(2) not null,
出生日期 datetime,
个人联系电话 char(11) unique,
政治面貌 varchar(20),
身份证号 char(18),
邮政编码 varchar(10),
家庭联系电话 char(11) unique,
家庭联系地址 varchar(100)
)
②单击工具栏上的【执行】按钮;
③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“学生”表创建完成。
主键与UNIQUE约束的区别主要为:
UNIQUE约束,主要用在非主键的一列或多列上要求数据唯一的情况。
UNIQUE约束,允许该列上存在NULL值,而主键决不允许出现这种情况。
可以在一个表上设置多个UNIQUE约束,而在一个表中只能设置一个主键约束。
CHECK约束用来检查输入数据的取值是否正确,只有符合检查约束的数据才能输入,从而维护域的完整性,列的输入内容必须满足CHECK后面的约束条件。不满足限定范围的值不能正常输入。可以在一个表中为每列指定多个检查约束。在创建表的时候使用CHECK关键字来创建检查约束的语法规则为:
检查(CHECK)约束
CREATE TABLE 表名

列名1 数据类型 CHECK(约束条件) ,
列名2 数据类型 ,
列名3 数据类型 ,
......
列名n 数据类型
)
约束条件为创建的检查约束满足的条件表达式,主要有比较运算符和逻辑运算符组成。
运算符 表达式 功能
= a=b 判断表达式a和表达式b的值是否相等
> a>b 判断表达式a是否大于表达式b的值
>= a>=b 判断表达式a是否大于等于表达式b的值
!< a!< a<= a<=b 判断表达式a是否小于等于表达式b的值
!> a!>b 判断表达式a是否不大于表达式b的值
<> a<>b 判断表达式a是否不等于表达式b的值
!= a!=b 判断表达式a是否不等于表达式b的值
比较运算符
运算符 表达式 功能
and A and B 表达式A和B的值都为真时,整个表达式的结果为真
or A or B 表达式A或B的值为真时,整个表达式的结果为真
not not A 表达式A的值为真,整个表达式的结果为假,表达式A的值为假时,整个表达式的结果为假
in A in(a1,a2,a3,...) 如果A的值与集合里面的任意值相等,则返回真
between C Between A and B 如果C的值在A和B之间,则返回真
逻辑运算符
【例3-5】在“学生管理”数据库中创建带检查约束的“教师”表,具体的表结构如表所示。
字段名称 数据类型 是否允许NULL值 约束
教师编号 int 否 主键
教师姓名 varchar(50) 否
性别 char(2) 是 取值范围:男,女
职称 varchar(20) 是
学历 varchar(20) 是
学位 varchar(20) 是
专业 varchar(20) 是
①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
CREATE TABLE 教师
(
教师编号 int primary key,
教师姓名 varchar(50) not null,
性别 char(2) check(性别='男' or 性别='女') ,
职称 varchar(20),
学历 varchar(20),
学位 varchar(20),
专业 varchar(20)
)
②单击工具栏上的【执行】按钮;
③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“教师”表创建完成
用于建立两个表之间的连接,当一个表的主键列在另外一个表中被引用时,就在这两个表中创建了连接。被引用的数据表称为主表,被引用列称为主键;引用表称为外键约束表,也称为从表,引用列称为外键。外键约束保证了数据库中各个数据表中数据的一致性和正确性。在创建表的时候使用FOREIGN KEY来创建外键约束,需要用references关键字指出来引用的主表的哪一列,语法规则为:
外键(FOREIGN KEY)约束
CREATE TABLE 表名

列名1 数据类型 FOREIGN KEY REFERENCES 表名(列名) ,
列名2 数据类型 ,
列名3 数据类型 ,
......
列名n 数据类型
)
【例3-6】在“学生管理”数据库中创建带外键约束的“辅导员评语”表,具体的表结构如表所示。
字段名称 数据类型 是否允许NULL值 约束
评价代码 int 否 主键
学号 int 是 外键
学期 varchar(20) 是
评价寄语 text 是
①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
CREATE TABLE 辅导员评语
(
评价代码 int primary key,
学号 int foreign key references 学生(学号),
学期 varchar(20) ,
评价寄语 text
)
②单击工具栏上的【执行】按钮;
③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“辅导员评语”表创建完成
为表中某列建立一个默认值,当添加一条记录的时候,没有为此列提供输入值,则取默认值。在创建表的时候使用DEFAULT来创建默认约束的语法规则为:
默认(DEFAULT)约束
CREATE TABLE 表名

列名1 数据类型 DEFAULT 默认值 ,
列名2 数据类型 ,
列名3 数据类型 ,
......
列名n 数据类型
)
【例3-7】在“学生管理”数据库中创建带默认约束的“选课”表,具体的表结构如表所示。
字段名称 数据类型 是否允许NULL值 约束
学号 int 否 主键,外键
课程编号 int 是 主键
成绩 numeric(5,2) 是 默认为0
①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
CREATE TABLE 选课
(
学号 int foreign key references 学生(学号),
课程编号 int ,
成绩 numeric(5,2) default 0
primary key(学号,课程编号)
)
②单击工具栏上的【执行】按钮;
③刷新“对象资源管理器”中的“数据库”文件夹下的“学生管理”,展开“学生管理”数据库下的表,可以看到“选课”表创建完成。
3.1.5 应用实践
为了保存销售业务系统用户的账户信息,需要设计“账号”表,并在数据库“销售”中创建表格。“账号”表结构如表所示。
字段名称 数据类型 是否允许NULL值 约束
用户ID varchar(50) 否 主键
密码 varchar(50) 否 默认:111111
用户名 varchar(50) 否 唯一
邮件 varchar(50) 是
地址 varchar(100) 是
邮编 varchar(10) 是
电话 char(11) 否
状态 varchar(20) 是 取值范围:启用,停用
1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“销售”;
2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;
3.在“查询编辑器”上输入以下代码:
CREATE TABLE 账号
(
用户ID varchar(50) primary key,
密码 varchar(50) not null default '111111' ,
用户名 varchar(50) not null unique ,
邮件 varchar(50),
地址 varchar(100),
邮编 varchar(10),
电话 char(11) not null,
状态 varchar(20) check(状态 in('停用','启用'))
)
4.单击工具栏上的【执行】按钮;
5.刷新“对象资源管理器”中的“数据库”文件夹下的“销售”,展开“销售”数据库下的表,可以看到“账号”表创建完成。
3.2.1 情景描述
3.2.2问题分析
3.2.3 解决方案
3.2.4 知识总结
3.2.5 应用实践
任务3.2 修改表
数据库开发人员发现按照现有的关系模式,学生和班级之间的对应关系没有建立起来,在现有的表中没有办法在保存学生信息的同时保存其所在的班级信息,需要在“学生”表中添加一列“班级编号”, 然后把添加的“班级编号”字段设为外键,关联班级表的“班级代码”字段。
3.2.1 情景描述
在表创建好后若发现问题,可以通过修改表的方式来解决,我们可以对现有的表添加一列、删除一列、修改某列的数据类型、添加约束、删除约束等等操作。外键和所关联的表的主键的取值范围要一致,所以在“学生”表添加的字段“班级编号”字段的数据类型和表3-12的“班级”表的“班级代码”的数据类型要相同,添加的字段数据类型确定为“int”类型。
3.2.2问题分析
3.2.3 解决方案
1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;
2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;
3.在“查询编辑器”上输入以下代码:
ALTER TABLE 学生 add 班级编号 int
ALTER TABLE 学生 add foreign key(班级编号) references 班级(班级代码)
4.单击工具栏上的【执行】按钮,展开“对象资源管理器”中的“数据库”文件夹,选择数据库“学生管理” “表”文件夹,刷新“学生”表下的列,可以看到“学生”表的列“班级编号”添加完成;
5.然后在“查询编辑器”上添加以下代码:
6.再次刷新“学生”表下的列,可以看到“班级编号”字段旁边有灰色的钥匙图标,表明外键创建完成。
使用ALTER TABLE命令添加一列
使用ALTER TABLE命令删除一列
使用ALTER TABLE命令修改表中列的数据类型
使用ALTER TABLE命令修改某列为非空约束
使用ALTER TABLE命令添加主键约束
使用ALTER TABLE命令添加唯一约束
使用ALTER TABLE命令添加检查约束
使用ALTER TABLE命令添加外键约束
使用ALTER TABLE命令添加默认约束
使用ALTER TABLE命令删除约束
3.2.4 知识总结
语法规则:ALTER TABLE 表名 ADD 列名 数据类型
使用ALTER TABLE命令添加一列
ALTER TABLE 教师 add 系部代码 int
【例3-8】在“教师”表中添加一列,列名为“系部代码”,列的数据类型为“int”。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
(2)单击工具栏上的【执行】按钮;
(3)刷新“教师”表下的列,可以看到“教师”表的列“系部代码”添加完成。
语法规则:ALTER TABLE 表名 DROP COLUMN 列名
【例3-9】在“学生”表中删除一列,列名为“邮政编码”。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
ALTER TABLE 学生 drop column 邮政编码
(2)单击工具栏上的【执行】按钮;
(3)刷新“学生”表下的列,与图3-10比较,从对象资源管理器窗口中,可以看到“学生”表的列“邮政编码”删除成功
使用ALTER TABLE命令删除一列
语法规则: ALTER TABLE 表名ALTER COLUMN 列名 数据类型
使用ALTER TABLE命令修改表中列的数据类型
ALTER TABLE 学生 alter column 政治面貌 varchar(10)
【例3-10】在“学生”表中修改字段“政治面貌”的数据类型为varchar(10)。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
(2)单击工具栏上的【执行】按钮;
(3)刷新“学生”表下的列,与图3-12比较,从对象资源管理器窗口中,可以看到“学生”表的列“政治面貌”的数据类型由varchar(20)变为varchar(10)
语法规则:ALTER TABLE 表名ALTER COLUMN 列名 数据类型 NOT NULL
使用ALTER TABLE命令修改某列为非空约束
ALTER TABLE 学生 alter column 政治面貌 varchar(10) not null
【例3-11】在“学生”表中修改字段“政治面貌”的约束为非空。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
(2)单击工具栏上的【执行】按钮;
(3)刷新“学生”表下的列,与图3-13比较,从“对象资源管理器”窗口,可以看到“学生”表的列“政治面貌”列修从NULL改为NOT NULL 。
语法规则:ALTER TABLE 表名 ADD PRIMARY KEY(列名)
使用ALTER TABLE命令添加主键约束
ALTER TABLE 课程 add primary key(课程编号)
【例3-12】修改表“课程”表,设置“课程编号”字段为主键约束。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
(2)单击工具栏上的【执行】按钮;
(3)刷新“课程”表下的列,可以看到“课程”表的列“课程编号”旁有个黄色的钥匙图标,表明主键约束添加完成。
语法规则:ALTER TABLE 表名 ADD UNIQUE(列名)
使用ALTER TABLE命令添加唯一约束
ALTER TABLE 系部 add unique(系部名称)
【例3-13】修改表“系部”表,设置“系部名称”字段为唯一约束。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
(2)单击工具栏上的【执行】按钮;
(3)展开“系部”表的“键”文件夹和“索引”文件夹,可以看到有一个约束名和索引名均为“UQ__系部__9C9278473B75D760”,当创建一个唯一约束会自动创建一个唯一的非聚焦索引,名字也是自动生成的,有关索引的内容将在后面章节中介绍
语法规则:ALTER TABLE 表名 ADD CHECK(expression)
使用ALTER TABLE命令添加检查约束
ALTER TABLE 课程 add check(课程性质
in('专业必修课','专业选修课', '公共必修课','公共选修课'))
【例3-14】修改表“课程”表,设置“课程性质”的取值范围为:专业必修课,专业选修课,公共必修课,公共选修课。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
(2)单击工具栏上的【执行】按钮;
(3)展开“课程”表下的“约束”文件夹,可以看到有一个检查约束。
语法规则:ALTER TABLE 表名1 ADD FOREIGN KEY(列名1) REFERENCES 表名2(列名2)
使用ALTER TABLE命令添加外键约束
参数说明如下:
表名1:指出要修改的表的名字
列名1:指出表名1的外键列的字段名
FOREIGN KEY:指出要添加的约束是外键约束
表名2:指出外键列名1要参考的主表名
列名2:指出外键列名1要引用的表名2里面的主键列名
ALTER TABLE 选课 add foreign key(课程编号) references 课程(课程编号)
【例3-15】修改表“选课”表,设置“课程编号”字段为外键约束,关联表“课程”的“课程编号”字段。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
(2)单击工具栏上的【执行】按钮;
(3)刷新“课程”表下的文件夹“键”,可以看到生成的外键约束。
语法规则:ALTER TABLE 表名 ADD DEFAULT 默认值 FOR 列名
使用ALTER TABLE命令添加默认约束
ALTER TABLE 教师 add default '助教' for 职称
【例3-16】修改表“教师”表,设置“职称”字段的默认值为“助教”。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
(2)单击工具栏上的【执行】按钮;
(3)刷新“教师”表下的文件夹“约束”,可以看到生成的默认约束。
语法规则:ALTER TABLE 表名 DROP CONSTRAINT 约束名
使用ALTER TABLE命令删除约束
ALTER TABLE 教师 drop constraint DF__教师__职称__7D
【例3-17】修改表“教师”表,删除默认约束“DF__教师__职称__403A8C7D”。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
(2)单击工具栏上的【执行】按钮;
(3)刷新“教师”表下的文件夹“约束”,可以看到名为“DF__教师__职称__403A8C7D”的默认约束已经删除成功 。
为了存储销售业务系统的商品信息,设计“商品”表,表结构如表所示。
3.2.5 应用实践
字段名称 数据类型 是否允许NULL值 约束
商品ID int 是
名称 varchar(50) 是
价格 varchar(30) 是
产品描述 text 是
生产日期 datetime 是
CREATE TABLE 商品
(
商品ID int,
名称 varchar(50),
价格 varchar(30),
产品描述 text,
生产日期 datetime
)
1.创建“商品”表,命令如下:
ALTER TABLE 商品 alter column 价格 money
2.执行成功后,发现“商品”表的字段“价格”数据类型有误,需要通过修改表的方式修改表中字段的数据类型,命令如下:
ALTER TABLE 商品 add 保质期 int
3.发现需要为“商品”表添加字段“保质期”,定时查看商品是否在保质期内。命令如下:
ALTER TABLE 商品 alter column 商品ID int not null
4.为了识别每一行,需要为“商品”表添加主键约束,由于主键约束要求不能为空,首先要设置“商品ID”字段的约束为非空约束,命令如下:
ALTER TABLE 商品 add primary key(商品ID)
然后再为“商品ID”字段添加主键约束,命令如下:
ALTER TABLE 商品 add default 30 for 保质期
5.商品的保质期一般为30天,为“保质期”字段设置默认约束的命令如下:
3.3.1 情景描述
3.3.2问题分析
3.3.3 解决方案
3.3.4 知识总结
3.3.5 应用实践
任务3.3删除表
数据库开发人员发现“教师”表中的“系部代码”字段没有与“系部”表进行关联,但不想修改表,可以先把表删除,再重新创建。那么,需要完成以下任务:
1.删除“教师”表;
2.删除“系部”表;
3.重新创建“系部”表,设置“系部代码”为主键;
4.重新创建“教师”表,“教师”表的“系部代码”与“系部”表的“系部代码”字段关联。
3.3.1 情景描述
当一个表不再需要的时候,可以使用删除命令把表从数据库中删除。如果一个表需要修改,也可以通过删除表的方式,先删除表,再按照需要重新建立表。“教师”表中的“系部代码”如果要作为外键引用“系部”表的“系部代码”字段,首先要保证“系部”表的“系部代码”字段是“系部”表的主键字段。
3.3.2问题分析
1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;
2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;
3.在“查询编辑器”上输入以下代码:
3.3.3 解决方案
DROP TABLE 教师
DROP TABLE 系部
4.单击工具栏上的【执行】按钮,成功删除表“教师”表、“系部”表;
5.创建设置“系部代码”为主键的“系部”表的代码,并单击工具栏上的【执行】按钮;
CREATE TABLE 系部
(
系部代码 int primary key ,
系部名称 varchar(50) ,
办公电话 char(11),
系主任 varchar(20)
)
6.创建“教师”表,与“系部”表关联的代码,并单击工具栏上的【执行】按钮;
CREATE TABLE 教师
(
教师编号 int primary key,
教师姓名 varchar(50) not null,
性别 char(2) check(性别='男' or 性别='女'),
职称 varchar(20),
学历 varchar(20),
学位 varchar(20),
专业 varchar(20),
系部代码 int foreign key references 系部(系部代码)
)
数据库中的表如果不需要了,会占用空间,则需要把表删除。
删除一个表的时候,表中的数据,表的结构及与表有关的所有对象都被删除,但是不能删除系统表和有外键约束引用的主表。
删除表使用DROP TABLE语句,语法格式为:
DROP TABLE 表名
3.3.4 知识总结
DROP TABLE 辅导员评价
【例3-18】删除数据库“学生管理”中的“辅导员评价”表。
(1)打开“查询编辑器”;
(2)输入代码:
(3)单击工具栏上的“执行”按钮。
在数据库“销售”中,表3-20中发现了很多问题,“价格”字段的数据类型应该为money,添加“保质期”字段,默认值为30,设置“商品ID”字段为主键。为此,把“商品”表删除,然后创建合适的“商品”表。
1.单击工具栏上的“新建查询”命令,打开“查询编辑器”;
2.在“销售”数据库中,在“查询编辑器”上输入以下代码:
3.3.5 应用实践
DROP TABLE 商品
3.单击工具栏上的【执行】按钮,成功删除表“商品”表;
CREATE TABLE 商品
(
商品ID int,
名称 varchar(50),
价格 varchar(30),
产品描述 text,
生产日期 datetime
)
4.创建“商品”表,命令如下:
ALTER TABLE 商品 alter column 价格 money
5.执行成功后,发现“商品”表的字段“价格”数据类型有误,需要通过修改表的方式修改表中字段的数据类型,命令如下:
ALTER TABLE 商品 add 保质期 int
6.发现需要为“商品”表添加字段“保质期”,定时查看商品是否在保质期内。命令如下:
ALTER TABLE 商品 alter column 商品ID int not null
7.为了识别每一行,需要为“商品”表添加主键约束,由于主键约束要求不能为空,首先要设置“商品ID”字段的约束为非空约束,命令如下:
ALTER TABLE 商品 add primary key(商品ID)
然后再为“商品ID”字段添加主键约束,命令如下:
ALTER TABLE 商品 add default 30 for 保质期
8.商品的保质期一般为30天,为“保质期”字段设置默认约束的命令如下:
1.常用的数据类型。
2.创建表的命令。
3.在创建表的时候创建非空约束、主键约束、外键约束、唯一约束、非空约束、默认约束。
4.修改表的命令,通过修改表可以添加表的一列,删除一列,修改一列的数据类型,可以添加约束,删除约束。
5.删除表的命令。
本章小结

展开更多......

收起↑

资源预览