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语句虽然只有简单的可数的那些条,但是灵活应用后真的能做很多事情。很简洁很强大。学起来相对其他语言也简单的多。