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

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

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

资源简介

(共37张PPT)
第四单元 管理数据库表中数据
任务4.1 存储数据
任务4.2更新数据
任务4.3 删除数据
4.1.1 情景描述
4.1.2问题分析
4.1.3 解决方案
4.1.4 知识总结
4.1.5 应用实践
任务4.1 存储数据
学生管理数据库用来存放具体数据的表创建好后,就可以在表中储存数据了。如果一张表建立好后没有任何数据,那它只是一个空的表结构,不能起到任何实际作用。学生管理系统数据库的开发人员,需要把课程有关信息添加到“课程”表中,添加了信息后,才可以根据应用系统的需要对课程信息进行操作。
4.1.1 情景描述
为了完成任务,开发人员需要完成以下任务:
1.根据“课程”表的结构,设计表的有关数据,如表4-1所示;
2.使用插入数据的命令来完成记录的存储,并在SQL Server 2008上执行。
4.1.2问题分析
课程编号 课程名称 课程性质 学分 开课学期 课程分类
1 数据结构 专业必修课 4 第三学期 专业拓展
2 C语言程序设计 专业必修课 5 第一学期 专业拓展
3 公共英语 公共必修课 4 第一学期 素质拓展
4 软件工程 专业选修课 3 第二学期 专业拓展
5 经济学 公共选修课 2 第四学期 技能拓展
6 网页设计 专业必修课 3 第五学期 专业拓展
1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;
2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;
3.在“查询编辑器”上输入以下代码:
4.1.3 解决方案
INSERT INTO 课程
VALUES(1,'数据结构','专业必修课',4,'第三学期','专业拓展')

INSERT INTO 课程
VALUES(2,'C语言程序设计','专业必修课',5,'第一学期','专业拓展')

INSERT INTO 课程
VALUES(3,'公共英语','公共必修课',4,'第一学期','素质拓展')

INSERT INTO 课程
VALUES(4,'软件工程','专业选修课',3,'第二学期','专业拓展')

INSERT INTO 课程(课程编号,课程名称,课程性质,课程分类,学分,开课学期)
VALUES(5,'经济学','公共选修课','技能拓展',2,'第四学期')

INSERT INTO 课程(课程编号,课程分类,课程名称,学分,开课学期,课程性质)
VALUES(6,'专业拓展','网页设计',4,'第五学期','专业必修课')
4.单击工具栏上的【执行】按钮。
使用INSERT INTO…VALUES命令存储数据
使用INSERT INTO…SELECT命令把已经存在的表中的数据,存储到另外一个表中
使用SELECT…INTO…命令存储数据
4.1.4 知识总结
INSERT INTO 表名 (列名的列表)
VALUES ( 表达式的列表 )
使用INSERT INTO…VALUES命令存储数据
参数说明如下:
表名:用于指定用来存储数据的表的名称。
列名的列表:要在其中插入数据的表中的一列或多列的列表,多列之间用逗号分隔。参数如果省略,则表示表中的所有列都要插入数据。
表达式的列表:要插入的数据值的列表。
注意:
(1)对于指定了参数“列名的列表”中的每个列,都必须有一个数据值与之相对应,表达式的顺序和指定的列名的顺序要一致;如果没有指定参数“列名的列表”,表达式的顺序与表中列的顺序一致,必须包含表中每列的值。即表达式列表的数量和表达式值的数据类型以及顺序必须与表中或列名的列表中的一致。
(2)表中可以为空的字段在“列名的列表”参数中不必指出,那么在表达式中也可以不用输入对应的值。
(3)关键字INTO可以省略。
(4)存储的数据不能违反表中已经存在的约束。
【例4-1】在“专业”表中添加记录,具体数据如表所示。
专业代码 专业名称 描述 状态
1 软件技术 软件开发相关 1
2 网络技术 通信、网络安全相关 1
3 硬件技术 单片机、嵌入式相关 1
4 信息管理技术 1
INSERT INTO 专业
VALUES(1,'软件技术','软件开发相关','1')

INSERT INTO 专业(专业代码,专业名称,描述,状态)
VALUES(2,'网络技术','通信、网络安全相关','1')

INSERT INTO 专业(专业名称,描述,专业代码,状态)
VALUES('硬件技术','单片机、嵌入式相关',3,'1')

INSERT INTO 专业(专业名称,专业代码,状态)
VALUES('信息管理技术',4,'1')
说明:
专业代码为“1”的记录的添加省略了“列名的列表”参数,VALUES值的顺序和表中字段的顺序一致;
专业代码为“2”和“3”的记录的添加指定了“列名的列表”参数,VALUES值的顺序和指定的“列名的列表”参数的顺序一致;
专业代码为“4”的记录的添加,“描述”字段为空,在“列名的列表”参数中不指定“描述”字段,VALUES值中也没有此字段对应的值,VALUES值中的个数、顺序和数据类型与“列名的列表”参数一致。
【例4-2】在“班级”表中添加记录,具体数据如表所示。
班级代码 班级名称 专业代码 所属年级 班主任 描述
1 计算机1201 1 2012级 李秋 软件开发
2 计算机1202 2 2012级 罗莉 网络安全
3 计算机1301 1 2013级 刘亚 软件开发
4 计算机1302 2 2013级 罗莉 网络安全
5 计算机1303 3 2013级 刘伟 嵌入式
6 计算机1401 3 2014级 刘伟 嵌入式
7 计算机1402 4 2014级 罗莉 信息管理
INSERT INTO 班级
VALUES(1,'计算机',1,'2012级','李秋','软件开发')
INSERT INTO 班级
VALUES(2,'计算机',2,'2012级','罗莉','网络安全')
INSERT INTO 班级
VALUES(3,'计算机',1,'2013级','刘亚','软件开发')
INSERT INTO 班级
VALUES(3,'计算机',2,'2013级','罗莉','网络安全')
INSERT INTO 班级
VALUES(5,'计算机',3,'2013级','刘伟','嵌入式')
INSERT INTO 班级(班主任,班级代码,班级名称,描述,专业代码,所属年级)
VALUES('刘真',6,'计算机','嵌入式',3,'2014级')
INSERT INTO 班级(班级代码,班级名称,专业代码,所属年级)
VALUES(7,'计算机',4,'2014级')
说明:
前3条记录和第5条记录省略了表中的字段列表,VALUES值的顺序和表中的顺序、个数、数据类型都一致;
第4条记录的“班级代码”字段和第3条记录的重复了,违反了主键约束,所以不能正确存储数据;
第6条和第7条记录指明了表中的字段列表,VALUES值的顺序和指定的顺序、个数、数据类型一致。
在第7条记录中,表中字段列表中省略了“描述”字段,“班主任”字段,存储的数据这两个字段的值也为空,可以通过更新记录的方式增加这两个字段的值,在后面介绍。
【例4-3】在“学生”表中添加记录,具体数据如表所示。
学号 姓名 性别 出生日期 个人联系电话
1 王思旭 男 1993-03-15 13102315610
2 陈芳 女 1994-02-26 13102315610
3 赵建 男 1992-12-01 13202315612
…………
…………表格不完整
第2条记录和第1条记录的“个人联系电话”字段重复,违反了表中定义的唯一约束,不能正确保存第2条数据;
第3条记录的最后一个字段“班级编号”为外键,取值为8,参考引用“班级”表的“班级代码”字段,而“班级”表中没有班级代码为8的记录,所以违反了外键约束,记录也不能正确保存。
【例4-4】在“选课”表中添加记录,具体数据如表所示。
学号 课程编号 成绩
1 1 90
1 2 0
8 1 0
8 3 95
8 4 88
9 1 45
9 5 82
4 5 65
4 4 49
5 1 73
6 2 51
6 3 86
7 2 70
INSERT INTO 选课 VALUES(1,1,90)
INSERT INTO 选课 VALUES(1,2,DEFAULT)
INSERT INTO 选课 VALUES(8,1,DEFAULT)
INSERT INTO 选课 VALUES(8,3,95)
INSERT INTO 选课 VALUES(8,4,88)
INSERT INTO 选课 VALUES(9,1,45)
INSERT INTO 选课 VALUES(9,5,82)
INSERT INTO 选课 VALUES(4,5,65)
INSERT INTO 选课 VALUES(4,4,49)
INSERT INTO 选课 VALUES(5,1,73)
INSERT INTO 选课 VALUES(6,2,51)
INSERT INTO 选课 VALUES(6,3,86)
INSERT INTO 选课 VALUES(7,2,70)
第2条和第3条记录,“成绩”字段取值为“DEFAULT”,存储的是在“选课”表中为“成绩”字段设置的默认值。
INSERT 表名1
SELECT 字段列表
FROM 表名2
WHERE 条件表达式
使用INSERT INTO…SELECT命令把已经存在表中数据存储到另外一个表
参数说明如下:
表名1:用于指定用来存储数据的表的名称。
字段列表:查询结果的字段的列表。
表名2:查询数据所在的源表。
条件表达式:查询结果限定行的条件。
注意:参数“字段列表”的数据类型、顺序、个数要和表名1中的字段的一致。
【例4-5】在“学生管理”数据库下创建表“学生备份”,表结构如表所示,把“学生”表中女生的相关信息储存在“学生备份”表中。
字段名称 数据类型 是否允许NULL值 约束
学号 int 否 主键
姓名 varchar(50) 否
性别 char(2) 否
出生日期 datetime 是
个人联系电话 char(11) 是 唯一约束
CREATE TABLE 学生备份
(
学号 int primary key,
姓名 varchar(50) not null,
性别 char(2) not null,
出生日期 datetime,
个人联系电话 char(11) unique
)
INSERT 学生备份
SELECT 学号,姓名,性别,出生日期,个人联系电话
FROM 学生
WHERE 性别='女'
首先创建学生备份表
把女生的相关信息存储在学生备份表
SELECT 字段列表 INTO 新表名 FROM 表名 WHERE 条件表达式
使用SELECT…INTO…命令存储数据
参数说明如下:
表名:要查询的数据所在的表。
字段列表:参数“表名”包含的字段。
新表名:把查询出来的记录插入的新表。
条件表达式:行的限定条件。
注意:SELECT…INTO…语句的功能是从一个表中选择一些数据插入到新表中,这个新表是执行查询语句的时候创建的,查询语句执行之前是不能预先存在的。
【例4-6】把“选课”表中成绩大于70的记录放入一个新表“选课NEW”。
SELECT 学号,课程编号,成绩
INTO 选课NEW
FROM 选课
WHERE 成绩>70
说明:在执行命令之前表“选课NEW”在数据库中是不存在的,“选课NEW”表的结构和SELECT后面的字段相同。
4.1.5 应用实践
在销售数据库中的“账号”表中存储数据,具体数据如表所示。
用户ID 密码 用户名 邮件 地址 邮编 电话 状态
1 123456 lanlan lanlan@ 沙坪坝 400000 65231201 启用
2 123123 wanwan wanwan@ 渝中区 400000 63232101 启用
3 123321 chenchen chenchen@ 北碚区 400700 63332325 启用
4 lanping lanping@ 巴南区 401320 65896321 启用
5 manlan manlan@ 江北区 400000 63654120 启用
1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“销售”;
2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;
3.在“查询编辑器”上输入以下代码:
INSERT INTO 账号
VALUES(1,'123456','lanlan','lanlan@','沙坪坝','400000','65231201','启用')
INSERT INTO 账号
VALUES(2,'123123','wanwan','wanwan@','渝中区','400000','63232101','启用')
INSERT INTO 账号
VALUES(3,'123321','chenchen','chenchen@','北碚区','400700','63332325','启用')
INSERT INTO 账号
VALUES(4,DEFAULT,'lanping','lanping@','巴南区','401300','65896321','启用')
INSERT INTO 账号
VALUES(5,DEFAULT,'manlan','manlan@','江北区','400000','63654120','启用')
4.单击工具栏上的【执行】按钮。
4.2.1 情景描述
4.2.2问题分析
4.2.3 解决方案
4.2.4 知识总结
4.2.5 应用实践
任务4.2 更新数据
数据库维护人员发现有的课程信息有误,课程编号为6的记录,学分应该修改为4,开课学期为第四学期。因此需要对数据库内原有的数据进行更新来修改错误的记录。
4.2.1 情景描述
为了解决上述问题,需要完成以下任务:
1.写出更新记录的命令。
2.在SQL Server2008上执行命令,验证更新后的记录。
4.2.2问题分析
4.2.3 解决方案
1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;
2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;
3.在“查询编辑器”上输入以下代码:
UPDATE 课程
SET 学分=4, 开课学期='第四学期'
WHERE 课程编号=6
4.单击工具栏上的【执行】按钮。
当学生、课程等表中需要维护的数据发生变化时,需要使用更新数据的命令修改表中的数据。使用UPDATE命令来更新数据的语法规则为:
UPDATE 表名
SET 列名1=数据值1,列名2=数据值2,列名3=数据值3,…
WHERE 条件表达式
参数说明如下:
表名:用于指定需要更新的表的名称。
列名1:要更改数据的列的名称。
数据值1:列更新后的新值,对列赋新值的表达式之间用逗号分隔。
条件表达式:指定更新的记录的限定条件
注意:
(1)更新后的数据要和字段的数据类型保持一致。
(2)更新后的数据不能违反表中创建的约束条件。
(3)WHERE子句指定用于限制修改行的条件,如果省略,则UPDATE语句更新表中所有的行。
4.2.4 知识总结
UPDATE 班级
SET 班主任='刘伟'
WHERE 班级代码=6
【例4-7】“班级”表中,“班级代码”为6的记录的班主任字段改为“刘伟”。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
【例4-8】“课程”表中,“课程编号”为1的记录的课程性质改为“专修”。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
UPDATE 课程
SET 课程性质='专修'
WHERE 课程编号=1
(2)单击工具栏上的【执行】按钮,运行结果如图4-11,错误提示“消息547,级别16,状态0,第1 行 UPDATE 语句与CHECK 约束"CK__课程__课程性质__3D5E1FD2"冲突。该冲突发生于数据库"学生管理",表"dbo.课程", column '课程性质' 语句已终止”。
注意:更新后的数据不能违反表中的约束。在创建课程表的时候为课程性质字段设置了检查(check)约束,限定了其取值范围
在销售数据库中的“账号”表中存储数据需要更改,用户ID为5的记录的状态改为“停用”。
1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;
2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;
3.在“查询编辑器”上输入以下代码:
4.2.5 应用实践
UPDATE 账号
SET 状态='停用'
WHERE 用户ID=5
4.单击工具栏上的【执行】按钮。
4.3.1 情景描述
4.3.2问题分析
4.3.3 解决方案
4.3.4 知识总结
4.3.5 应用实践
任务4.3删除数据
在数据库维护过程中,发现课程表中课程编号为5的课程不需要再开设了,则需要删除记录。
4.3.1 情景描述
为了解决上述问题,需要完成以下任务:
1.根据删除记录的命令,写出删除课程编号为5的记录。
2.在SQL Server2008上执行,验证结果。
4.3.2问题分析
1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”;
2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;
3.在“查询编辑器”上输入以下代码:
4.3.3 解决方案
DELETE 课程
WHERE 课程编号=6
4.单击工具栏上的【执行】按钮。
4.3.4 知识总结
当表中的数据不再需要的时候,为了节约存储空间,需要删除数据,删除数据最小的单位是一行。
使用DELETE语句删除数据的语法规则为:
DELETE 表名
WHERE 条件表达式
参数说明如下:
表名:用于指定要从其中删除行的表的名称。
条件表达式:指定删除记录的限定条件。
注意:删除记录要确保没有被其它表引用。例如删除一个学生A的记录,要确保在选课表中没有此学生A的选课信息;否则,在选课表中还有学生A的选课记录,但是把学生A的信息从学生表中删除了,导致选课表中的学生A的选课记录成为废数据,因为已经不存在的学生是不能选课的。删除的顺序应该是:先在选课表中删除学生A的选课记录,再在学生表中删除学生A的信息。
DELETE dbo.选课
WHERE 学号=1 AND 课程编号=2
【例4-9】“选课”表中,删除学号为1和课程编号为2的记录。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
【例4-10】“学生”表中,删除学号为6的记录。
(1)打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码:
DELETE 学生
WHERE 学号=6
(2)单击工具栏上的【执行】按钮,运行结果如图4-15,错误提示“消息547,级别16,状态0,第1 行DELETE 语句与REFERENCE 约束"FK__选课__学号__33D4B598"冲突。该冲突发生于数据库"学生管理",表"dbo.选课", column '学号' 语句已终止。”。
注意:删除的数据不能被其他表引用,学号为6的记录在“选课”表中有选课记录,为了保护数据的完整性,不能删除此记录,删除的顺序应该是:先删除学号为6的选课记录,再删除学生的记录。
在销售数据库中的“账号”表中存储数据有的不需要了,就要删除记录,以节约存储空间,停用状态的记录不再需要了,用删除记录的命令把这些记录删除。
1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“销售”;
2.单击工具栏上的“新建查询”命令,打开“查询编辑器”;
3.在“查询编辑器”上输入以下代码:
4.3.5 应用实践
DELETE 账号
WHERE 状态='停用'
3.单击工具栏上的【执行】按钮。
1.向表中添加记录INSERT…VALUES命令。
2.一次添加多条记录INSERT…SELECT命令。
3.把查询结果存储在新表中的命令SELECT…INTO命令。
4.UPDATE语句的用法。
5.DELETE语句的用法。
本章小结

展开更多......

收起↑

资源预览