实验二数据查询(带答案)

合集下载

实验二SQL语言——数据查询操作

实验二SQL语言——数据查询操作

实验二SQL语言——数据查询操作SQL (Structured Query Language) 是一种用于管理关系数据库系统的标准语言。

在数据查询操作方面,SQL 可以帮助用户从数据库中检索想要的数据,通过下面的实验,我们将深入了解 SQL 语言在数据查询操作中的应用。

一、SELECT语句SELECT语句是SQL中最常用的语句之一,它用于从数据库中选择需要查询的数据。

SELECT语句的基本语法如下:```SELECT列名1,列名2,...FROM表名;```例如,我们有一个名为 "Students" 的表,其中包含了学生的姓名、年龄和性别等信息。

要查询学生的姓名和年龄,我们可以使用以下SELECT 语句:```SELECT 姓名, 年龄 FROM Students;```二、WHERE子句WHERE子句用于在SELECT语句中添加过滤条件,只返回满足条件的数据。

下面是WHERE子句的基本语法:```SELECT列名1,列名2,...FROM表名WHERE条件;```例如,我们要查询年龄大于等于18岁的学生信息,可以使用以下SELECT语句:```SELECT * FROM Students WHERE 年龄 >= 18;```三、ORDERBY子句ORDERBY子句用于按照指定的列进行排序,可以按照升序或降序排列。

下面是ORDERBY子句的基本语法:```SELECT列名1,列名2,...FROM表名ORDERBY列名[ASC,DESC];```例如,我们要按照学生的年龄从小到大排序,可以使用以下SELECT语句:```SELECT * FROM Students ORDER BY 年龄 ASC;```四、GROUPBY子句GROUPBY子句用于将查询结果按照一个或多个列进行分组,并对每个组进行聚合操作。

下面是GROUPBY子句的基本语法:```SELECT列名1,列名2,...FROM表名GROUPBY列名1,列名2,...;```例如,我们要统计每个性别的学生人数```SELECT 性别, COUNT(*) FROM Students GROUP BY 性别;```五、HAVING子句HAVING子句用于在GROUPBY子句中添加过滤条件,只返回满足条件的分组。

2021年access实验报告二含答案

2021年access实验报告二含答案
2.“计算字段”格式及需要注意问题。
答: 当需要统计数据在表中没有对应字段, 或者用于计算数据值起源于多个字段时, 这时应该在“设计网格”中添加一个计算字段, 计算字段是指依据一个或多个表中一个或多个字段并使用表示式建立新字段。
需注意问题: 计算表示式输入规则是: “计算字段名:表示式”其中计算字段名与表示式之间分隔符是英文半角“:”。
三、 试验原理:
1.“总计查询”操作方法。
答:在数据库窗口中单击“查询”对象; 双击“在设计视图中创建查询”, 显示“显示表”对话框; 单击“表”选项卡, 在选项卡中添加数据源, 然后单击“关闭”关闭该对话框; 在查询“设计视图”中选中要总计行, 然后单击工具栏上“汇总”, 出现“总计”行, 然后在要总计列中选择“计数”项; 最终“保留”。
答: 打开“退货商品信息查询”设计视图——另起一个空格输入“退货日期:left([退货编号],2)+”年”+Mid([退货编号],3,2)+”月”+Mid([退货编号],5,2),”——再将总计设为表示式。
六、 试验中碰到问题
答: 试验操作不熟悉, 概念不清, 尤其是对于表示式利用不熟。
6、 请为试验内容7改写条件, 使“吉林”全部企业供货信息都保留到“吉林供货信息查询”表中。请写出步骤, 或画出示意图。
答:
7、 请将试验内容9“联络人”由“孙晓霞”更新为学生自己名字, 请写出步骤。
答: 打开“设计视图”将相关内容添加上去——在“用户编号”列“条件”行输入“[请输入用户编号:]”——实施“更新命令”——在“更新”行第二列输入“[请输入新联络人:]”——点击“运行”——输入用户编号——输入新联络人为学生名。
3.不匹配项查询功效是什么。
答:能够在一个表中查找那些再另一个表格没有相关统计统计。

数据库实验二41245

数据库实验二41245

仲恺农业工程学院实验报告纸信息科学与技术学院网络工程专业 131 班组数据库原理及应用课学号 4123 姓名苏德实验日期教师评定实验二数据查询与修改一、实验目的1、掌握使用简单查询、连接查询以及嵌套查询完成数据查询的方法2、掌握应用SQL进行数据更新的方法;3、掌握视图的创建与更新方法。

二、实验内容第一部分:使用附加方式恢复数据库LibraryLib,完成如下各题:1、《数据库原理及应用实验指导》P45 1.数据查询练习(1)-(6)(1)查询各个超期罚款用户及其罚款总数,结果按罚款总数降序排列。

(2)查询已经超期一个月以上的还未归还图书的用户借书证编号。

(3)查询已经超期一个月以上的还未归还图书的用户名称、联系方式以及超期图书名。

(4)查询在同一天借阅了不同图书的用户借书证号。

(5)查询借书从来没有被超期罚款的用户信息。

(6)检索有图书所购册数大于或等于图书价格超过“50”的图书任一所购册数的图书的价格。

分析:先找出图书价格超过“50”的图书的所购册书假设a要查的是所购册数>= any a 的图书的价格第一部分:实验数据修改1.使用SQL语句向“用户信息表Users”中插入元组(用户标识:LiS;用户权限:1;密码:2;用户名称:李生;性别:男(0);部门:计算系;已借图书:0)。

问:本题可以省略into子句中的属性名吗如果要省略,需要注意什么2.向Publish(出版社信息) 表插入一条新的记录,在该记录中,出版社名为:国防工业出版社,地址为:北京市海淀大街籍海楼,出版社email为。

3.对每个出版社,求出所购图书总数和图书总价格,并把结果存入新建表“图书统计Temp_CNTBK”表中。

4.读者“ZouY”于今天通过管理员“LuoHH”借阅了一本“Visual FoxPro 及其应用系统开发”图书,使用T-SQL语句向Borrow表中插入该记录,并更改Book表中库存册书信息。

说明:本题有一定难度,请先思考如果插入这么一条记录,需要哪些信息,又如何获取到,关键是获取后将其存入一些变量中即可5.使用SQL语句将所有读者借书应归还日期向后延长一天。

SQL实验二:数据库查询实验报告

SQL实验二:数据库查询实验报告

实验二数据库的查询实验实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。

(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

实验内容和原理在实验一定义的“学生成绩数据库”中,使用T-SQL 语句完成以下查询:(1 )求计算机系学生的学号和姓名。

(2)求选修了数学的学生学号、姓名和成绩。

(3)求选修01 课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

(4)查找选修课程的平均成绩位于前三名的学生的学号。

(5)查询计算机系的姓刘且单名的学生的信息。

(6)查询至少选修两门课程的学生学号。

(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。

(8)查询选修“数据库”课程,且成绩在80 分以上的学生的学号和成绩。

(9)查询所有姓“王”的同学没有选修的课程名。

(请分别用exists和in完成该查询) (10)查询选修了全部课程的学生的姓名。

(请至少写出两种查询语句)(11)求选修了学生“ 95001”所选修的全部课程的学生学号和姓名。

(12)查询每一门课的间接先修课。

(13)列出所有学生所有可能的选课情况。

(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。

(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。

(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。

(17)对被两名以上学生所选修的课程统计每门课的选课人数。

要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。

(18)列出选修课程超过 3 门的学生姓名及选修门数。

(19)检索至少选修课程号为01 和03 的学生姓名。

(20)检索至少选修课程“数学”和“操作系统”的学生学号。

(21 )查询‘操作系统'课程的最高分的学生的姓名、性别、所在系(22)查询数据结构的成绩低于操作系统的成绩的学生姓名及该生的这两门课的成绩(23)所有成绩都在70 分以上的学生姓名及所在系。

数据库原理实验2数据查询

数据库原理实验2数据查询

课程名称数据库原理实验序号 2实验项目数据查询实验地点实验学时实验类型验证性指导教师实验员专业班级学号姓名年月日成绩:A教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。

四、实验过程(实验步骤、记录、数据、分析)实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。

一、简单的选择与投影查询1、无条件查询1.1查询全体学生的详细记录。

这是一个无条件的选择查询,其命令为:其命令为:select * from students运行结果如右图,显示整张表的内容。

1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(dno)。

这是一个无条件的投影查询,其命令为:select sname,ssexfrom students运行结果如右图,显示了表中的三列。

1.3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。

其命令为:select sno,sname,2017-sage as birth from students运行结果如右图,显示了三列内容。

1.4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。

其命令为:select sname,'birth:' title,YEAR(GETDATE())-sagebirthyear,LOWER(sno) lsnofrom students运行结果如右图,显示了四列内容。

1.5查询选修了课程的学生学号。

其命令为:select distinct snofrom reports运行结果如右图,distinct短语是为了消去查询结果中的重复值。

2、条件查询(1)比较条件1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。

其命令为:select sno,snamefrom studentswhere dno='d03'运行结果如右图,显示了d03系的全体学生姓名与学号。

数据库实验答案实验二Sql

数据库实验答案实验二Sql

(1) 查找有销售记录的客户编号、名称和订单总额。

命令:SELECT a.CustomerNo,CustomerName, sum(quantity*price) orderSumFROM OrderMaster a,OrderDetail b,Customer cWHERE b.orderNo=a.orderNo AND c.CustomerNo=a.CustomerNoGROUP BY a.CustomerNo,CustomerNameORDER BY a.CustomerNo,orderSum DESC(2) 在订单明细表中查询订单金额最高的订单。

命令:SELECT top 1 orderNo,sum(quantity*price)订单金额FROM OrderDetailGROUP BY orderNoORDER BY 订单金额DESC(3) 查询没有订购商品的客户编号和客户名称。

命令:SELECT CustomerNo,CustomerNameFROM CustomerWHERE CustomerNo NOT IN (SELECT CustomerNo FROM OrderMaster)(4) 找出至少被订购3次的商品编号、订单编号、订货数量和订货金额,并按订货数量的降序排序输出。

命令:SELECT a.productNo,orderNo,quantity,(quantity*price) moneyFROM OrderDetail a,(SELECT productNoFROM OrderDetailGROUP BY productNoHA VING COUNT(*)>=3) bWHERE a.productNo =b.productNoORDER BY a.productNo,quantity DESC被订购三件以上的……SELECT b.ProductNo,orderNo,quantity,orderSum=quantity*priceFROM OrderDetail b,(SELECT ProductNo FROM(SELECT ProductNo,sum(quantity)SQfrom OrderDetail GROUP BY ProductNo)aWHERE a.SQ>3)cWHERE b.ProductNo=c.ProductNoORDER BY b.quantity DESC(5) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。

实验二查询部分及查询作业答案

实验二查询部分及查询作业答案

实验二. 数据库查询Student表:列名含义数据类型约束Sno 学号字符串,长度为7 主码Sname 姓名字符串,长度为10 非空Ssex 性别字符串,长度为2Sage 年龄整形Sdept 所在系字符串,长度为20Course表:列名含义数据类型约束Cno 课程号字符串,长度为10 主码Cname 课程名字符串,长度为20 非空Ccredit 学分字节Semester 学期字节SC表:列名含义数据类型约束Sno 学号字符串,长度为7 主码引用Student的Sno作为外码Cno 课程号字符串,长度为10 主码引用Course的Cno作为外码Grade 成绩小整形XKLB 修课类别字符串,长度为4 请写明创建以上三张基本表的语句。

3.将如下数据插入建好的三张表中。

Student表学号姓名性别年龄所在系'9512101','李勇','男',19,'计算机系''9512102','刘晨','男',20,'计算机系''9512103','王敏','女',20,'计算机系''9521101','张立','男',22,'信息系''9521102','吴宾','女',21,'信息系''9521103','张海','男',20,'信息系''9531101','钱小平','女',18,'数学系''9531102','张大力','男',19,'数学系'Course表课程号课程名学分学期'c01','计算机文化学',3,1'c02','VB',2,3'c03','计算机网络',4,7'c04','数据库基础',6,6'c05','高等数学',8,2'c06','数据结构',5,4SC表学号课程号成绩修课类别'9512101','c01',90,'必修''9512101','c02',86,'选修''9512101','c06',null,'必修''9512102','c02',78,'选修''9512102','c04',66,'必修''9521102','c01',82,'选修''9521102','c02',75,'选修''9521102','c04',92,'必修''9521102','c05',50,'必修''9521103','c02',68,'选修''9521103','c06',null,'必修''9531101','c01',80,'选修''9531101','c05',95,'必修''9531102','c05',85,'必修'请写明使用的数据插入语句。

数据查询(数据库实验2)

数据查询(数据库实验2)

数据库基础与实践实验报告实验二数据查询班级:惠普测试142学号:**********姓名:***日期:2016-11-061 实验目的:1)掌握针对单张基本表的数据查询方法;2)掌握SQL常用库函数及统计汇总查询方法;3)掌握分组查询方法和结果排序的方法;4)掌握连接查询和嵌套查询的方法。

2 实验平台:操作系统:Windows xp。

实验环境:SQL Server 2000以上版本。

3 实验内容与步骤利用实验一创建的sch_id数据库完成下列查询,并对查询语句的功能进行测试。

1.查询学号s5的同学的姓名和所在系,将查询结果的列名显示为中文。

代码:SELECT sn AS姓名,dn AS所在系FROM S,D WHERE S.sno='S5'AND S.dno=D.dno测试记录:S:D:运行结果截图:2.查询教过课程号为C2或C5的课程的教师的编号(写两个查询语句完成同样的功能)代码::SELECT tno FROM TC WHERE cno='C2'OR cno='C5'SELECT tno FROM TC WHERE cno IN('C2','C5')测试记录:运行结果截图:3.查询学号为S5的同学所学课程的平均成绩。

代码:SELECT A VG(score)AS'平均分'FROM SC WHERE sno='S5'测试记录:运行结果截图:4.查询选过课程号为C1的课程的人数。

代码:SELECT COUNT(*)FROM SC WHERE cno='C1'测试记录:运行结果截图:5.查询计算机系学生的最大年龄,显示系名和最大年龄(查询结果的每列都要有列名且为中文)。

代码:SELECT dn AS系名,MAX(age)AS'最大年龄'FROM S,D WHERE S.dno=D.dno AND D.dn='计算机'GROUP BY dn测试记录:运行结果截图:6.查询所有教过课的老师的人数(教过多门课的同一位老师只计数1次)。

实验训练2数据查询操作

实验训练2数据查询操作

实验训练2:数据查询操作实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL运算符、函数、谓词,练习Select语句的操作方法。

实验内容:1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。

分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。

(2)查询ID为1的订单。

分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。

【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。

分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。

【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。

分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。

(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。

分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。

【实验2.4】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。

分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。

(2)查询今年新增的所有会员,结果按照用户名字排序。

分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。

【实验2.5】GROUP BY(1)查询每个用户的消费总金额(所有订单)。

分析:订单表中包含每个订单的订单总价和用户ID。

现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。

实验二 数据查询

实验二 数据查询

实验二一、实验目的了解SQL Server 查询分析器中执行T-SQL语句的方法;使用T-SQL语句创建数据表;掌握数据库查询语句SELECT语句的基本语法及使用方法;二、实验内容1.利用企业管理器中提供的“生成SQL脚本”命令生成实验一中创建的数据库中数据表对象的创建的脚本文件,作为实验结果文件保存在实验文件夹下。

2.在查询分析器中完成数据库的创建。

(可另外取名创建数据库文件)3.使用SELECT语句建立以下查询1)显示bookinfo表中所有字段的值;2)查询teacher表中所有记录的teachercode、teachername、enterdate、title字段信息;3)查询男教师的姓名(teachername),显示时将字段名改为“姓名”;4)查询2007年以后出版的教材名称(bookname)、出版日期(publishdate)和库存量(stocknum),显示时字段名称分别为教材名称、出版日期、库存量;显示结果如图1所示。

图15)查询所有教材的出版社代码(publishcode),不包括重复的记录;显示结果如图2所示。

图2 图36)查询学生订书量(stubooknum)最大的3个记录,显示教材代号(bookcode)和学生订书量(stubooknum);显示结果如图3所示。

7)查询学生订书量(stubooknum)在150~250之间的教材信息;显示结果如图4所示。

图48)查询每一种教材的学生订书总量;显示结果如图5所示。

图5 图69)查询书名为“VB程序设计”的教材的学生总订量、教师总订量及总订量;显示结果如图6所示。

10)显示教材的最高价、最低价、平均价、最高价与最低价之间的差值;显示结果如图7所示。

图711)查询出版社代号(publishcode)为10、02、31的出版社所出版的教材信息。

要求显示教材名称(bookname)、作者(author)、价格(price)、库存和出版社名称(publisher);显示结果如图8所示。

实验二 中文数据库检索

实验二   中文数据库检索

实验二中文数据库检索一实验要求1 了解图书馆购买的所有中文数据库收藏文献的类型(图书、期刊、学位论文等)。

2 学会浏览器的安装。

3 掌握中文数据库文献查询方法(初级检索、高级检索)。

4 熟练利用中文数据库进行文献查询。

5掌握图书类数据库(超星、读秀)的检索,能够熟练运用读秀的原文传递功能。

二实验内容1 caj、PDF浏览器的安装。

2数据库的使用方法(通过数据库的帮助按钮)。

3在练习中了解、掌握各检索功能的检索式写法以及检索区各按钮的作用。

4练习保存符合查询要求的结果(尤其是全文)的操作方法,如下载题录、全文下载、全文部分下载(以图像或者文字形式)等。

5了解翻译助手、外文文献检索、参考文献格式管理、E-Learning、文献下载和被引频次、文献统计分析等功能。

6超星、读秀数据库的使用,练习读秀的原文传递功能(一定要掌握)。

三作业题请用检索与自己专业有关的文献(首选中国知网),要求:(1)写出所用的检索词和检索项(检索字段)(2)以参考文献的著录格式列出其中的中文期刊文献(2篇)和学位论文文献(2篇)注意:由于网速和并发用户的限制问题,如果中国知网登录不上去的话,可以选择中文科技期刊全文数据库(注意其原文传递功能)或万方数据资源系统。

实验时,以一个数据库为主,力求做到弄懂并能够熟练使用。

只有这样,才能做到触类旁通。

绝对不要贪多。

有问题请及时提出来。

参考文献著录格式:期刊文章:[顺序号] 主要责任者(列前三位). 文献题名[J]. 刊名,年,卷(期):起止页码.示例:[1]何龄修. 读顾诚南明史[J]. 中国史研究, 1998, 21 (3): 167-173.[2]雷启迪, 钟玉华, 杨慧凡, 等. 沙棘在小叶杨人工林中的供氮效应[J]. 林业实用技术, 1983 (4): 21-24.[3]李铁军. 杨树沙棘混交林生长调查研究[J]. 辽宁林业科技, 1986 (3): 10, 15-21.[4]金广涛,张国霖,张宝玺. 辽西北干旱风沙区杨树沙棘混交林气候生态效应和混交数学模型[J]. 沈阳农业大学学报, 1992, 23 (S1): 12-16.[5]李晓东, 张庆红, 叶瑾琳. 气候学研究的若干理论问题[J].北京大学学报:自然科学版, 1999, 35(1): 101-106.[6]亚洲地质图编目组. 亚洲地层与地质历史概述[J]. 地质学报, 1978, 3: 194-208.[7]]陶仁骥. 密码学与数学[J]. 自然杂志, 1984, 7(7): 527.[8]DOWLER L. The research university's dilemma; resource sharing and research in a trans): 5-26.注意:[顺序号]责任者(列前三位). 文献题名[J]. 刊名, 年, 卷(期): 起止页码.-------年卷期齐全2011,35 (3):[顺序号] 责任者(列前三位). 文献题名[J]. 刊名, 年, 卷: 起止页码.-------没有期号2011,35:[顺序号] 责任者(列前三位). 文献题名[J]. 刊名, 年(期): 起止页码.-------没有卷号2011 (3):学位论文[顺序号] 责任者. 文献题名[D]. 授予地:授予单位, 出版年.示例:[1]张志祥. 间断动力系统的随机扰动及其在守恒律方程中的应用[D]. 北京: 北京大学,1998.[2]张和生. 地质力学系统理论[D]. 太原: 太原理工大学, 1998.。

实验二 数据检索

实验二  数据检索

实验二数据检索一、目的与要求1.掌握使用SQL SERVER 2008查询语句实现简单数据查询的方法,巩固基本查询的语法;2.练习使用排序、分组、聚合等运算符实现特殊查询;3.练习多表连接查询、联合查询以及子查询的使用方法;二、实验准备1创建自己的项目数据库和表;2.向表中插入数据,以备查询使用;3.熟悉各种查询运算符的用法;4.设计与项目相关的查询题目,以备在实验室中调试完成。

三、实验内容1.登录到SQL SERVER服务器;2.将实验一创建的数据库附加到服务器上,用作实验数据库;3.在SSMS中新建查询,打开查询设计窗口,完成如下查询请求:1)查询选修“高等数学”课程的学生同时还选修了哪些课程。

2)查询“JAVA”课程的平均成绩、最高最低分、前十名学生的信息。

3)统计每个学生的选课门数(包括没选课的学生),列出学号、选课门数和选课情况,其中选课情况显示规则为:如果选课门数大于或等于6门,则选课情况为:“多”;如果选课门数在3-5门之间,则选课情况为:“一般”;如果选课门数大于或等于6门,则选课情况为:“较差”;如果没有选课,则选课情况为:“未选课”。

4)修改全部课程的学分,修改规则如下:如果是第1-2学期开设的课程,则学分增加5分;如果是第3-4学期开设的课程,则学分增加3分;如果是第5-6学期开设的课程,则学分增加1分;对于其他学期开设的课程,学分不变。

5)查询每位学生得分最高的课程信息,列出学生学号、课程号、课程名和成绩。

6)查询选修了计算机文化学而没有选修JAVA课程的学生信息。

7)查询同时选修数据结构和JAVA两门课程的学生信息。

8)查询计算机系学生的信息,列出姓名、所在系、出生日期以及该学生的年龄排名(按从大到小)。

9)定义一个统计每门课程的考试平均成绩和选课人数的CTE,并利用该CTE查询选课人数超过2人的课程。

10)查询course表中的全部数据并将其保存到一个新表NewCourse中,然后为NewCourse表增加一个先修课程列PriorCno,该列表明了当前课程的先修课程编号,NULL 表示该门课程没有先修课程。

数据库实验二:简单查询和连接查询(供河南科技大学学生用)

数据库实验二:简单查询和连接查询(供河南科技大学学生用)

实验二:简单查询和连接查询一、实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。

二、实验内容:(一)完成下面的简单查询:①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件。

③查询工程名称中含有“厂”字的工程明细。

(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。

②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。

③笛卡尔积:求s和p表的笛卡尔积④左连接:求j表和spj表的左连接。

⑤右连接:求spj表和j表的右连接。

三、完成情况:(一)完成下面的简单查询:①查询所有“天津”的供应商明细;select*from swhere city='天津'②查询所有“红色”的14公斤以上的零件select*from pwhere color='红'andweight>'14'③查询工程名称中含有“厂”字的工程明细select*from jwhere jname like'%厂'(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。

select s.*,j.*from s,jwhere s.city=j.city②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。

select sname,jname,pnamefrom s,p,j,spjwhere spj.sno=s.sno andspj.pno=p.pno andspj.jno=j.jno③笛卡尔积:求s和p表的笛卡尔积select*from s,p④左连接:求j表和spj表的左连接select j.jno,jname,city,spj.sno,pno,QTYfrom j left join spj on(j.jno=spj.jno)⑤右连接:求spj表和j表的右连接select j.jno,jname,city,spj.sno,pno,QTYfrom spj right join j on(j.jno=spj.jno)四、实验结果:(一)①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件③查询工程名称中含有“厂”字的工程明细(二)①等值连接:求s表和j表的相同城市的等值连接②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。

工作报告之数据库实验报告答案

工作报告之数据库实验报告答案

数据库实验报告答案篇一:2013 《数据库原理及应用》实验报告答案】实验二数据定义一、实验目的1 、掌握数据库引擎的使用方法,加深对sql 的语句的理解;2 、使用sql 语句创建数据库、删除数据库3、熟练掌握ddl 语言的数据定义操作,包括create 、alter 、drop二、实验内容在sql 查询分析器中用create 、drop 、alter 语句创建、删除、修改基本表。

三、实验步骤1、根据课本中的说明,分析s表,p表,j表和spj表的主码和外码:(1) s表,p表,j表的主码分别是哪个属性,s表,p表,j表这三个表有没有外码?如果有,请写出。

s 表的主码sno p 表的主码pno j 表的主码jno 没有外码(2) spj 表的主码是由哪几个属性组成的属性组?spj 表的外码有几个,分别是哪些属性?分别参照哪些表的哪个属性?spj 主码( sno,pno,jno ) 外码sno 参照s 表的sno ,外码pno 参照p 表的pno ,外码jno 参照j 表的jno 。

2. 新建数据库spj ,并在数据库spj 中创建s 表,p 表,j 表和spj 表。

( 1 )创建供应商表s 的sql 语句,要求设置主码:create table s (sno char(4) primary key, sname varchar(40), status smallint, city varchar(20) );( 2)创建零件表p 的sql 语句,要求设置主码并将该约束命名为p_pk :create table p(pno char(4) constraint p_pk primary key,pname varchar(40),color char(2),weight smallint);( 3)创建工程项目表j 的sql 语句,要求设置主码并命名为j_pk :create table j (jno char(4) constraint j_pk primary key,jname varchar(40),city varchar(20));( 4)创建基本表供应情况表spj 的sql 语句,要求设置主码和外码:create table spj (sno char(4) references s(sno),pno char(4) references p(pno),jno char(4) references j(jno),qty smallint,primary key(sno,pno,jno));3. 在窗口下键入drop table s 命令,运行后观察结果。

实验二-数据的查询、更新

实验二-数据的查询、更新

实验二数据的查询、更新一、实验目的1、掌握用户自定义数据类型的方法2、掌握用T-SQL语句进行数据的插入、修改、删除的方法3、熟练掌握SELECT语句,能够运用该语句完成各种查询二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。

三、实验内容1、用T-SQL语句,创建一用户自定义数据类型:名称为“char20”,数据类型为varchar,长度为20,允许为空。

sp_addtype char20,'varchar(20)',null提示:sp_addtype [@typename=]用户自定义类型的名字[, @phystype=]系统类型名[, [@nulltype=] ' not null | null '] [, [@owner=] '拥有该类型的用户名'] 例:自定义一个名为address的类型,其所属系统类型为varchar,长度为80,不能为空。

sp_addtype address,' varchar(80)', ' not null '2、用T-SQL语句,建立一个“学生课程数据库”,在此基础上建立该数据库包含的学生表,课程表,学生选修表,并向各表插入如下相应的数据。

create database学生课程数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 其中Sno 为主键、Ssex取值为男或女、SageSno Sname Ssex Sage Sdept95001 李敏勇男20 CS95002 刘晨女19 IS95003 王敏女18 MA95004 张立男18 IScreate table student(sno int primary key,sname char(10),ssex char(2)constraint ssex_ch check(ssex in('男','女')),sage int constraint sage_ch check(sage>=15 andsage<=30),sdept char(10))insert into studentvalues(95001,'李敏勇','男',20,'CS')insert into studentvalues(95002,'刘晨','女',19,'IS')insert into studentvalues(95003,'王敏','女',18,'MA')insert into studentvalues(95004,'张立','男',18,'IS')课程表:Course(Cno,Cname,Cpno,Credeit,remarks) 其中Cno为主键、Teacher的类型为Cno Cname Cpno Credit Teacher1 数据库 5 4 王芳2 数学NULL 2 刘新3 信息系统 14 刘新4 操作系统 6 3 高升5 数据结构7 4 宋明6 数据处理NULL 2 张彬7 Pascal语言 6 4 李磊create table course(cno int primary key,cname char(15),cpno int null,credit int,teacher char20)insert into coursevalues(1,'数据库',5,4,'王芳')insert into coursevalues(2,'数学',NULL,2,'刘新')insert into coursevalues(3,'信息系统',1,4,'刘新')insert into coursevalues(4,'操作系统',6,3,'高升')insert into coursevalues(5,'数据结构',7,4,'宋明')insert into coursevalues(6,'数据处理',NULL,2,'张彬')insert into coursevalues(7,'PASCAL语言',6,4,'李磊')学生选修表:SC(Sno,Cno,Grade) 其中Sno,Cno为主键同时又为外键、Grade值在0到100;Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095003 2 5595004 2 70create table sc(sno int,cno int,grade int constraint grade_ch check(grade between 0 and100),primary key(sno,cno),constraint fk_sno foreign key (sno)references student(sno),constraint fk_cno foreign key (cno)references course(cno),)insert into scvalues(95001,1,92)insert into scvalues(95001,2,85)insert into scvalues(95001,3,88)insert into scvalues(95002,2,90)insert into scvalues(95003,2,55)insert into scvalues(95004,2,70)3、用T-SQL语句,修改上面所建学生课程数据库中数据:1) 向学生表:Student中加入一条记录:(95030,谢非,男,22,CS)并保存insert into studentvalues(95030,'谢非','男',22,'CS')2) 将李敏勇的数据库的成绩改为98分update scset grade=98where o=(select ofrom coursewhere ame='数据库'and sno=(select snofrom studentwhere sname='李敏勇'))3) 删除学生表Student中谢非的记录并保存deletefrom studentwhere sname='谢非'4) 能不能从Student表中删除李敏勇学生的记录,为什么?能不能删除王敏, 张立两个学生的记录?不能, sc表中列sno是外码,参照student表的sno列。

实验二-单表查询(2012)

实验二-单表查询(2012)

实验二单表查询学号:20103191姓名:王晓燕专业:应用物理、实验目的掌握简单SQL查询语句的应用,包括like、top、order by、compute、聚集函数的应用。

、实验内容请在上次实验所建的数据库上实现下列查询练习,并抓图显示其查询结果。

1、基本查询(1)查询Student表中全体学生的全部信息。

结果:(2)检索全体学生的学号、姓名。

结果:班级:sw希罢井丄BMhUD.2、查询时改变列标题的显示检索全体学生的学号、姓名、家庭地址信息,并分别加上 的别名信息。

结果:■臥 jTifkHUlA.Q» QQ 丈静ID心 网魁 矍™;① u 目油 工且(xi■口(凹 甘庇;口 网心.SLT I ti L.> [ d L :l J d J d 已鼻 V f ■T孰研凶■ v | : *u a&i D 3E 机#血苛4 丫缶站护 返曙(2>・ 土 Jd 丄茗主r= r j Jf^T-fift 辿 I oi CGhJri err Jrio UHU kqFh_djR 馬 >tl*T“n ZD :a3L ?L5ti_£erf rirahtr鼻粳4 j 竝畑 e J *fl 'jaurce F 1to-X .* JLfl ■ z丄NE _i STffl ;^ _j 萍 Utj ®irt a -牡H B ._-i ™ fl ww d 占M 」LS*ig 他«l i- H 2O1Q31.. MULUwrZ.Hl 11I select 勺即。

5D aiie =££4)mc.ge ■口x ;二"学生”学号”家庭地址«*fc rmirfC Zrivr3、条件查询(1)查询成绩大于80分的学生的学号及课程号、成绩。

结果朝翻J - 1行i Ch»Iw 4MM| f ^-. ] ?m, ,. HArMc^ifQLUvhN*...出…,或宅祖E卫|疔耳00邮(L:i) 皿」皿・2沌Q0 CD OD 1 Fa TMfliW Ci 酋U 1/ 5■i 証fi』越山九机#z苛4 rh 3茹lil 11hi iSl€io>-匀JS t twto *・越于|£,^1厂些之。

数据库实验二,sql查询语句

数据库实验二,sql查询语句

实验二:数据查询语言实验内容SQL数据查询语句:例5-1:(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。

select sno,sname,sex,sage from student;例5-2:(不选择重复行) 求选修了课程的学生学号。

select distinct cno from sc where cno is not null;例5-3:(选择表中的所有列) 求全体学生的详细信息。

select * from student;例5-4:(使用表达式) 求全体学生的学号、姓名和出生年份。

select sno,sname,birthday from student;例5-5:(使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。

select sno as"学号",birthday as"出生年份" from student;例5-6:(比较大小条件) 求年龄大于19岁的学生的姓名和年龄。

select sname,age from studentwhere age>19;例5-7:(比较大小条件) 求计算机系或经济管理系年龄大于18岁的学生的姓名、系和年龄。

select sname,depname ,agefrom student,departmentwhere student.depno=department.depnoand age>18;例5-8:(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。

select sno,age from studentwhere age in(19,22);例5-9:(确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。

select sno,age from studentwhere age not in(19,22);例5-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。

实验训练2:数据查询操作

实验训练2:数据查询操作

实验二MySQL数据库操作实验实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL 运算符、函数、谓词,练习Select语句的操作方法。

实验内容:1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。

分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。

(2)查询ID为1的订单。

分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。

【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。

分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。

【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。

分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。

(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。

分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。

【实验2.4】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。

分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。

(2)查询今年新增的所有会员,结果按照用户名字排序。

分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。

【实验2.5】GROUP BY(1)查询每个用户的消费总金额(所有订单)。

分析:订单表中包含每个订单的订单总价和用户ID。

现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。

实验二 数据更新与数据查询实验

实验二 数据更新与数据查询实验

实验二:数据更新与数据查询实验实验目的:理解和掌握数据DML语言,能够熟练地使用SQL DML语言进行数据的增加、删除、修改和查询。

实验内容:1、在MySQL中建立一个名为studentsys的数据库;2、在studentsys中建立以下三个关系模式:学生表:Student(Sno,Sname,Ssex,Sdept)课程表:Course(Cno,Cname,Cpno,Ccredit)学生选课表:SC(Sno,Cno,Grade)具体要求如下:表1 学生表(Student)字段名数据类型是否允许空值主码/外码备注Sno char(11) 否主码学号Sname char(50) 否姓名Ssex char(1) 是性别Sage int 是年龄Sdept char(50) 是院系表2 课程表(Course)字段名数据类型是否允许空值主码/外码备注Cno char(11) 否主码课程号Cname char(50) 否课程名外码,参照Cpno char(11) 是先修课程Course表的CnoCcredit double 是学分表3 选课表(SC)字段名数据类型是否允许空值主码/外码备注主码,外码Sno char(11) 否学号参照Student表的Sno主码,外码Cno char(11) 否课程号参照Course表的Cno Grade double 是分数3、在Student表中添加以下数据:Sno Sname Ssex Sage Sdept 201215121 李勇男20 CS201215122 刘晨女19 CS201215123 王敏女18 MA201215125 张立男19 IS4、在Course表中添加以下数据:Cno Cname Cpno Ccredit1 数据库 42 数学 23 信息系统 1 45、在SC表中添加以下数据:Sno Cno Grade201215121 1 92201215121 2 85201215121 3 88201215122 2 90201215122 3 80建立student表:CREATE TABLE student (Sno char(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '学号',Sname char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '姓名',Ssex char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',Sage int(11) NULL DEFAULT NULL COMMENT '年龄',Sdept char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '院系',PRIMARY KEY (`Sno`) USING BTREE);建立course表:CREATE TABLE course (Cno char(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '课程号',Cname char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '课程名',Cpno char(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '先修课程',Ccredit double(255, 0) NULL DEFAULT NULL COMMENT '学分', PRIMARY KEY (`Cno`, `Cpno`) USING BTREE);建立sc表:CREATE TABLE sc (Sno char(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '学号',Cno char(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '课程号',Grade double(255, 0) NULL DEFAULT NULL COMMENT '分数', PRIMARY KEY (`Sno`, `Cno`) USING BTREE);添加student信息:INSERT INTO `student` V ALUES ('201215121', '李勇', '男', 20, 'CS'); INSERT INTO `student` V ALUES ('201215122', '刘晨', '女', 19, 'CS'); INSERT INTO `student` V ALUES ('201215123', '王敏', '女', 18, 'MA'); INSERT INTO `student` V ALUES ('201215125', '张立', '男', 19, 'IS');添加course表信息:INSERT INTO `course` V ALUES ('1', '数据库', 'NULL', 4);INSERT INTO `course` V ALUES ('2', '数学', 'NULL', 2);INSERT INTO `course` V ALUES ('3', '信息系统', '1', 4);添加sc表信息:INSERT INTO `sc` V ALUES ('201215121', '1', 92); INSERT INTO `sc` V ALUES ('201215121', '2', 85); INSERT INTO `sc` V ALUES ('201215121', '3', 88); INSERT INTO `sc` V ALUES ('201215122', '2', 90); INSERT INTO `sc` V ALUES ('201215122', '3', 80);6、将学生201215121的年龄改为22岁。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二数据查询(4学时)
实验目的:
(1)掌握SQL语言的数据查询语句
实验内容:
(1)将学生成绩数据库(XSCJ)导入SQL SERVER 2008,并做如下查询。

(注:数据文件和日志文件从服务器上下载直接导入))
1)查询选修了课程的学生的学号;
2)查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF;
3)查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。

4)查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

5)用LIKE查询课程名为DB_S程的课程号和学分。

6)查所有有成绩的学生学号和课程号。

7)查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄
升序排列
8)查询选修了课程的学生人数。

9)计算1号课程的学生平均成绩。

10)查询有3人以上(含3人)同学选修课程的课程号。

11)查询1号课程的间接先修课。

12)查询每个学生的学号、姓名、选修的课程名及成绩。

13)找出每个学生等于他选修课程平均成绩的课程号。

(2)将以下数据录入上次实验建立的BSXT数据库,并完成以下查询。

Teacher(教师表)
Topic(选题情况表)
1)查询全体学生的学号和姓名和电话。

2)查询全体学生的基本情况。

3)查询带了毕业生的老师的教师号。

4)查询教师“朱龙”基本情况。

5)查询所有姓“王”同学的基本情况。

6)统计每种学历老师的人数。

7)查询1组老师所带毕业生的基本情况(包括学号,姓名,教师号,教师姓名,毕业
设计题目)(注:1组老师只能带1组的学生)
8)查询所有学生的选题情况(包括没有选题的学生),包括学号,姓名,题目名称,教
师名称。

(注:要求老师的组号和学生的组号相一致.)
--1) 查询选修了课程的学生的学号;
SELECT DISTINCT Sno FROM SC
*/
/*
--2) 查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF;
SELECT Sname XM,2017-Sage CSNF FROM Student
*/
/*
--3) 查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。

SELECT Sno,Sname,Sdept
FROM Student
WHERE Sage BETWEEN 18 AND 20
*/
/*
--4) 查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

SELECT Sname,Ssex
FROM Student
WHERE Sdept IN ('IS','MA','CS')
*/
/*
--5)用LIKE查询课程名为DB_S程的课程号和学分。

SELECT Cno,Ccredit
FROM Course
WHERE Cname LIKE 'DB_S'
*/
/*
--6)查所有有成绩的学生学号和课程号。

SELECT Sno,Cno
FROM SC
*/
/*
--7)查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄升序排列SELECT *
FROM Student
ORDER BY Sdept,Sage
*/
--8)查询选修了课程的学生人数。

SELECT COUNT(DISTINCT Sno)
FROM SC
*/
/*
--9)计算1号课程的学生平均成绩。

SELECT AVG(Grade)
FROM SC
WHERE Cno='1'
*/
/*
--10)查询有3人以上(含3人)同学选修课程的课程号。

SELECT Cno
FROM SC
GROUP BY Cno
HAVing COUNT(*)>=3
*/
/*
--11)查询1号课程的间接先修课。

SELECT
FROM Course FIRST,Course SECOND
WHERE ='1' AND =
*/
/*
--12)查询每个学生的学号、姓名、选修的课程名及成绩。

SELECT ,Sname,Cname,Grade
FROM Student,SC,Course
WHERE = AND =
*/
/*
--13)找出每个学生等于他选修课程平均成绩的课程号。

SELECT Sno,Cno
FROM SC x
WHERE Grade=(SELECT AVG(Grade)
FROM SC y
WHERE =
*/
--------------------------------------------------------
/*
--1)查询全体学生的学号和姓名和电话。

SELECT Sno,Sname,Stel
FROM Student
*/
/*
--2)查询全体学生的基本情况。

SELECT *
FROM Student
*/
/*
--3)查询带了毕业生的老师的教师号。

SELECT DISTINCT Tno
FROM Topic
*/
/*
--4)查询教师“朱龙”基本情况。

SELECT *
FROM Teacher
WHERE Tname='朱龙'
*/
/*
--5)查询所有姓“王”同学的基本情况。

SELECT *
FROM Student
WHERE Sname LIKE '王%'
*/
/*
--6)统计每种学历老师的人数。

SELECT Tdegree,COUNT(*)
FROM Teacher
GROUP BY Tdegree
*/
/*
--7)查询1组老师所带毕业生的基本情况(包括学号,姓名,教师号,教师姓名,毕业设计题目)(注:1组老师只能带1组的学生)
SELECT ,Sname,,Tname,Hname
FROM Student LEFT OUTER JOIN TOPIC ON=,Teacher
WHERE ='1' AND = AND =
*/
/*
8)查询所有学生的选题情况(包括没有选题的学生),包括学号,姓名,题目名称,教师名称。

(注:要求老师的组号和学生的组号相一致.)
SELECT ,Sname,Hname,Tname
FROM Student LEFT OUTER JOIN (SELECT Hname,Tname,Sno
FROM Topic,Teacher
WHERE = TEMP ON =
*/。

相关文档
最新文档