数据库SQL语言实习.docx
《数据库SQL语言实习.docx》由会员分享,可在线阅读,更多相关《数据库SQL语言实习.docx(24页珍藏版)》请在冰豆网上搜索。
![数据库SQL语言实习.docx](https://file1.bdocx.com/fileroot1/2023-1/7/0e4f0676-defb-42a6-95dd-5caa8372c849/0e4f0676-defb-42a6-95dd-5caa8372c8491.gif)
数据库SQL语言实习
数据库上机实习报告
实验名称:
数据库和数据表操作实验
实验环境:
Win10+interi7-5500U2.4GHZ+内存4.0G
VMware虚拟WinXP系统Oracle11g+navicat
2016年11月13日
1.分别采用UI界面和SQL语言为University的Department表输入下列数据:
输入SQL语言代码为:
/*系的信息表Department(Dno,Dname,Daddress)*/
createtableDepartment(
Dnonumber(10),
Dnamevarchar2(50),
Daddressvarchar2(50),
primarykey(Dno)
);
insertintoDepartment(Dno,Dname,Daddress)values(1,'地球科学学院','主楼东');
insertintoDepartment(Dno,Dname,Daddress)values(2,'资源学院','主楼西');
insertintoDepartment(Dno,Dname,Daddress)values(3,'材化学院','材化楼');
insertintoDepartment(Dno,Dname,Daddress)values(4,'环境学院','文华楼');
insertintoDepartment(Dno,Dname,Daddress)values(5,'工程学院','水工楼');
insertintoDepartment(Dno,Dname,Daddress)values(6,'地球物理与空间信息学院','物探楼');
insertintoDepartment(Dno,Dname,Daddress)values(7,'机械与电子信息学院','教二楼');
insertintoDepartment(Dno,Dname,Daddress)values(8,'经济管理学院','经管楼');
insertintoDepartment(Dno,Dname,Daddress)values(9,'外语学院','北一楼');
insertintoDepartment(Dno,Dname)values(10,'信息工程学院');
insertintoDepartment(Dno,Dname,Daddress)values(11,'数学与物理学院','基委楼');
insertintoDepartment(Dno,Dname,Daddress)values(12,'珠宝学院','珠宝楼');
insertintoDepartment(Dno,Dname,Daddress)values(13,'政法学院','政法楼');
insertintoDepartment(Dno,Dname,Daddress)values(14,'计算机学院','北一楼');
insertintoDepartment(Dno,Dname)values(15,'远程与继续教育学院');
insertintoDepartment(Dno,Dname)values(16,'国际教育学院');
insertintoDepartment(Dno,Dname,Daddress)values(17,'体育部','体育馆');
insertintoDepartment(Dno,Dname,Daddress)values(18,'艺术与传媒学院','艺传楼');
insertintoDepartment(Dno,Dname,Daddress)values(19,'马克思主义学院','保卫楼');
insertintoDepartment(Dno,Dname,Daddress)values(20,'江城学院','江城校区');
运行结果为:
2.用SQL语言为University的Student表输入下列数据:
输入SQL语言代码为:
/*学生信息表Student(Sno,Sname,Ssex,Sage,Dno)*/
createtableStudent(
Snochar(11),
Snamevarchar2(50),
Ssexchar
(2),
Sagenumber(10),
Dnonumber(10),
primarykey(Sno),
foreignkey(Dno)referencesDepartment(Dno)
);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091000231','吕岩','M',18,14);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091004391','颜荣','M',19,14);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091001598','王海涛','M',20,14);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091003085','袁恒','M',18,14);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091000863','孟飞','M',17,14);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091000934','罗振俊','M',19,8);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091000961','曾雪君','F',18,8);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091000983','巴翔','M',19,8);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091001175','周雷','M',18,8);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091001261','马欢','M',17,8);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091001384','陈亮','M',20,8);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20081003492','易家新','M',19,5);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20081001197','李子聪','M',17,5);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20081001266','蔡景学','F',19,5);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20081001888','赵林云','F',20,5);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20091000481','姜北','M',17,5);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20101000199','孙中孝','M',18,11);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20101000424','杨光','M',17,11);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20101000481','张永强','M',16,11);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20101000619','陈博','M',20,11);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20101000705','汤文盼','M',18,11);
insertintoStudent(Sno,Sname,Ssex,Sage,Dno)values('20101000802','苏海恩','M',17,11);
运行结果为:
3.分别采用UI界面和SQL语言为University的Course表输入下列数据
输入SQL语言代码为:
/*课程信息表Course(Cno,Cname,Cpno,Ccredit)*/
createtableCourse(
Cnonumber(10)primarykey,
Cnamevarchar2(50),
Cpnonumber(10),
CCreditnumber(10),
foreignkey(Cpno)referencesCourse(Cno)
);
insertintoCourse(Cno,Cname,Ccredit)values(2,'高等数学',8);
insertintoCourse(Cno,Cname,Ccredit)values(6,'C语言程序设计',4);
insertintoCourse(Cno,Cname,Ccredit)values(7,'大学物理',8);
insertintoCourse(Cno,Cname,Ccredit)values(8,'大学化学',3);
insertintoCourse(Cno,Cname,Ccredit)values(10,'软件工程',2);
insertintoCourse(Cno,Cname,Ccredit)values(12,'美国简史',2);
insertintoCourse(Cno,Cname,Ccredit)values(13,'中国通史',6);
insertintoCourse(Cno,Cname,Ccredit)values(14,'大学语文',3);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(5,'数据结构',6,4);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(4,'操作系统',5,4);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(1,'数据库原理',5,4);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(3,'信息系统',1,2);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(9,'汇编语言',6,2);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(11,'空间数据库',1,3
运行结果为:
4.分别采用UI界面和SQL语言为University的Teacher表输入下列数据:
输入SQL语言代码为:
/*课程信息表Course(Cno,Cname,Cpno,Ccredit)*/
createtableCourse(
Cnonumber(10)primarykey,
Cnamevarchar2(50),
Cpnonumber(10),
CCreditnumber(10),
foreignkey(Cpno)referencesCourse(Cno)
);
insertintoCourse(Cno,Cname,Ccredit)values(2,'高等数学',8);
insertintoCourse(Cno,Cname,Ccredit)values(6,'C语言程序设计',4);
insertintoCourse(Cno,Cname,Ccredit)values(7,'大学物理',8);
insertintoCourse(Cno,Cname,Ccredit)values(8,'大学化学',3);
insertintoCourse(Cno,Cname,Ccredit)values(10,'软件工程',2);
insertintoCourse(Cno,Cname,Ccredit)values(12,'美国简史',2);
insertintoCourse(Cno,Cname,Ccredit)values(13,'中国通史',6);
insertintoCourse(Cno,Cname,Ccredit)values(14,'大学语文',3);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(5,'数据结构',6,4);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(4,'操作系统',5,4);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(1,'数据库原理',5,4);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(3,'信息系统',1,2);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(9,'汇编语言',6,2);
insertintoCourse(Cno,Cname,Cpno,Ccredit)values(11,'空间数据库',1,3);
运行结果为:
5.分别采用UI界面和SQL语言为University的SC表输入下列数据:
输入SQL语言代码为:
createtableSC(
Snochar(11),
Cnonumber(10),
Gradenumber(10),
primarykey(Sno,Cno),
foreignkey(Sno)referencesStudent(Sno),
foreignkey(Cno)referencesCourse(Cno)
);
insertintoSCvalues('20091003085',1,90);
insertintoSCvalues('20091000863',1,98);
insertintoSCvalues('20091000934',1,89);
insertintoSCvalues('20091000961',1,85);
insertintoSCvalues('20081001197',1,79);
insertintoSCvalues('20081001266',1,97);
insertintoSCvalues('20081001888',1,60);
insertintoSCvalues('20091000481',1,78);
insertintoSCvalues('20101000199',1,65);
insertintoSCvalues('20101000424',1,78);
insertintoSCvalues('20101000481',1,69);
insertintoSCvalues('20091000863',6,90);
insertintoSCvalues('20091000934',6,90);
insertintoSCvalues('20091000961',6,87);
运行结果为:
6.分别采用UI界面和SQL语言为University的TC表输入下列数据
输入SQL语言代码为:
/*教师授课表TC(Tno,Cno,Site)*/
createtableTC(
Tnonumber(10),
Cnonumber(10),
Sitevarchar2(50),
primarykey(Tno,Cno),
foreignkey(Tno)referencesTeacher(Tno),
foreignkey(Cno)referencesCourse(Cno)
);
insertintoTCvalues(1,1,'教一楼407')
insertintoTCvalues(1,6,'教一楼307');
insertintoTCvalues(2,10,'教二楼217');
insertintoTCvalues(3,2,'教三楼507');
insertintoTCvalues(4,5,'教三楼208');
insertintoTCvalues(6,3,'综合楼207');
insertintoTCvalues(7,4,'教二楼817');
insertintoTCvalues(5,9,'教一楼207');
运行结果为:
7.采用SQL语言查询所有的学生信息;
输入SQL语言代码为:
SELECT*
FROMSTUDENT;
结果为:
8.采用SQL语言查询所有女生的姓名
输入SQL语言代码为:
SELECTSNAME
FROMSTUDENT
WHERESSEX='F';
运行结果为:
9.采用SQL语言查询各个院系学生人数;
输入SQL语言代码为:
SELECTDNO,"COUNT"(SNO)AllNumber
FROMSTUDENT
GROUPBYDNO;
输出结果为:
10.采用SQL语言查询各个院系老师人数;
输入SQL语言代码为:
SELECTDNO,"COUNT"(TNO)AllNumber
FROMTEACHER
GROUPBYDNO;
输出结果为:
11.采用SQL语言查询所有选修了数据库原理并且成绩在60-100分之间的学生的姓名和成绩,并按照成绩的降序排列;
输入SQL语言代码为:
SELECTSTUDENT.SNAME,SC.GRADE
FROMSTUDENT,SC
WHERESC.SNO=STUDENT.SNOAND
SC.GRADEBETWEEN60AND100
ANDCNOIN(
SELECTCNO
FROMCOURSE
WHERECNAME='数据库原理'
)
ORDERBYSC.GRADEDESC;
运行结果为:
12.采用SQL语言编写一个连接查询:
查询经济管理学院年龄在20岁以下的男生的姓名和年龄
输入SQL语言代码为:
SELECTSNAME,SAGE
FROMSTUDENT,DEPARTMENT
WHEREDEPARTMENT.DNAME='经济管理学院'
ANDDEPARTMENT.DNO=STUDENT.DNO
ANDSAGE<20ANDSSEX='M'
输出结果:
13.采用SQL语言编写一个嵌套查询:
查询选修课程总学分在5个学分以上的学生的姓名。
输入SQL语言代码为:
SELECTSNO,SNAME
FROMSTUDENT
WHERESNOIN(
SELECTSNO
FROMSC
WHERE(
SELECTSUM(CCREDIT)
FROMSC,COURSE
WHERESC.CNO=COURSE.CNO
ANDSTUDENT.SNO=SC.SNO)>5
);
运行结果为:
14.采用SQL语言编写一个嵌套查询:
查询各门课程的最高成绩的学生姓名和及其成绩
输入SQL语言代码为:
SELECTA2.CNO,STUDENT.SNAME,
A2.GRADE
FROMSTUDENT,SCA2
WHEREA2.SNO=STUDENT.SNOAND
A2.GRADEIN(
SELECTMAX(A1.GRADE)
FROMSCA1
GROUPBYA1.CNO
HAVINGA2.CNO=A1.CNO);
运行结果为:
15.采用SQL语言查询所有选修了何小峰老师开设课程的学生姓名及其所在的院系名称。
输入SQL语言代码为:
SELECTDISTINCTSNAME,DNAME
FROMTC,TEACHER,SC,STUDENT,DEPARTMENT
WHERETNAME='何小峰'ANDTEACHER.TNO=TC.TNO
ANDTC.CNO=SC.CNOANDSC.SNO=STUDENT.SNO
ANDSTUDENT.DNO=DEPARTMENT.DNO;
运行结果为:
16.采用SQL语言,在数据库中删除学号为20091003085的学生的所有信息(包括其选课记录)。
输入SQL语言代码为:
ALTERTABLESTUDENT
DISABLEPRIMARYKEYCASCADE;
ALTERTABLESC
DISABLEPRIMARYKEYCASCADE;
DELETE
FROMSTUDENT
WHERESTUDENT.SNO='20091003085';
DELETE
FROMSC
WHERESC.SNO='20091003085';
ALTERTABLESTUDENT
ENABLEPRIMARYKEY;
ALTERTABLESC
ENABLEPRIMARYKEY;
运行结果为:
17.采用SQL语言,将学号为20091000863的学生的数据库原理这门课的成绩修改为