实验二数据查询

合集下载

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 序列查询(Entrez)、BLAST序列相似性搜索

实验2 序列查询(Entrez)、BLAST序列相似性搜索

实验二:序列查询(Entrez)、BLAST序列相似性搜索实验目的:1.学会用Entrez系统查找目标序列2.学会使用BLAST在数据库中搜索相似序列3.学会分析数据库搜索结果实验内容:一、EntrezEntrez是一个由NCBI创建并维护的基于Web界面的综合生物信息数据库检索系统。

用户不仅可以方便地检索Genbank的核酸数据,还可以检索来自Genbank和其它数据库的蛋白质序列数据、基因组图谱数据、来自分子模型数据库(MMDB)的蛋白质三维结构数据、种群序列数据集、以及由PubMed获得Medline的文献数据。

网址:/Entrez/(或在NCBI主页默认All Databases时点击搜索框右边的Search进入)。

如Figure 2.1所示:Figure 2.1 entrez 检索系统子数据库点击搜索框右边的help按钮,即可进入Entrez帮助页面。

在搜索栏输入你要查找的关键词,点击“GO”即可开始搜索。

如果输入多个关键词,它们之间默认的是“与”(AND)的关系。

Tips:搜索的关键词可以是一个单词,短语,句子,数据库的识别号,基因名字等等,但必须明确,不能是“gene”, “protein”等没有明确指向的词语。

但“transcription factor”这样有一定范围的词是可以接受的。

可以用你感兴趣的领域的专业术语,也可以是非专业术语,比如:h1n1,lung cancer,albinism; subtilism, peroxidase, myoglobin。

 输入关键词,点击“GO”之后,每个数据库图标前方出现了数字,代表的是在相对应的数据库里搜索到的条目数。

点击进入对应的数据库,可以查看搜索到的条目。

如果在数据库图标前面为灰色,显示“none”,说明在对应的数据库里没有搜索到任何结果。

也可以直接通过NCBI任一页面上的搜索栏进行Entrez搜索。

点击“search”后面的下拉菜单,选择数据库,在下面的文本框里输入关键词,点击“Search”即可(Figure 2.2)。

数据库实验二数据查询

数据库实验二数据查询

实验4 数据查询一、实验目的1.掌握SELECT语句的基本语法和查询条件的表示方法;2.掌握连接查询的表示方法;3.掌握嵌套查询的表示方法;4.掌握数据汇总的方法;5.掌握ORDER BY子句的作用和使用方法;6.掌握HAVING子句的作用和使用方法;二、实验内容使用SELECT查询语句,在数据库StudentCourse的Student表、Course 表和StuCourse 表上进行各种查询,包括单表查询、连接查询、嵌套查询,并进行数据汇总,以及使用GROUP BY子句、ORDER BY子句和HAVING子句对结果进行分组、排序和筛选处理。

1.SELECT语句的基本使用;2.连接查询;3.嵌套查询;4.数据汇总;5.使用GROUP BY 子句对结果分组;6.使用ORDER BY子句对结果排序;7.使用HAVING子句对分组结果进行筛选;思考与练习:1.用SELECT语句查询Course表和StuCourse表中的所有记录。

SQL语句:select * from Course;select * from StuCourse;实验结果:2.用SELECT语句查询Course表和StuCourse表中满足指定条件的一列或若干列。

SQL语句:select 课程号,课程名 from Course where 学分=5;select 学号,课程号 from StuCourse where 成绩>80;实验结果:3.查询所有姓名中包含有“红”的学生的学号及姓名。

SQL语句:select 学号,姓名 from Student where 姓名 like '%红%';实验结果:4.用连接查询的方法查找所有选修了“2001” 或“1002”号课程的学生学号和姓名。

SQL语句:selectdistinct Student.学号,姓名from StuCourse,Studentwhere(课程号='1002'or 课程号='2001')and StuCourse.学号=Student.学号;实验结果:5.用子查询的方法查找所有选修了“2001”或“1002”号课程的学生学号和姓名。

数据库原理实验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次)。

数据库原理实验答案

数据库原理实验答案
Values(7,'PASCAL语言',6,4);
3)向SC表中插入数据
Insert Into SC(Sno,Cno, Grade) Values(200215121,1,92);
Insert Into SC(Sno,Cno, Grade) Values(200215121,2,85);
Insert Into SC(Sno,Cno, Grade) Values(200215121,3,88);
Insert Into SC(Sno,Cno, Grade) Values(200215122,2,90);
Insert Into SC(Sno,Cno, Grade) Values(200215122,3,80);
Insert Into SC(Sno,Cno, Grade) Values(200215121,4,92);
Insert Into SC(Sno,Cno, Grade) Values(200215121,5,85);
Insert Into SC(Sno,Cno, Grade) Values(200215121,6,88);
Insert Into SC(Sno,Cno, Grade) Values(200215123,2,90);
select sno,grade from sc where cno='3' order by grade desc;
8)查询各个课程号与相应的选课人数。
select cno, count(sno) from sc group by cno;
2. 连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二数据查询
实验目的:
1.通过本实验能够掌握投影、选择条件表达、排序、分组的sql语句表达。

2.通过本实验能够熟练应用sql语言进行查询,具体包括单表查询,多表连
接查询。

实验要求:
1.在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写
好相应的代码。

2.认真填写实验报告,记录所有实验用例。

实验内容:
(一)包括排序、分组的单表查询
1.求数学系学生的学号和姓名
2.求选修了课程的学生学号。

3.求选修课程号为‘2’的学生号和成绩,并要求对查询结果按成绩的降
序排列,如果成绩相同按学号的升序排列。

4.求选修课程号为’2’且成绩在80~90之间的学生学号和成绩,并将成绩乘
以0.8输出。

5.求数学系或计算机系姓张的学生的信息。

6.求缺少了成绩的学生的学号和课程号。

7.查询各个课程号与相应的选课人数。

(二)多表连接查询
1.查询每个学生的情况以及他所选修的课程。

2.求学生的学号、姓名、选修的课程及成绩。

3.求选修课程号为‘1’且成绩在90分以上的学生学号、姓名和成绩。

4.查询每一门课程的间接先行课。

5.查询与’刘晨’在同一个系学习的学生。

6.查询选修了课程名为‘信息系统‘的学生学号和姓名。

7.查询平均成绩在80分以上的学生学号和平均成绩。

8.查询选修了1门以上课程的学生的学号。

(三)嵌套查询
8.求选修了信息系统的学号和姓名。

9.查询与刘晨在同一个系学习的学生。

10.求选修1号课程的成绩高于刘晨的成绩(指刘晨选修的所有的课程
的成绩)的学生学号及成绩。

11.求其他系中比计算机系某一学生年龄小的学生(即年龄小于计算机
系年龄最大者的学生)。

12.求其他系中比计算机系学生年龄都小的学生姓名及年龄。

13.求没有选修3号课程的学生姓名。

14.查询选修了全部课程的学生姓名。

SQL语言中没有全称量词∨(,all)。

但是可以把带有全称量词的谓词转换为等价的带有存在量词的谓词。

(∨x)P≡∟(exists x(∟P))
试做:查询所有学生都选修的课程名
15.求至少选修了学号为“20021522”的学生所选修全部课程的学生学号和姓名。

16.求选修课程超过2门的学生的学号和姓名。

(四)视图
1. 创建数学系学生视图,带有检查约束。

2. 向创建的视图中插入一条记录。

3. 修改视图。

(五)思考题:
1.Where子句中能否用聚集函数作为条件表达式。

2.多表连接查询中如果显示的某一属性不止一个表中出现,应如何处理。

(例:(二)多表连接查询中的第2题)。

相关文档
最新文档