数据库实验报告Word文档下载推荐.docx
- 文档编号:20582379
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:22
- 大小:23.18KB
数据库实验报告Word文档下载推荐.docx
《数据库实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库实验报告Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
95003
王敏
18
MA
95004
张立
课程COURSE:
Cno
Cname
Cpno
Ccredit
数据库
5
4
数学
3
信息系统
操作系统
6
数据结构
7
数据处理
C语言
选修SC:
Grade
92
85
88
90
80
2.创建供应系统“GYXT”数据库,其中包括供应商表
S、零件表
P、工程项目表J
和供应情况表
SPJ四个数据表,各表中数据如下所示。
供应商S:
SNO
SNAME
CITY
S1
精益
天津
S2
万胜
北京
S3
东方
S4
丰泰隆
上海
S5
康健
南京
零件P:
PNO
PNAME
COLOR
WEIGHT
P1
螺母
红
P2
螺栓
绿
17
P3
螺丝刀
蓝
P4
P5
凸轮
40
P6
齿轮
30
工程项目J:
JNO
JNAME
J1
三建
J2
一汽
长春
J3
弹簧厂
J4
造船厂
J5
机车厂
唐山
J6
无线电厂
常州
J7
半导体厂
供应情况SPJ:
QTY
200
100
700
400
500
300
实验步骤:
1.创建教学管理“JXGL”数据库。
(注:
可采用可视窗体和SQL命令两种方法创建。
以下是SQL命令方法)
(1)创建教学管理“JXGL”数据库。
在命令窗格中输入如下命令,然后单击“运行”钮执行该命令。
CREATEDATABASEJXGL;
(2)清空命令窗格后,在JXGL数据库中建立STUDENT表,并插入记录,然后执行。
CREATETABLESTUDENT
(Snochar(5)notnullunique,
Snamechar(20)notnullunique,
Ssexchar
(1),
Sageint,
Sdeptchar(20));
INSERTINTOSTUDENTVALUES(,95001?
?
李勇?
M?
20,?
CS?
);
INSERTINTOSTUDENTVALUES(,95002?
刘晨?
F?
19,?
IS?
INSERTINTOSTUDENTVALUES(,95003?
王敏?
18,?
MA?
INSERTINTOSTUDENTVALUES(,95004?
张立?
(3)清空查询窗格后,JXGL数据库中建立COURSE表,并插入记录,然后执行。
CREATETABLECOURSE
(Cnochar
(2)notnullPRIMARYKEY(Cno),
Cnamechar(20),
Cpnochar
(2),
Ccreditsmallint);
INSERTINTOCOURSEVALUES(,1?
数据库?
5?
4);
INSERTINTOCOURSEVALUES(,2?
数学?
?
2);
INSERTINTOCOURSEVALUES(,3?
信息系统?
1?
INSERTINTOCOURSEVALUES(,4?
操作系统?
6?
3);
INSERTINTOCOURSEVALUES(,5?
数据结构?
7?
INSERTINTOCOURSEVALUES(,6?
数据处理?
INSERTINTOCOURSEVALUES(,7?
C语言?
(4)清空查询窗格后,JXGL数据库中建立SC表,并插入记录,然后执行。
CREATETABLESC
(Snochar(5)notnull,
Cnochar
(2)notnull,
Gradesmallint,
PRIMARYKEY(Sno,Cno),
FOREIGNKEY(Sno)REFERENCESSTUDENT(Sno),
FOREIGNKEY(Cno)REFERENCESCOURSE(Cno));
INSERTINTOSCVALUES(,95001?
,1?
92);
,2?
85);
,3?
88);
INSERTINTOSCVALUES(,95002?
90);
80);
(5)查看三个表中的内容。
分别执行以下命令,查看STUDENT、COURSE和SC数据表中的内容。
SELECT*FROMSTUDENT;
SELECT*FROMCOURSE;
SELECT*FROMSC;
(6)ALTERTABLE、DROPTABLE、DROPDATABASE命令运用。
①向STUDENT表增加“入学时间”列,其数据类型为日期型,用SELECT命令查看表中内容。
ALTERTABLESTUDENTADDSCOMEDATETIME;
SELECT*FROMSTUDENT;
②删除“入学时间”列,再用SELECT命令查看表中内容。
ALTERTABLESTUDENTDROPCOLUMNSCOME;
③删除数据表。
DROPTABLESC;
DROPTABLESTUDENT;
DROPTABLECOURSE;
④删除数据库命令。
切换到其他任意数据库,然后可用如下命令删除JXGL数据库。
DROPDATABASEJXGL;
重复
(1)~(4)过程,建立数据库备以后的查询使用。
2.创建供应系统“GYXT”数据库。
)
下面写出实现如下操作的SQL语句:
(1)创建供应系统“GYXT”数据库。
CREATEDATABASEGYXT;
(2)建立供应商表S。
CREATETABLES
(SNOchar(6),
SNAMEchar(8),
SCITYchar(20));
INSERTINTOSVALUES('
S1'
'
精益'
天津'
S2'
万胜'
北京'
S3'
东方'
S4'
丰泰隆'
上海'
S5'
康健'
南京'
(3)建立零件表P。
CREATETABLEP
(PNOchar(6),
PNAMEchar(8),
COLORchar(8),
WEIGHTINT);
INSERTINTOPVALUES('
P1'
螺母'
红'
12'
P2'
螺栓'
绿'
17'
P3'
螺丝刀'
蓝'
14'
P4'
P5'
凸轮'
40'
P6'
齿轮'
30'
(4)建立工程项目表J。
CREATETABLEJ
(JNOCHAR(8),
JNAMECHAR(8),
CITYCHAR(20));
INSERTINTOJVALUES('
J1'
三建'
J2'
一汽'
长春'
J3'
弹簧厂'
J4'
造船厂'
J5'
机车厂'
唐山'
J6'
无线电厂'
常州'
J7'
半导体厂'
(5)建立供应情况表SPJ。
CREATETABLESPJ
(SNOCHAR(6),
PNOCHAR(6),
JNOCHAR(6),
QTYINT);
INSERTINTOSPJVALUES('
200'
100'
700'
400'
500'
300'
(6)应用INSERTINTO命令将相应数据写入到供应商表S、零件表P、工程项目表J
和供应情况表SPJ四个数据表。
实验2简单查询和连接查询
1.熟练掌握SQLServer查询分析器的使用方法,加深对标准SQL查询语句的理解。
2.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
1.基于实验一创建的教学管理JXGL数据库,实现数据的基本查询操作。
2.基于实验一创建的供应系统GYXT数据库,实现数据的基本查询操作。
写出下列操作的SQL语句。
1.在教学管理JXGL数据库中进行如下操作:
(1)求数学系学生的学号和姓名。
SELECTSno,Sname
FROMSTUDENT
WHERESdept='
MA'
(2)求选修了课程的学生学号。
SELECTDISTINCTSno
FROMSC
(3)求选修了数学课的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
SELECTSno,Grade
WHERE(Cno='
2'
)
ORDERBYGradeDESC,SnoASC
(4)求选修数学课其且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数0.8输出。
SElECTSno,Grade*0.8As乘分后
WHEREGrade>
=80andGrade<
=90andCno='
(5)求数学系或计算机系姓刘的学生的信息。
SELECT*
FROMSTUDENT
WHERE(Sdept='
MS'
ORSdept='
IS'
)ANDSnameLIKE'
刘%'
8
(6)求缺少了成绩的学生的学号和课程号。
SELECTSno,Cno
WHEREGradeISNULL
(7)查询每个学生的情况以及他(她)所选修的课程。
FROMSTUDENT,SC
WHERESTUDENT.Sno=SC.Sno
8)求学生的学号、姓名、选修的课程名及成绩。
SELECTSTUDENT.Sno,Sname,Cname,Grade
FROMSTUDENT,SC,COURSE
WHERESTUDENT.Sno=SC.SnoandCOURSE.Cno=SC.Cno
(9)求选修数学课且成绩为90分以上的学生学号、姓名、及成绩。
SELECTSTUDENT.Sno,Sname,Grade
WHERESTUDENT.Sno=SC.SnoandCOURSE.Cno=SC.CnoandSC.Cno='
andGrade>
=90
(10)查询每一门课的间接先行课(即先行课的先行课)。
SELECTa.Cno,b.Cpno
FROMCOURSEa,COURSEb
WHEREa.Cpno=b.Cno
2.在供应系统GYXT数据库中进行如下操作:
(1)求供应工程J1零件的供应商号SNO。
SELECTDISTINCTSNO
FROMSPJ
WHEREJNO='
(2)求供应工程J1零件P1的供应商号SNO。
SELECTSNO
ANDPNO='
(3)统计每种零件的供应总量。
SELECTJNO,SUM(QTY)AS每种零件的供应总量FROMSPJ
GROUPBYJNO
9
实验3嵌套查询和集合查询
2.熟练掌握数据查询中的嵌套、分组、统计、计算和组合的操作方法。
1.基于实验一创建的教学管理JXGL数据库,实现数据的高级查询操作。
(1)求选修了数学的学生的学号和姓名。
SELECTSno,Sname
WHERESnoIN(SELECTSnoFROMSCWHERECnoIN(SELECTCnoFROMCOURSEWHERECname='
数学'
))
(2)求数学课程成绩高于李勇的学生学号和成绩。
SELECTSTUDENT.Sno,Grade
WHERECOURSE.Cno=SC.CnoANDSC.Sno=STUDENT.SnoANDCOURSE.Cname='
ANDSC.Grade>
(SELECTGrade
ANDSTUDENT.Sname='
李勇'
(3)求其他系中年龄小于计算机系年龄最大者的学生。
WHERESage>
ALL(SELECTSageFROMSTUDENTWHERESdept='
CS'
ANDSdept<
>
'
(4)求其他系中比计算机系学生年龄都小的学生。
WHERESage<
ANY(SELECTSageFROMSTUDENTWHERESDEPT='
ANDSDEPT<
(5)求选修了数学课的学生姓名。
SELECTSname
WHEREEXISTS(SELECT*
FROMSCWHERESTUDENT.Sno=SC.SnoANDCno='
(6)求没有选修数学课的学生姓名。
WHERE(NOTEXISTS(SELECT*FROMSCWHERESTUDENT.Sno=SC.SnoANDCno='
(7)查询选修了全部课程的学生的姓名。
WHERENOTEXISTS
(SELECT*FROMCOURSEWHERENOTEXISTS
(SELECT*FROMSCWHERESTUDENT.Sno=SC.SnoANDCOURSE.Cno=SC.Cno))
(8)求至少选修了学号为“95002”的学生所选修的全部课程的学生学号和姓名。
WHERE(EXISTS
(SELECT*
WHERESno=STUDENT.SnoANDCnoIN
(SELECTCno
WHERESno='
95002'
)))
(9)求选修各门课的人数及平均成绩。
SELECTCOUNT(*)AS人数,AVG(Grade)AS平均成绩FROMSC
GROUPBYCno
(10)求选修课程在2门以上且都及格的学生号及总平均分。
SELECTSno,AVG(GRADE)AS总平均分
GROUPBYSno
11
HAVINGCOUNT(Cno)>
=2ANDMIN(GRADE)>
=60
(11)求95级学生中选修课程在2门以上且都及格的学生号及总平均分,并按平均成绩排序。
SELECTSno,AVG(Grade)AS总平均分
FromSC
WHEREEXISTS
WHERESno=STUDENT.SnoANDCno<
60))
HAVING(COUNT(*)>
=2)
(12)统计每个人及格的成绩的平均值,及格的门数,结果按平均成绩降序,及格门数降序排列。
SELECTSno,COUNT(*)AS及格门数,AVG(Grade)AS平均成绩
=60
ORDERBY平均成绩DESC,及格门数DESC
(13)统计所有课程均及格学生的平均成绩,及格的门数,结果按平均成绩降序,及格门数降序排列。
SELECTSno,CO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告