数据库实验实验五Word下载.docx
《数据库实验实验五Word下载.docx》由会员分享,可在线阅读,更多相关《数据库实验实验五Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
)
createtableteacher103--老师
Tnochar(3)notnullprimarykey,--教工编号(主码)
Tnamenchar(4)notnull,--教工姓名
Tsexnchar
(1)notnull,--教工性别
Tbirthdaydate,--教工出生年月
Profnchar(3),--职称
Departnchar(5)notnull--教工所在部门
createtableCourse103--课程
Cnochar(5)notnullprimarykey,--课程号
CnameNvarchar(25)notnull,--课程名称
Tnochar(3)notnullreferencesteacher103(Tno)--教工编号(外码)
createtableScore103--分数
Snochar(3)notnullreferencesstudent103(Sno),--学号(外码)
Cnochar(5)notnullreferencesCourse103(Cno),--课程号(外码)
primarykey(Sno,Cno),
DegreeDecimal(4,1)--成绩
表中数据如下,请插入相应的数据表中:
(问题如果数据更多,除了用insert语句外,有没有其他更快的方法?
可以使用表格导入数据
表
(一)Student103
Sno
Sname
Ssex
Sbirthday
class
108
曾华庆
男
1999-09-01
95033
105
匡明强
1998-10-02
95031
107
王丽娜
女
1996-01-23
101
李君帅
1996-02-20
109
王芳芳
1995-03-10
103
陆君茹
1994-04-03
104
陈文文
1994-08-13
95032
106
李丽丽
1996-11-13
BULKINSERTStudent103
FROM'
H:
\大二下\DB\s.txt'
with
(FIRSTROW=2)
表
(二)Course103
Cno
Cname
Tno
3-105
计算机导论
825
3-245
操作系统
804
3-235
数据结构
3-236
离散数学
831
6-166
数字电路
856
9-888
高等数学
9-886
[数学100%技巧
4-123
毛泽东思想和中国特色社会主义理论体系概论]
811
4-101
[马克思主义基本原理]概论
BULKINSERTCourse103
\大二下\DB\c.txt'
表(三)Score103
Degree
86
75
68
92
88
76
64
91
78
85
79
81
77
98
87
NULL
注:
null怎么导入
最后含有null的记录可以用:
insertScore103(Sno,Cno)values('
103'
'
6-166'
)或者直接编辑插入
表(四)Teacher103
Tname
Tsex
Tbirthday
Prof
Depart
李诚
1958-12-02
副教授
计算机系
张旭
1969-03-12
讲师
电子工程系
王萍
1972-05-05
助教
828
1976-11-13
刘冰
1977-08-14
李强栋
1977-09-24
社科系
BULKINSERTTeacher103
\大二下\DB\t.txt'
(FIRSTROW=2)
select*fromTeacher103
六、验证性实验
以下查询要求在逐个语句执行,执行后将执行结果记录下来:
1.无条件查询全部数据
USESTUDENT
SELECT*FROMSTUDENT103
2.在SELECT关键字后指明要检索的列名
(1)查询学生表的学生学号和姓名
SELECTSNO,SNAMEFROMSTUDEN103
(2)查询STUDENT表中的班级名
SELECTclassFROMSTUDENT103
(3)查询S表中不重复的班级
SELECTDISTINCTclassFROMSTUDENT103
3.改变列标题的检索
(1)使用空格形式:
列名新标题
SELECTSNO学号,SNAME姓名FROMSTUDENT103
(2)使用“AS”形式,列名AS新标题
SELECTSNOAS'
学号'
SNAMEAS'
姓名'
FROMSTUDENT103
(3)使用“AS”形式,列名AS新标题
学号'
姓名'
(4)使用“AS”形式,列名AS新标题
SELECT'
=SNO,'
=SNAMEFROMSTUDENT103
4.有条件选择的查询
在S表检索“95033”的学生信息
SELECT*FROMSTUDENT103WHERECLASS='
95033'
(1)在S表中检索姓“王”的学生信息
WHEREsnamelike'
王%'
(2)在SC表检索’3-105’选修课成绩为空的选课记录
SELECTSNO,CNOFROMSCORE103
WHEREcno='
3-105'
andDegreeisnull
(3)检索年龄为21,25,22的学生学号、姓名
SELECTSNO,SNAMEFROMSTUDENT103
WHEREYEAR(GETDATE())-YEAR([Sbirthday])IN(21,25,22)
5.多表查询
查询所有人的学号,姓名,课程号,课程名,成绩
Selects.snosname,o,cname,DegreefromSTUDENT103sjoinSCORE103sc
Ons.sno=sc.snojoincourse103cono=o
注意:
表的别名
6.对检索结果进行排序
SELECT*FROMSCORE103
WHEREDegreeISnotNULL
ORDERBYSNO,CNODESC
七、设计性实验
(1).实验要求
1、查询Student表中95031班的所有记录的sno,Sname和Ssex列。
selectSno,Sname,Ssexfromstudent103whereclass='
95031'
2、查询教师所有的单位即不重复的Depart列。
selectDISTINCTDepartfromteacher103
3、查询Score表中成绩在60到80之间的所有记录。
select*fromScore103wheredegree>
=60anddegree<
=80
4、查询Score表中成绩为85,86或88的记录。
select*fromScore103wheredegree=85ordegree=86ordegree=88
5、查询Student表中“95031”班或性别为“女”的同学记录。
select*fromstudent103whereclass='
orSsex='
女'
6、以Cno升序、Degree降序查询Score表的所有记录。
select*fromScore103ORDERbyCno,Degreedesc
7、查询课程名中的第15个字符是‘理’课程信息。
select*fromCourse103wherecnamelike'
______________理%'
8、查询Student表中不姓“王”且姓名第二字为‘君’的同学记录。
select*fromStudent103wherenotSnamelike'
andSnamelike'
_君%'
9、查询Student表中每个学生的姓名和年龄。
selectSname,year(getdate())-year(Sbirthday)agefromstudent103
10、查询Student表中最大和最小的Sbirthday日期值。
selecttop1SbirthdayfromStudent103orderbySbirthday
selecttop1SbirthdayfromStudent103orderbySbirthdaydesc
11、以班号和年龄从大到小的顺序查询Student表中的全部记录。
select*,year(getdate())-year(Sbirthday)agefromstudent103orderbyclass,age
12.查询Student表本月过生日同学的信息,包括学号,姓名,课程号,课程名,任课教师和成绩。
Selects.sno,s.sname,o,cname,t.Tname,DegreefromSTUDENT103sjoinSCORE103sc
Ons.sno=sc.snojoincourse103cono=ojointeacher103tont.Tno=c.Tnowheremonth(getdate())-month(Sbirthday)=0
13.查询选修课程名中含有%的信息,包括学号,姓名,课程号,课程名和成绩。
Selects.sno,s.sname,o,cname,DegreefromSTUDENT103sjoinSCORE103sc
Ons.sno=sc.snojoincourse103cono=owhereCnamelike'
%[%]%'
14.查询选修课程名中含有’[‘或’]’的信息,包括学号,姓名,课程号,课程名和成绩。
%或%'
15.查询选修课程名中含有’[‘和’]’的课程信息,包括学号,姓名,课程号,课程名和成绩。
%和%'
16.查询所有学生信息,包括学号,姓名,课程号,课程名,任课教师和成绩(包括没上课的学生,没有选修的课程以及没上课的教师)。
Selects.sno,s.sname,o,cname,t.Tname,DegreefromSTUDENT103sfulljoinSCORE103sc
Ons.sno=sc.snofulljoincourse103cono=ofulljointeacher103tont.Tno=c.Tno
五、实验小结(实验中遇到的问题及解决过程、实验中产生的错误及原因分析、实验体会和收获)
1、导入的时候要注意编码。
2、查询的时候需要掌握一些匹配规则,特别是中文,或者特殊符号。
3、插入NULL值可以右键编辑插入或者是用插入命令直插入有值得部分。