数据库实验1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、用T-SQL语句,创建一用户自定义数据类型:名称为“char20”,数据类型为varchar,
长度为20,允许为空。
提示:sp_addtype[@typename=]用户自定义类型的名字
[,@phystype=]系统类型名
[,[@nulltype=]'not null|null'][,[@owner=]'拥有该类型的用户名']
例:自定义一个名为address的类型,其所属系统类型为varchar,长度为80,不能为空。
sp_addtype address,'varchar(80)','not null'
2、用T-SQL语句,建立一个“学生课程数据库”,在此基础上建立该数据库包含的
学生表,
课程表,学生选修表,并向各表插入如下相应的数据。
学生表:Student(Sno,Sname,Ssex,Sage,Sdept)其中Sno为主键、Ssex取值为男或女、Sage
在15到30之间:
Sno Sname Ssex Sage Sdept
95001李敏勇男20CS
95002刘晨女19IS
95003王敏女18MA
95004张立男18IS
课程表:Course(Cno,Cname,Cpno,Credeit,remarks)其中Cno为主键、Teacher的类型为
char20即为用户定义的数据类型;
Cno Cname Cpno Credit Teacher
1数据库54王芳
2数学NULL2黎明
3信息系统14刘新
4操作系统63赵高
5数据结构74宋明
6数据处理NULL2张彬
7Pascal语言64李磊
学生选修表:SC(Sno,Cno,Grade)其中Sno,Cno为主键同时又为外键、Grade值在0到100;
Sno Cno Grade
实验二数据的查询、更新刘双印、徐龙琴老师设计制作
95001192
95001285
95001388
95002290
95003255
95004270
3、用T-SQL语句,修改上面所建学生课程数据库中数据:
1)向学生表:Student中加入一条记录:(95030,谢非,男,22,CS)并保存
INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept)
VALUES('95030','谢非','男',22,'CS')
2)将李敏勇的数据库的成绩改为98分
UPDATE SC
SET Grade=98
WHERE SC.Sno IN
(SELECT SC.Sno FROM Student,SC
WHERE Student.Sno=SC.Sno AND Student.Sname='李敏勇'
)AND
o IN(SELECT o FROM SC,Course
WHERE o=o AND ame='数据库')
3)删除学生表Student中谢非的记录并保存
DELETE Student
WHERE Student.Sname='谢非'
4)能不能从Student表中删除李敏勇学生的记录,为什么?能不能删除王敏,张立两个
学生的记录?
不能,因为有约束条件存在。
4、用T-SQL语句,完成下面简单的查询
1)查询全体学生的学号、姓名及年龄.
SELECT Sno,Sname,Sage
FROM Student
2)查询全体学生的姓名,年龄及所在系(要用小写字母表示系名,并用“系名”来表示
列名)。
SELECT Sname,Sage,LOWER(Sdept)'系名'
FROM Student
3)查询选修了课程的学生学号
SELECT Sno
FROM SC
4)查询信息系全体学生的姓名
SELECT Sname
FROM Student
WHERE Sdept='IS'
5)查询所有年龄在20岁以下的学生姓名及其年龄SELECT Sname,Sage
FROM Student
WHERE Sage<20
6)查询年龄在20到18间的学生的姓名,系别及年龄SELECT Sname,Sdept,Sage
FROM Student
WHERE Sage BETWEEN18AND20
7)查询年龄不在23到19间的学生的姓名,系别及年龄SELECT Sname,Sdept,Sage
FROM Student
WHERE Sage<19OR Sage>23
8)查询不是信息系(IS)和计算机系(CS)学生的姓名和性别SELECT Sname,Ssex,Sdept
FROM Student
WHERE NOT Sdept='IS'AND NOT Sdept='CS'
9)查询所有姓刘的学生的姓名,学号和性别
SELECT Sname,Sno,Ssex
FROM Student
WHERE Sname LIKE'刘%'
10)查询姓“张”且名为一个汉字的学生的姓名SELECT Sname
FROM Student
WHERE Sname LIKE'张_'
11)查询名字中第2个字为”敏”字的学生姓名和学号SELECT Sname,Sno
FROM Student
WHERE Sname LIKE'_敏%'