资源描述:
《实验2单表查询实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验D02:单表查询实验一、实验名称和性质所属课程数据库原理实验名称单表查询实验学时2实验性质/□验证□综合/□设计必做/选做/□必做□选做二、实验目的1.掌握数据的基本检索方法;2.掌握数据查询的Groupby和Orderby子句的使用;3.掌握聚集函数的使用方法。三、实验的软硬件环境要求硬件环境要求:PC机(单机)使用的软件名称、版本号以及模块:WindowsXP下的SQLServer2000(或SQLServer2005)四、知识准备前期要求掌握的知识:数据检索的语句格式:SELECTIALLIDISTINCT]<目标列表达式列表〉FROMv表名或视图名列
2、表〉[WHERE<条件表达式〉][GROUPBYv列名1>[HAVINGv条件表达式〉]]IORDERBYv列名2>[ASC
3、DESCJ]其中,SELECT后的目标列表达式可以是列名、表达式或函数。GROUPBY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组屮作用集函数。HAVING短语:筛选出只有满足指定条件的组ORDERBY子句:对查询结果表按指定列值的升序或降序排序注意:T-SQL语句中关键字不区分大小写五、实验内容1.对数据表进行简单检索;2.对数据表进行排序检索;3.在检索中使用聚集函数;六、验证性实验先选择耍操作的数据库
4、,用T-SQL命令:USESTUDENT或在工具栏的当前数据库屮选择STUDENT,闇▼旨盘刚
5、晶晦鸟西阿
6、3-«►a
7、0STUDENTZ1I€1
8、GE0SEIS-01(GEOSEIS-一.eIsstEgsnoGEoooouooB…S-・・・E-・・・E-:[I]・・・B-・・・E-nodelii^dLh^indpubstempdl学生选课2d11i^r学号1姓名性别]出生曰期专业名▲1020101杨颖C1984-07-2000:00:00计算松应,2020102方露露C1985-01-1500:00:00il算机应,3020103俞奇宝11984-02-200
9、0:00:00信息管理一14020104薛泳11985-07-2900:00:00水利工程〒n*"n1nc主.万Mr1nocno1nnn.nn.nn±>Z2^希養厂Jselect*from学生奁;□网格同消息]3:00:00
10、5fir:行列9连按;1[nljm图2-1以下查询要求在逐个语句执行,执行后将执行结果记录下来:1.无条件查询全部数据USESTUDENTSELECT*FROMS2・在SELECT关键字后指明要检索的列名(1)查询S表的学生学号和姓名SELECTSNO,SNAMEFROMS(2)查询s表中的系部名SELECTDEPAFROMS(3)查询s表
11、屮不重复的系部名SELECTDISTINCTDEPAFROMS3.改变列标题的检索(1)使用空格形式:列名新标题SELECTSNO学号,SNAME姓名FROMS(1)使用“AS”形式,列名AS新标题SELECTSNOAS学号,SNAMEAS姓名FROMS(1)使用(列名/表达式)新标题形式SELECT(SNO)学号.(SNAME)姓名FROMS1.有条件选择的查询(1)在s表检索“信息系”的学生信息SELECT*FROMSWHEREDEPA」信息系'(2)在s表中检索姓“王”的学生信息SELECT*FROMSWHERESNAMElike'王婷(3)在sc表检索,
12、cor选修课成绩为空的选课记录SELECTSNO,CNOFROMSCWHEREcno=,COTandgradeisnul1(4)检索年龄为21,18,22的学生学号、姓名SELECTSNO,SNAMEFROMSWHEREagein(21,18,22)AgeIN{21,18,22}表示某条记录的AGE字段值是否是集合{21,18,22}中的元素,如是,则选择。它等价于下面语句:SELECTSNO,SNAMEFROMSWHEREage二18ora呂e二21ora呂e二222.使用聚集函数(1)查询选课表中最高分、平均分、最低分SELECTMAX(GRADE),AVG
13、(GRADE),MIN(GRADE)FROMSC(2)查询“coi”课程的最高分、平均分和最小成绩。SELECTMAX(GRADE),AVG(GRADE),MIN(GRADE)FROMSCWHERECNO」COf1.对检索结果进行排序SELECT*FROMSCWHEREGRADEISNULLORDERBYSNO,CNODESC2.进行分组统计:(1)查询各学生的选课数SELECTSNO,COUNT(*)FROMSCGROUPBYSNO(2)使用HAVING字句:“选课表”中查询选修了3门以上课程的学生学号。SELECTSNO.COUNT(*)FROMSCGROU
14、PBYSNOHAVING