一、数据添加
1、打开SSMS,附加数据库(数据库文件在自己的文件夹下面),并进行下面的设置:
(1)设置“部门信息”表中的“编号”为主键(SSMS)
首先建立好所需的数据库库,然后右击建好的数据库打开选项建立所需的“部门信息”表,找到部门信息表,右键,选择设计,打开设计页面填入所需的数据项,设计完后找到编号,右键选择设置主键,完成设置编号为部门信息表的主键操作,保存,完成后如下图:
(2)设置“销售人员”表中的“工号”为主键,并设置为自动递增(即设置成标识)。(SSMS)
右击建好的数据库打开选项建立所需的“销售人员”表,找到销售人员表,右键,选择设计,打开设计页面填入所需的数据项,设计完后找到工号,右键选择设置主键,完成设置工号为销售人员表的主键操作,保存,完成后如下图:
主键设置完成后,在列属性的选项中找到“表示规范”,然后将“标识规范”改为“是”,然后选择“是标识”,最后将“标识增量”和“标识种子”都设置为1,到此自动递增完成。
首先打开销售人员表的设计页面,找到表中的部门号,右键,选择关系,进入关系添加页面,添加关系,找到表和列规范展开,设置主键基表为部门信息,主键列为编号,外键基表为销售人员,外键列为部门号到此主键外键关系设置完成。最后在关系属性中找到INSERT和UPDATE规范,展开,将删除规则由“不执行任何操作”改为为“级联”到此要求全部完成,操作完成图如下:
2、在“部门信息”中插入记录如下(SSMS):
编号 |
名称 |
经理 |
人数 |
1 |
计算机销售部 |
王飞 |
20 |
选择“部门信息表”右击,然后选择“编辑前200行”跳转到设计页面,最后在对应数据项中填入所要求的数据项,结果图如下:
3、“销售人员”表中插入记录如下(SSMS):
部门号 |
姓名 |
地址 |
电话 |
1 |
王晓明 |
深圳罗湖 |
07552585920 |
2 |
吴小丽 |
江西南昌 |
13920999999 |
出现什么错误?什么原因造成?如何解决?
答:出现的错误如下
造成错误的原因:没有理解外键的概念,涉及到外键时,一定有一个参照关系和被参照关系,也就是有一个参照表和被参照表。如在这创建两个表“销售人员表”表和“部门信息表”表,“销售人员表”表中有一列Cno,CNO是“部门信息表”的外键,因此在向“销售人员表”表中添加数据时,“销售人员表”表中的数据就会参照“部门信息表”表中的数据,解决方案是:在向“销售人员表”表中添加数据之前,一定要把“部门信息表”表中 的数据添加进去,否则“销售人员表”表没有可参照的数据。第二种解决方法:将“销售人员表”表中的外建约束删除。
修改方案:将“吴小丽”的数据项中的“部门号”中的“2”改为“1”(即将“销售人员表”的数据修改为参考“部门信息表”的数据。效果图如下:
4、“销售人员”表中插入记录如下(SSMS):
工号 |
部门号 |
姓名 |
地址 |
电话 |
3 |
1 |
王大明 |
广州市 |
07552585920 |
出现什么错误?什么原因造成?如何解决?
答:出现的错误如下:
出现错误的原因:因为在设置页面中将“工号”设置了自增长,因此“工号”是不可编辑的。解决方法是不为销售人员设置工号,它会就会进行自我增长填入,或者可以利用运行”set identity_insert 销售人员 ON”语句,在运行要插入语句,在执行”set identity_insert 销售人员 OFF”语句,以此来插入此数据。
5、打开查询分析器,输入如下的命令
use marketing
go
delete from 部门信息
go
delete from 销售人员
(回答上面SQL命令的作用?)
答:此SQL命令的用于删除数据库marketing中的“部门信息表”中的所有数据以及“销售人员表”中的所有数据。use marketing表明调用marketing数据库中的数据,go的作用是分隔作用,表明此语句作用到此结束,“delete from 部门信息”表明删除“部门信息”表的所有数据项,同理:“delete from 销售人员”表明删除“销售人员”表的所有数据项且语句具有先后顺序,一个语句的执行失败不会影响另一条语句的执行。结果如下:
6、添加和删除记录
(1)添加如下的记录(SSMS)
部门信息
编号 |
名称 |
经理 |
人数 |
1 |
计算机销售部 |
王飞 |
20 |
2 |
手机销售部 |
张雨晨 |
30 |
销售人员表
部门号 |
姓名 |
地址 |
电话 |
1 |
王晓明 |
深圳罗湖 |
07552585920 |
1 |
吴小丽 |
江西南昌 |
13920999999 |
(2)删除部门信息表中的第一条记录,然后打开看看销售人员表中的记录发生了什么变化?想一想为什么?(SSMS)
答: 删除部门信息表中的第一条记录,然后打开销售人员表中的记录发现销售人员表中的数据全部都被删除了。造成这个变化的原因:主键基表为部门信息,主键列为编号,外键基表为销售人员,外键列为部门号,部门信息与销售人员拥有此关系且设置了级联删除,而级联删除就是如果父表中的记录被删除,则子表中对应的记录自动被删除。因此,当作为父表的部门信息的编号1被删除时,由于级联删除,作为子表的销售人员中部门号为1的对应记录也会被删除。
删除部门信息表中的第一条记录后的效果图如下:
二、采用SQL命令添加数据
(注意:1. 每次向查询分析器中输入命令,选择后再执行;
2. 要先使用use marketing语句选定数据库再执行其它语句。)
1、打开查询分析器,输入删除“部门信息”和“销售人员”表中所有记录的SQL命令。(提示:采用DELETE FROM语句)
(1)SQL命令(删除所有记录):
删除代码如下:
use shujuku
delete from 部门信息
go
delete from 销售人员
(2)在查询分析器中,执行如下的命令:
use marketing
go
select * from 部门信息
select * from 销售人员
2、采用SQL命令向“部门信息”表中添加如下的记录:
编号 |
名称 |
经理 |
人数 |
1 |
计算机销售部 |
王飞 |
20 |
2 |
手机销售部 |
张雨晨 |
30 |
3 |
打印机销售部 |
leon |
25 |
use shujuku
go
INSERT INTO 部门信息 (编号 ,名称, 经理 ,人数)
VALUES('1', '计算机销售部', '王飞','20')
INSERT INTO 部门信息 (编号 ,名称, 经理 ,人数)
VALUES('2', '手机销售部', '张雨晨','30')
INSERT INTO 部门信息 (编号 ,名称, 经理 ,人数)
VALUES('3', '打印机销售部', 'Leon','25')
select * from 部门信息
运行结果如下:
(2)在查询分析器中,输入并执行如下的命令:
use marketing
go
select * from 部门信息
执行结果如下图:
3、采用SQL命令向“销售人员”表中添加如下的记录:
部门号 |
姓名 |
地址 |
电话 |
1 |
王晓明 |
深圳罗湖 |
07552585920 |
2 |
吴小丽 |
江西南昌 |
13920999999 |
use shujuku
go
INSERT INTO 销售人员(部门号,姓名,地址,电话)
VALUES('1', '王晓明','深圳罗湖','07552585920')
INSERT INTO 销售人员(部门号,姓名,地址,电话)
VALUES('2', '吴小丽','江西南昌','13920999999')
执行效果图如下:
(2)在查询分析器中,输入并执行如下的命令:
use marketing
go
select * from 销售人员
执行效果图如下:
三、数据更新
采用SQL语句更新“销售人员”表中“部门号”为2的记录,更新它的“姓名”为“吴羽”,更新“地址”为“广州天河”。
(1)SQL命令(更新记录):
执行的代码命令如下:
use shujuku
go
UPDATE 销售人员
SET 姓名='吴羽',地址='广州天河'
WHERE 部门号='2'
执行的代码效果图如下:
(2)在查询分析器中,输入并执行如下的命令:
use marketing
go
select * from 销售人员
执行效果图如下:
四、删除数据操作
采用SQL语句删除“销售人员”表中“姓名”为“吴羽”的销售人员。
执行的代码命令为:
use shujuku
go
delete from 销售人员
where 姓名='吴羽'
(2)在查询分析器中,输入并执行如下的命令:
use marketing
go
select * from 销售人员
执行效果图如下:
五、分离数据库并保存。(“shujuku”)
选择所要分离的数据库“shujuku”,右键,选择任务,选择分离,成功分离并保存。效果图如下:
六、给“学生管理数据库”按以下表格要求添加记录。
1、附加数据库。(“学生管理数据库”)
2、插入数据。(要求用SQL语句操作)(注意:要先使用use学生管理数据库 选定数据库再执行其它语句。)
(1)学生信息表
学号 |
姓名 |
性别 |
出生日期 |
专业 |
所在系 |
联系电话 |
14101 |
杨颖 |
女 |
1995-7-20 |
软件 |
计算机 |
88297147 |
14102 |
方露露 |
女 |
1996-1-15 |
软件 |
计算机 |
88297147 |
14103 |
俞奇军 |
男 |
1996-2-20 |
软件 |
计算机 |
88297151 |
14104 |
胡国强 |
男 |
1995-11-7 |
软件 |
计算机 |
88297151 |
SQL命令(添加记录):
代码命令如下:
USE 学生管理数据库
INSERT INTO 学生信息表(学号,姓名,性别,出生日期,专业,所在系,电话)
VALUES('14101','杨颖','女','1995-7-20','软件','计算机','88297147')
INSERT INTO 学生信息表(学号,姓名,性别,出生日期,专业,所在系,电话)
VALUES ('14102','方露露','女','1996-1-15','软件','计算机','88297147')
INSERT INTO 学生信息表(学号,姓名,性别,出生日期,专业,所在系,电话)
VALUES('14103','俞奇军','男','1996-2-20','软件','计算机','88297151')
INSERT INTO 学生信息表(学号,姓名,性别,出生日期,专业,所在系,电话)
VALUES ('14104','胡国强','男','1995-11-7','软件','计算机','88297151')
执行效果图如下:
(2)课程信息表
课程号 |
课程名 |
教师 |
开课学期 |
学时 |
学分 |
101 |
计算机原理 |
陈红 |
2 |
45 |
3 |
102 |
计算方法 |
王颐 |
3 |
45 |
3 |
103 |
操作系统 |
徐格 |
2 |
60 |
4 |
104 |
数据库原理及应用 |
应对刚 |
3 |
75 |
5 |
SQL命令(添加记录):
代码命令如下:
USE 学生管理数据库
INSERT INTO 课程信息表 (课程号,课程名,教师,开课学期,学时,学分)
VALUES('101','计算机原理','陈红','2','45','3')
INSERT INTO 课程信息表 (课程号,课程名,教师,开课学期,学时,学分)
VALUES ('102','计算方法','王颐','3','45','3')
INSERT INTO 课程信息表 (课程号,课程名,教师,开课学期,学时,学分)
VALUES ('103','操作系统','徐格','2','60','4')
INSERT INTO 课程信息表 (课程号,课程名,教师,开课学期,学时,学分)
VALUES('104','数据库原理及应用','应对刚','3','75','5')
执行效果图如下:
(3)成绩信息表
学号 |
课程号 |
成绩 |
14101 |
101 |
85 |
14101 |
102 |
87 |
14101 |
104 |
88 |
14102 |
101 |
58 |
14102 |
102 |
63 |
SQL命令(添加记录):
代码命令如下:
USE 学生管理数据库
INSERT INTO 成绩信息表(学号,课程号,成绩)
VALUES('14101','101','85')
INSERT INTO 成绩信息表(学号,课程号,成绩)
VALUES('14101','102','87')
INSERT INTO 成绩信息表(学号,课程号,成绩)
VALUES('14101','104','88')
INSERT INTO 成绩信息表(学号,课程号,成绩)
VALUES('14102','101','58')
INSERT INTO 成绩信息表(学号,课程号,成绩)
VALUES('14102','102','63')
执行效果图如下:
3、打开查询分析器,输入并执行如下的命令
use 学生管理数据库
go
select * from 学生信息表
select * from 课程信息表
select * from 成绩信息表
答:代码执行效果图如下:
4、分离数据库并保存。(“学生管理数据库”)
选择所要分离的数据库“学生管理数据库”,右键,选择任务,选择分离,成功分离并保存。效果图如下: