SQL数据库实验二 SQL语言
- 格式:doc
- 大小:175.50 KB
- 文档页数:4
实验二 SQL语言
一、 实验目的
1.掌握SQL语言的语法
2.学会编写和调试SQL语言
3.学会分析相应实验结果
二、 实验内容
本次实验所有题目要求用SQL语句实现,不要用SSMS工具实现。
1.使用SQL语言在“教师授课管理数据库”中创建新表:
系表结构
列名 说明 数据类型 约束
Dno 系号 字符串,长度为4 主码
Dname 系名 字符串,长度为20 非空
Ddirno 系主任教师号 字符串,长度为7 引用教师表的外码
2.在系表中插入至少3条记录,内容为计算机系、英语系、经济系等。
3.修改教师表的结构:
(1) 增加一个新列:Tel 联系电话 字符串,长度为15 允许空
(2) 在该列中填充数据
(3) 增加Dept列为引用系表的系名的外码(注意数据内容一致)
4.查询计算机系教师的姓名、年龄。
5.查询英语系教师的最大年龄和最小年龄。
6.统计每个系男女教师的人数。
7.查询教师总数超过3人的系的名称和系主任姓名。
8.删除“张立”教师的教师信息。
9.如果他曾授过课,则相应的授课信息是够还存在?
10. 将计算机系的系名改为计算机科学系。
三、 实验过程
1.使用SQL语言在“教师授课管理数据库”中创建新表:
CREATE TABLE 系表
(
Dno nchar(4) PRIMARY KEY,
Dname NCHAR(20) NOT NULL,
Ddimo NCHAR(7),
FOREIGN KEY (Ddimo) REFERENCES 教师表(Tno)
)
2.在系表中插入至少3条记录,内容为计算机系、英语系、经济系等。
INSERT
INTO 系表(Dno,Dname,Ddimo)
VALUES('101','计算机系','10002');
系表(Dno,Dname,Ddimo)
VALUES('102','英语系','10003');
INSERT
INTO 系表(Dno,Dname,Ddimo)
VALUES('103','经济系','10004');
3.修改教师表的结构:
(1) 增加一个新列:Tel 联系电话 字符串,长度为15 允许空
ALTER TABLE 教师表 ADD Tel nchar(15) null
(2) 在该列中填充数据
UPDATE 教师表
SET Tel=151****3221WHERE Tname='王老师';
UPDATE 教师表
SET Tel=151****2254WHERE Tname='孙老师';
UPDATE 教师表
SET Tel=138****5670WHERE Tname='高老师';
UPDATE 教师表
SET Tel=138****5645WHERE Tname='李老师';
UPDATE 教师表
SET Tel=189****4521WHERE Tname='方老师';
(3) 增加Dept列为引用系表的系号的外码(注意数据内容一致)
ALTER TABLE 系表
ADD UNIQUE(Dname);
ALTER TABLE 教师表
ADD CONSTRAINT 教师表Dept_系表Dname
FOREIGN KEY (Dept) REFERENCES 系表(Dname);
4 .查询计算机系教师的姓名、年龄。
select Tname,2014 - YEAR(Birthday)
from 教师表
5 .查询英语系教师的最大年龄和最小年龄。
6.统计每个系男女教师的人数。
7.查询教师总数超过3人的系的名称和系主任姓名。
select Tname,Dept
from 系表,教师表
where Dept in
(select Dept
from 教师表
group by Dept
having COUNT(*)>=3
)and 教师表.Dept=系表.Dname
and 系表.Ddimo=教师表.Tno
8. 删除“张立”教师的教师信息。
delete
from 授课表
where Tno in
(select Tno
from 教师表
where Tname='张立'
)
ALTER TABLE 教师表
DROP CONSTRAINT 教师表Dept_系表Dname; delete
from 系表
where Ddimo in
(select Tno
from 教师表
where Tname='张立'
)
delete
from 教师表
where Tname ='张立'
alter table 教师表
add foreign key(Dept) references 系表(Dname)
9.如果他曾授过课,则相应的授课信息是够还存在?
答:如果没有手动删除,则依然存在
10.将计算机系的系名改为计算机科学系。
update 教师表
set Dept='计算机科学系'
where Dept='计算机系'
update 系表
set Dname='计算机科学系'
where Dname='计算机系'
四、 实验心得
1、 在对表进行操作时,应注意其外码约束关系,必要时先将其删除再做修改操作。操作完成后一定要记得恢复其约束关系。
2、 Sql语句虽然只有简单的可数的那些条,但是灵活应用后真的能做很多事情。很简洁很强大。学起来相对其他语言也简单的多。