您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 项目四 学生基本信息查询 -by anita
成都东软学院信息管理教研室:李姗办公室:A4201Email:LiShan@ccniit.comPhoneNo:028-82878195模块4-1用SQL语句进行简单查询模块4-2用视图进行查询模块4-3用函数进行查询3李姗信管教研室能够用SELECT语句进行简单查询能够按照字段对信息进行筛选能够对查询的记录进行排序4李姗信管教研室1.查询student表中的若干列。2.查询student表中的若干行。3.查询信息的排序显示。4.使用LIKE子句实现模糊查询。5李姗信管教研室【任务分析】查询信息是数据库的基本功能之一,通常可以使用SELECT语句来完成查询操作。本任务要完成对student表的若干列的查询,这里的若干列既可以是全部列、也可以是部分列、也可以是一些列的合成的结果集。因此该任务继续分为下面几个子任务:任务1.1查询student表的学生编码、姓名、性别和入学成绩(全部列)任务1.2查询student表的所有学生信息(部分列)任务1.3查询student表的学生的姓名和年龄(列的合成的结果集)6李姗信管教研室程序代码:USEstudentGOSELECTsno,sname,ssex,sscoreFROMstudentGOSelect子句中依次列出要查询的字段(字段间用逗号加以分隔)From子句指明数据来源于哪张数据表或视图7李姗信管教研室分析,执行上述代码8李姗信管教研室程序代码:USEstudentGOSELECT*FROMstudentGO任务1.2:查询student表的所有学生信息(代码8)查询所有信息,可以在select子句中依次列出表中的所有列,也可以使用通配符“*”From子句指明数据来源于哪张数据表或视图9李姗信管教研室分析,执行上述代码10李姗信管教研室程序代码:USEstudentGOSELECTsname姓名,YEAR(GETDATE())-YEAR(sbirthday)年龄FROMstudentGO任务1.3:查询student表的学生的姓名和年龄(代码8)该列的别名,用来友好地显示相关查询字段的信息。Year()函数的功能是返回年份,getdate()函数的功能是返回系统当前的时间和日期。YEAR(GETDATE())-YEAR(sbirthday)表达式用来计算学生的年龄。11李姗信管教研室分析,执行上述代码12李姗信管教研室【任务分析】本任务要完成对student表的若干行的查询,可以通过WHERE、TOP和DISTINCT来实现。WHERE子句可以筛选出满足条件的记录,TOP可以对记录的条数进行具体限定,而DISTINCT则可以清除一些重复的行。因此该任务继续分为下面几个子任务:任务2.1查询student表的“07010211”班的男生信息任务2.2应用TOP子句查询choice表中选修“0101001”课程的三位学生任务2.3应用DISTINCT子句消除重复行13李姗信管教研室Select语句格式select[topn][distinct]列名列表from表名where查询条件14李姗信管教研室程序代码:USEstudentGOSELECT*FROMstudentWHEREclassno='07010211'ANDssex='男'GO任务2.1:查询student表的“07010211”班的男生信息(代码8)两个条件之间是并且的关系,可以用逻辑运算符and。15李姗信管教研室分析,执行上述代码16李姗信管教研室1、查询teacher表中所有女教师的信息。2、查询teacher表中所有女教师的姓名和职称。3、查询teacher表中所有教师的姓名和年龄。4、查询teacher表中所有女教师的姓名和年龄。17李姗信管教研室程序代码:USEstudentGOSELECTTOP3*FROMchoiceWHEREcno='0101001'GO任务2.2:应用TOP子句查询choice表中选修“0101001”课程的三位学生(代码8)表示查询前3条记录。还可在字段列表之前用top20percent关键字,查询结果将只显示前20%的记录。(p101-2.sql)Top字句位于select和列名列表之间。18李姗信管教研室分析,执行上述代码19李姗信管教研室1、查询student表中前10名学生的姓名。2、查询student表中第10条到20条数据中学生的姓名。3、查询student表中第10条数据的学生姓名。20李姗信管教研室程序代码:USEstudentGOSELECTDISTINCTsnoFROMchoiceGO任务2.3:应用DISTINCT子句消除重复行(代码8)Distinct用于清除一些重复的行,使用时介于select和列名列表之间。21李姗信管教研室分析,执行上述代码22李姗信管教研室【任务分析】在student表中查询全体学生的信息,查询结果按所在的班级的班级代码降序排序,同一个班级的学生按照学号升序排序。对于结果的排序可以使用ORDERBY语句来控制,其中ASC表示升序,DESC表示降序。23李姗信管教研室USEstudentGOSELECT*FROMstudentORDERBYclassnoDESC,snoASCGO程序代码:(代码8)层次递进说明,不是并列的。24李姗信管教研室分析,执行上述代码25李姗信管教研室1、在student表中查询全体学生信息,查询结果按出生日期降序排列。2、在teacher表中查询所有女教师的信息,按出生日期升序排列。3、在student表中查询06010111班的学生信息,按入学成绩升序排列。4.在choice表中查询所有学生的选课情况,查询结果按考试成绩从大到小排列26李姗信管教研室【任务分析】在student表中查询陈姓学生的基本信息,查询结果出生年月降序排序。这里的查询条件“陈姓”学生含义比较宽泛,不能直接使用sname=’陈’来表示,而要使用LIKE子句并跟上通配符的形式,。查询结果排序则可以使用ORDERBY语句来控制,其中ASC表示升序,DESC表示降序。27李姗信管教研室USEstudentGOSELECT*FROMstudentWHEREsnameLIKE'陈%'ORDERBYsbirthdayDESCGO程序代码(代码8)28李姗信管教研室分析,执行上述代码29李姗信管教研室1、在student表中查询张姓学生的基本信息,查询结果按出生日期的升序排列。2、查student表中07级的学生信息,查询结果按所在班级的班级编号的升序排序,同一个班级的学生按照学号升序排列。3、查询student表中入学成绩大于400分的学生的学号、姓名和入学成绩,结果按成绩升序排序。30李姗信管教研室关系数据库的关系之间可以通过运算获取相关的数据,其基本运算的种类主要有选择、投影和连接运算,它们来自关系代数中的并、交、差、选择、投影等运算。投影从一个表中选择一列或者几列形成新表的运算称为投影。投影是对数据表的列进行的一种筛选操作,新表的列的数量和顺序一般与原表不尽相同。在SQLServer中的投影操作通过SELECT子句中限定列名列表来实现。练习:查询teacher表中的教师编号和姓名。31李姗信管教研室选择从一个表中选择若干行形成新表的运算称为选择。选择是对数据表的行进行的一种筛选操作,新表的行的数量一般跟原表不尽相同。在SQLServer中的选择操作通过WHERE子句中限定记录条件来实现。练习:查询student表中1988年以后出生的学生的学号和姓名。连接从两个或两个以上的表中选择满足某种条件的记录形成新表的运算称为连接。连接与投影和选择不同,它的运算对象是多表。它可以分为交叉连接、自然连接、左连接、右连接等不同的类型。例:查询“计应0711”班学生的信息。(见下页)32李姗信管教研室查询“计应0711”班学生的信息:(代码8)usestudentgoselectsno,snamefromstudentinnerjoinclassonstudent.classno=class.classnowhereclassname=‘计应0711’此处的innerjoin与join功能相同:如果表中有至少一个匹配,则返回行;否则,不返回。Leftjoin:即使右表中没有匹配,也从左表返回所有的行。Rightjoin:即使左表中没有匹配,也从右表返回所有的行。Fulljoin:只要其中一个表中存在匹配,就返回行。33李姗信管教研室SELECT语句的基本语法格式SELECTselect_list[INTOnew_table_name]FROMtable_list[WHEREsearch_condition1][GROUPBYgroup_by-list][HAVINGsearch_condition2][ORDERBYorder_list[ASC︳DESC]]34李姗信管教研室使用比较运算符、=、、=、=、!、!、!=比较结果是布尔值,即:true(表达式结果为真)、false及unknown。数据类型为text、ntext、image的数据不可用比较运算符。练习:(代码8)1.查询所有成绩在70分以下的学生选课信息。35李姗信管教研室使用逻辑运算符and、or、not三种。练习:(代码8)1.查询职称为教授或者年龄超过50岁的女教师信息。2.查询出生日期在1975到1980间的教师信息。3.查询出生日期不在1975到1980间的教师信息。36李姗信管教研室使用集合运算符in、notin,用来查找某个值是否属于某个集合记录。使用union可以将查询结果并成一个集合。参加union操作的各个结果集合的集合元素的个数及类型必须相同,系统会清除重复的记录。Union中的各个结果集一般来自于不同的数据表,当各个结果集来自同一张数据表时,一般使用集合运算符in。练习:(代码8)1、查询“07010111”班或者是“07010211”班的学生信息。2、查询student123表中10101班和student456表中10105班的学生信息。3、查询student表中07010111班和student1表中07010211班的学生信息。37李姗信管教研室使用字符匹配运算符通配符含义举例说明%代表零个或多个字符的任意字符串like‘LO%’表示所有以”LO”开头的名字_任意单个字符like‘_rt’表示所有以”rt”结尾的三个字母的名字[]任意在指定范围内或集合中的单个字符like‘[a-d]ear’表示所有以”a”到”d”中任意一个字母开头,以”ear”结尾的四个字母的名字[^]任意不在指定范围或集合中的单个字符like‘D[^C]%’表示所有以”D”开头、第二个字母不为”C”的名字38李姗信管教研室练习:(代码8)1、查询07级中学号尾号为5的学生的信息2、查询姓“张”、“李”、“王”的教师的信息。3、查询课程名为“VFP_6.0数据库”的课程的信息。p10839李姗信管教研室学习目标:会用SQLServerManagementStudio创建视图会用CREATEVIEW语句创建并保存视图能够对查询的信息进行排序40李姗信管教研室1.创建视图v_xs2.利用视图查询计算机应用技术专业中女生的信息3.利用视图修改学生信息。41李姗信管教研室【任务分析】首先,要查询“计算机应用技术”专业的学生,首先要确定查询所需的数据表有哪些。通过分析我们可以知道使用简单查询(单表查询),显然无法完成。除了用到student表外,还需要用到与之相关的class表和professional表。其次,查询的结果要保存成视图,视图是一种虚表,也是SQLServer中的一种数据库的对象,它可以由查询语句生成。42李姗信管教研室1、右击【视图】节点,在弹出的快捷菜单中单击【新建视图】命令,打开“视图设计器”窗口和“添加表”对话框43李姗信管教研室2、选择“student”、
本文标题:项目四 学生基本信息查询 -by anita
链接地址:https://www.777doc.com/doc-3101590 .html