第一篇:数据库实验5报告
广东工业大学实验报告
自动化学院 学院
网络工程 专业 班
学号 3111001381 姓名
何宇航
成绩评定_______ 教师签名 黄永慧 实验
题目
数据查询和连接查询
课程名称
数据库原理及应用实验
一.实验目的
使学生熟练掌握简单表的数据查询、数据连接查询以及数据排序的操作方法,并加深对Transact-SQL语言的查询语句的理解。
二.实验软件环境
SQL Server 2000 三.实验内容
(一)实验要求:
使用SQL Server 2000查询分析器,并用SELECT语句及WHERE查询条件进行简单查询及连接查询实验,其次使用ORDER BY排序子句实现输出结果的排序。主要内容包括:
1)简单查询操作 包括投影、选择条件、数据排序等。
2)连接查询操作 包括等值连接、自然连接、外连接、内连接、左连接和右连接等。(二)要求完成以下查询要求:
1)将计算机类的书存入永久计算机图书表。
2)将借书日期在05年以前的借阅记录存入临时超期借阅表。3)查询发生了借阅关系的借书证号,并按借书证号降序排列。4)查询“清华大学出版社”出版的图书情况。
5)查询目前被借出去的书籍的书号、借书证号以及借出日期,并按借出日期排序。6)查询“程军”老师所借阅的书籍的书名。
7)查询借书者的编号、姓名、单位、所借书号、书名和借阅日期,并按读者编号排序。
四.实验的结果及分析
1)将计算机类的书存入永久计算机图书表 CREATE TABLE Computer_Book(bno
char(8)NOT NULL PRIMARY KEY,category
varchar(10),title
varchar(40)NOT NULL,press
varchar(30)NOT NULL,book_year
Int NOT NULL,author
varchar(20),price
decimal(7,2)NOT NULL,book_total Int NOT NULL)
INSERT INTO Computer_Book SELECT *FROM Book WHERE category='计算机'
广东工业大学实验报告
自动化学院 学院
网络工程 专业 班
学号 3111001381 姓名
何宇航
成绩评定_______ 教师签名 黄永慧 实验
题目
数据查询和连接查询
课程名称
数据库原理及应用实验
2)将借书日期在05年以前的借阅记录存入临时超期借阅表。CREATE TABLE Overdue_Borrow(cno
char(7)NOT NULL FOREIGN KEY(CNO)REFERENCES Card(cno),bno
char(8)NOT NULL FOREIGN KEY(BNO)REFERENCES Book(bno),borrow_date smalldaetime NOT NULL DEFAULT GETDATE(),CONSTRAINT CBB_PRIM PRIMARY KEY(cno,bno,borrow_date))INSERTINTO Overdue_Borrow SELECT *Borrow WHERE YEAR(borrow_date)<2005
3)查询发生了借阅关系的借书证号,并按借书证号降序排列。SELECT DISTINCT cno FROM Borrow ORDER BY cno DESC 4)查询“清华大学出版社”出版的图书情况。SELECT *FROM Book WHERE press='清华大学出版社'
5)查询目前被借出去的书籍的书号、借书证号以及借出日期,并按借出日期排序。SELECT bno,cno,borrow_date FROM Borrow WHERE return_date IS NULL ORDER BY borrow_date
6)查询“程军”老师所借阅的书籍的书名。SELECT title FROM Book,Card,Borrow WHERE(Card.cno=Borrow.cno)and(Borrow.bno=Book.bno)and(name='程军')
7)查询借书者的编号、姓名、单位、所借书号、书名和借阅日期,并按读者编号排序。SELECT Borrow.cno,name,department,Borrow.bno,title,borrow_date FROM Borrow,Card,Book WHERE(Card.cno=Borrow.cno)and(Borrow.bno=Book.bno)ORDER Borrow.cno
五.实验心得体会
通过本实验基本学会如何进行简单表的数据查询、数据联接查询以及数据排序,并加深对SQL和Transact-SQL语言的查询语句的理解,这比光看书跟容易理解,能够跟好的掌握书本上的知识。
第二篇:数据库实验
实验1.1 使用SQL Server工具(Microsoft SQL Server Management Studio Express)管理数据库 实验内容:
(1)使用SSMS(SQL Server Management Studio)加入实验数据库。(2)使用SSMS可视化建立、修改和删除数据库、表。(3)使用SSMS对数据库进行备份和恢复。
(4)使用SSMS对表进行查询、插入、修改、删除。实验步骤:
(1)加入School数据库。(2)建立Test数据库。
(3)在数据库中建立人员表PERSON(P#,Pname,Page)。更改表设置P#为主键,增加属性Ptype(类型是CHAR,长度是10)。
(4)用SSMS的查询功能(新建查询)对PERSON表进行查询、插入、修改、删除等操作:首先插入两条记录;修改第二条记录;删除第二条记录。(5)备份Test数据库。(6)删除表PERSON。(7)恢复Test数据库。(8)删除Test数据库。
第三篇:数据库实验
3.实验步骤
在学生选课数据库中实现其查询操作,写出T-SQL语句(注:学生选课数据库为前三次实验课所建立的数
据库)
一、简单查询实验
(1)查询选修了课程的学生学号。
(2)查询选修课程号为0101的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按
学号升序排列。
(3)查询选修课程号为0101的成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。
二、连接查询实验
(1)查询每个学生的情况以及他(她)所选修的课程。
(2)查询选修离散散学课程且成绩为90分以上的学生学号、姓名及成绩。
(3)查询每一门课的间接先行课(即先行课的先行课)
三、嵌套查询操作
(1)查询0101课程的成绩高于张林的学生学号和成绩。
(2)查询其他系中年龄小于计算机系年龄最大者的学生。
(3)查询同王洪敏“数据库原理”课程分数相同的学生的学号。
(4)查询选修了全部课程的学生的姓名。
(5)查询与学号为09001103的学生所选修的全部课程相同的学生学号和姓名。
(6)查询至少选修了学号为09001103的学生所选修的全部课程的学生学号和姓名。
四、组合查询和分组查询
(1)查找选修“计算机基础”课程的学生成绩比此课程的平均成绩大的学生学号、成绩。
(2)查询年龄大于女同学平均年龄的男同学姓名和年龄。
(3)列出各系学生的总人数,并按人数进行降序排列。
(5)查询选修计算机基础和离散数学的学生学号和平均成绩。
4、要求
请按题号依次作答,完成在word文档中,写明班级学号姓名,于周日之于周日之前发至xcf7@163.com,独立完成,严禁抄
第四篇:数据库实验2报告
《数据库系统原理实验报告》
姓名:疏颖 学号:22920152203909 完成日期:2018年4月6日
实验环境:SQLServer2008 实验2.1数据查询 实验要求:
以School数据库为例,在该数据库中存在四张表格,分别为:
表STUDENTS(sid, sname, email, grade); 表TEACHERS(tid, tname, email, salary); 表COURSES(cid, cname, hour); 表CHOICES(no, sid, tid, cid, score)在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。在表CHOICES中保存学生的选课记录。
按以下要求对数据库进行查询操作: 实验步骤:
(1)查询年级为2001的所有学生的名称并按编号升序排列。
(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积点(60分对应积点为1,每增加1分,积点增加0.1)。
(3)查询课时是48或64的课程的名称。
(4)查询所有课程名称中含有data的课程编号。
(5)查询所有选课记录的课程号(不重复显示)。
(6)统计所有教师的平均工资。
(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序
排列。
(8)统计各个课程的选课人数和平均成绩。
(9)查询至少选修了三门课程的学生编号。
(10)查询编号800009026的学生所选的全部课程的课程名和成绩。
(11)查询所有选修了database的学生的编号。
(12)求出选择了同一个课程的学生数。
(13)求出至少被两名学生选修的课程编号。
(14)查询选修了编号80009026的学生所选的某个课程的学生编号。
(15)查询学生的基本信息及选修课程编号和成绩。
(16)查询学号850955252的学生的姓名和选修的课程名及成绩。
(17)查询与学号850955252的学生同年级的所有学生资料。
(18)查询所有有选课的学生的详细信息。
(19)查询没有学生选的课程的编号。
(20)查询课程名为C++的课时一样课程名称。
(21)找出选修课程成绩最好的选课记录。
(22)找出和课程UML或课程C++的课时一样课程名称。
(23)查询所有选修编号10001的课程的学生的姓名。
(24)查询选修了所有课程的学生姓名。
(25)利用集合运算,查询选修课程C++或选修课程Java的学生的编号。
(26)实现集合交运算,查询既选修课程C++又选修课程Java的学生的编号。
(27)实现集合减运算,查询选修课程C++而没有选修课程Java的学生的编号。
实验2.2空值和空集的处理
1.实验步骤:
(1)查询所有选课记录的成绩并将它换算为五分制(满分5分,合格3分),注意SCORE取NULL值的情况。
(2)通过查询选修编号10028的课程的学生的人数,其中成绩合格的学生人数,不合格的学生人数,讨论NULL值的特殊含义。
取null值的数据在含有运算操作的选择语句中不被选择。
(3)通过实验检验在使用ORDER BY进行排序时,取NULL的项是否出现在结果中?如果有,在什么位置?
取null值的数据会出出现在结果中,按最小值进行排序
(4)在上面的查询过程中如果加上保留字DISTINCT会有什么效果?
所有的null值选项只会出现一行。
(5)通过实验说明使用分组GROUP BY对取值为NULL的项的处理。
(6)结合分组,使用集合函数求每个同学的平均分、总的选课侸、最高成绩、最低成绩和总成绩。
(7)查询成绩小于60的选课记录,统计总数、平均分、最大值和最小值。
(8)采用嵌套查询的方式,利用比较运算符和谓词ALL的结合来查询表COURSES中最少的课时。假设数据库中只有一个记录的时候,使用前面的方法会得到什么结果,为什么?
(9)创建一个学生表S(NO,SID,SNAME),教师表T(NO,TID,TNAME)作为实验用的表。其中NO分别是这两个表的主键,其他键允许为空。向S插入元组(1,0129871001,王小明)、(2,0129871002,李兰)、(3,0129871005,NULL)、(4,0129871004,关红); 向T插入元组1,100189,王小明)(2,、100180,李小)(3,、100121,NULL)、(4,100128,NULL)。
对这两个表作对姓名的等值连接运算,找出既是老师又是学生的人员的学生编号和老师编号。
实验总结:
本次实验主要考察的是查询语句,相比于上次的实验,这次难度有所增加,涉及到了嵌套查询等查询方法,having语句和where语句用的最多,有时会混乱,还需要多加练习。实验二中对于取null值的选项的关注也让我意识到在以后的实际操作过程中需要注意对于库里数据的处理。
第五篇:(2008版)数据库原理实验5指导书
一 实验题目:视图的定义和使用
二 实验目的:加深对视图的理解,熟练视图的定义、查看、修改等操作 三 实验内容及要求:(从下面10个题目中选一个)题目一:
学生(学号,年龄,性别,系名)课程(课号,课名,学分,学时)选课(学号,课号,成绩)根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩 2 观察基本表数据变化时,视图中数据的变化。3 利用视图,查询平均成绩最高的学生。
题目二:
图书(书号,书名,价格,出版社)读者(卡号,姓名,年龄,所属单位)借阅(书号,卡号,借阅日期)根据上面基本表的信息定义视图显示每本书的书名、借阅次数 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询借阅次数最多的书。
题目三:
商品(编号,品名,进价,库存,售价,厂商编号)顾客(卡号,姓名,电话,积分)厂商(编号,厂址,名称、电话)
销售(顾客卡号,商品编号,数量,日期)根据上面基本表的信息定义视图显示每种商品的品名、销售数量 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询销售数量最高的商品。
题目四:
图书(书号,书名,作者编号,价格,出版社编号)作者(编号,姓名,电话)
出版社(编号,出版社名称,地址)根据上面基本表的信息定义视图显示每个出版社的名称、出版书的数量 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询出版书最多的出版社
题目五:
零件(编号,名称,颜色,生产车间号)车间(编号,名称,人数,主任)产品(编号,名称,车间编号)
使用(产品编号,使用零件编号,个数)根据上面基本表的信息定义视图显示每个产品的编号,使用零件的编号,生产零件的车间号,车间主任 观察基本表数据变化时,视图中数据的变化。3利用视图,查询使用零件最多的产品。
题目六:
药品(编号,名称,价格,厂商)处方(药品编号,数量,医生编号)医生(编号,姓名,科室,职称)根据上面基本表的信息定义视图显示每种药品的品名、销售金额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询最畅销的药品。
题目七:
学生(学号,年龄,性别,系名)
教材(编号,书名,出版社编号,价格)订购(学号,书号,数量)出版社(编号,名称,地址)根据上面基本表的信息定义视图显示每个学生姓名、应缴书费 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询交费最高的学生。
题目八:
员工(编号,姓名,性别,年龄,部门编号,年薪)部门(编号,名称,人数,负责人)项目(编号,名称,负责部门编号)根据上面基本表的信息定义视图显示每个部门名称、年工资总额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询工资额最高的部门
题目九:
帐户(编号,姓名,余额,建立日期,储蓄所编号)储蓄所(编号,名称,地址,人数,所属城市)借贷(帐户,借贷类型,金额,日期)根据上面基本表的信息定义视图显示每个储蓄所名称、储蓄总金额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询储蓄金额最高的储蓄所。
题目十:
仓库(编号,保管员编号,面积)
保管员(编号,姓名,年龄,电话、月薪)商品(编号,品名,仓库编号、数量,单价)
1根据上面基本表的信息定义视图显示每个仓库保管员姓名、保管商品价值总额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询保管商品价值金额最高的保管员。
五 实验报告要求: 给出建立视图的步骤。给出基本表数据和视图的内容。给出查询命令和测试数据、执行结果。