SQLServer2016数据库原理及应用(微课版) 13第四章2 4.2数据查询 (单表无条件查询)_第1页
SQLServer2016数据库原理及应用(微课版) 13第四章2 4.2数据查询 (单表无条件查询)_第2页
SQLServer2016数据库原理及应用(微课版) 13第四章2 4.2数据查询 (单表无条件查询)_第3页
SQLServer2016数据库原理及应用(微课版) 13第四章2 4.2数据查询 (单表无条件查询)_第4页
SQLServer2016数据库原理及应用(微课版) 13第四章2 4.2数据查询 (单表无条件查询)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教案(课时数:2)章节标题:4.2数据查询(单表无条件查询)教学目的:使学生掌握查询语句的基本结构,及各部分的功能重点单表无条件查询的方法教学难点:如何从题中找出语句中的选项是哪些教学重点:单表无条件查询语句的格式及各参数的意义查询语句中*的意义查询结果的输出授课方法:教案类别:新授课实验课习题课复习提问复问内容学生姓名成绩作业及预习要求1.课后习题2.完成实验预习报告3.预习:42.数据查询(单表有条件查询)

课后总结:本节重点讲述以下内容:查询语句的格式及格式中各参数的含义。课堂实验存在的问题:查询语句在输入时,一定要注意英文半角字符查询文件的扩展名为:SQL,最好把练习的每条语句都放在个查询文件中。运行:单独选中每条语句运行注意当前的数据库

Ⅰ组织教学Ⅱ复习提问(实验总结)1.注意CHAR、NCHAR、VCHAR长度的设置2.INT、DATETIME不用设置长度,系统默认长度3.decimal(p[,s])、numeric(p[,s])p代表精度(数中数字的位数(包括小数点左侧的整数部分和小数点右侧的小数部分))、s代表小数位数.4.为什么必须设置主码?是先设置主码还是先设置外码?为什么?Ⅲ讲授新课4.2数据查询【课堂任务】 单表无条件、有条件查询多表查询 集合查询嵌套查询数据查询是数据库中最常见的操作,Transact-SQL语言是通过SELECT语句来实现查询的。由于SELECT语句的结构较为复杂,为了更加清楚地理解SELECT语句,下面所示的语法结构将省略细节,将在以后各小节展开来讲。数据查询语句的语法结构如下。SELECT子句1FROM子句2[WHERE表达式1][GROUPBY子句3][HAVING表达式2][ORDERBY子句4][UNION运算符]功能及说明如下。(1)

SELECT子句:指定查询结果中需要返回的值。(2)

FROM子句:指定从其中检索行的表或视图。(3)

WHERE表达式:指定查询的搜索条件。(4)

GROUPBY子句:指定查询结果的分组条件。(5)

HAVING表达式:指定分组或集合的查询条件。(6)

ORDERBY子句:指定查询结果的排序方法。(7)

UNION操作符:将多个SELECT语句查询结果组合为一个结果集,该结果集包含联合查询中的所有查询的全部行。本小节为简化查询操作,以学生成绩管理(grade)数据库为例,所用的基本表中数据见表4-10、表4-11、表4-12。该数据库包括以下几个。(1)学生关系表student(说明:sno表示学号,sname表示姓名,ssex表示性别,sbirth表示出生日期,sdept表示所在系)。(2)课程关系表course(说明:cno表示课程号,cname表示课程名)。(3)成绩表sc(说明:sno表示学号,cno表示课程号,degree表示成绩)。其关系模式如下。student(sno,sname,ssex,sbirth,sdept)course(cno,cname)sc(sno,cno,degree)4.2.1单表无条件查询1.语法格式SELECT[ALL|DISTINCT][TOPN[PERCENT]]<选项>[AS<显示列名>][,<选项>[AS<显示列名>][,...]]FROM<表名|视图名>2.说明(1)

ALL:表示输出所有记录,包括重复记录。默认值为ALL。DISTINCT:表示在查询结果中去掉重复值。(2)

TOPN:返回查询结果集中的前N行。加[PERCENT]:返回查询结果集中的前N%行。N的取值范围是0~100。(3)选项:查询结果集中的输出列。可为字段名、表达式或函数。用“*”表示表中的所有字段。若选项为表达式或函数,输出的列名系统自动给出,不是原字段名,故用AS重命名。(4)显示列名:在输出结果中,设置选项显示的列名。用引号定界或不定界。(5)表名:要查询的表。表不需打开,到当前路径下寻找表所对应的文件。3.实例1)查询指定列【例4-6】查询全体学生的学号和姓名。SELECTsno,snameFROMstudent【例4-7】查询全体学生的姓名、学号、所在系。SELECTsname,sno,sdeptFROMstudentSELECT子句中各列的先后顺序可以与表中的顺序不一致。用户可以根据应用的需要改变列的显示顺序。本例中先列出姓名,再列出学号和所在系。【例4-8】查询选修了课程的学生学号(本例是对表4-12的查询)。SELECTDISTINCTsnoFROMsc如果没有指定DISTINCT,则默认为ALL,即保留结果表中取值重复的行。查询结果如下。sno2005010120050201如果去掉DISTINCT,则查询结果如下。sno2005010120050101200501012005020120050201用户自行练习列出student表中出现的系别,并去掉重复值。提示:①SELECT子句中的<选项>中各个列的先后顺序可以与表中的顺序不一致。②用户在查询时可以根据需要改变列的显示顺序,但不改变表中列的原始顺序。2)查询全部列【例4-9】查询全体学生的详细记录。SELECT*FROMstudent上面的语句等价于:SELECTsno,sname,ssex,sbirth,sdeptFROMstudent【例4-10】输出学生表中的前10条记录。SELECTTOP10*FROMstudent若输出学生表中的前10%的记录,则只需在TOP10后加PERCENT即可。3)查询经过计算的列SELECT子句中不仅可以是表中的字段名,也可以是表达式。【例4-11】查询全体学生的姓名及其年龄。SELECTsname,YEAR(GETDATE())-YEAR(sbirth)FROMstudent在本例中,子句中的第二项不是字段名,而是一个计算表达式,是用当前的年份减去学生的出生年份,这样,所得的即是学生的年龄。其中,GETDATE()函数返回当前的系统日期和时间,YEAR()函数返回指定日期的年部分的整数。输出结果如下。sname无列名李勇22刘晨21王敏20张立21SELECT子句中不仅可以是算术表达式,还可以是字符串常量、函数等;用户还可以通过指定别名来改变查询结果中的列标题,这对包含算术表达式、常量、函数名的目标列表达式尤为有用。提示:有3种方法指定列名。①通过“选项列名”形式。②通过“选项AS列名”形式。③通过“选项=列名”形式。【例4-12】查询全体学生的姓名、出生年份和所在系,要求用小写字母表示所有系名,同时为姓名列指定别名为NAME,出生年份所在列指定别名为年份,系别所在列指定别名为系别。SELECTsnameNAME,'出生年份:'AS生日,YEAR(sbirth)=年份,LOWER(sdept)AS系别FROMstudent输出结果如下。NAME生日年份系别李勇出生年份:1987计算机系刘晨出生年份:1988信息系王敏出生年份:1989软件系张立出生年份:1988信息系【例4-13】将sc表中的学生成绩增加20%后输出。SELECTsno,cno,degree*1.2=成绩FROMSC注意:命令中的标点符号一律为半角。4.查询结果的输出Transact-SQL提供了一个扩展特性,允许用户使用SELECT语句查询得到的结果记录来创建一个新的数据表,创建新表使用INTO子句。INTO子句不能单独使用,它包含在SELECT语句中。INTO子句的语法格式如下。INTO<新表名>新创建的数据表的属性列由SELECT语句的目标列表达式来确定,属性列的列名、数据类型以及在表中的顺序都与SELECT语句的目标列表达式相同。新表的行数据也来自SELECT语句的查询结果,其值可以是计算列表达式,也可以是函数。【例4-14】使用INTO子句创建一个新表,存放stud

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论