使用Transact-SQL语言.ppt
《使用Transact-SQL语言.ppt》由会员分享,可在线阅读,更多相关《使用Transact-SQL语言.ppt(89页珍藏版)》请在三一办公上搜索。
1、Select语句查询,SELECT 字段列表FROM 数据源WHERE 条件表达式 GROUP BY 分组表达式 HAVING 搜索表达式 ORDER BY 排序表达式ASC|DESC,SELECT语句的语法结构为:SELECT 字段列表FROM 数据源WHERE 条件表达式 ORDER BY 排序表达式ASC|DESC Compute 聚合函数 by 要分组显示的列名,例如:按类别显示课程信息,并计算每类课程的平均报名人数。,GROUP BY子句在被定义的数据的基础上建立比较小的组,即按照分组表达式对某一列或多列的数据进行分组,将数据值相同的分为一组,并且对每一个组进行聚合函数计算。换句话说
2、,它产生每一组的总体信息。,GROUP BY子句,使用GROUP BY子句时,应该注意以下问题:(1)GROUP BY子句子句不能使用聚合函数。(2)当select语句中包含有where子句和order by 子句时,group by子句只能放在这两个子句的后面。(3)必须在group by 子句中列出select选择列表中的数据项。当使用group by子句进行分组时,select语句的列表中所选择的列一定是group by子句后面的分组依据列或聚合函数。,2.1 Transact-SQL概论2.2 查询与统计数据2.3 编辑用户表数据,第二章 使用Transact-SQL语言,Transa
3、ct-SQL语言主要组成部分,数据定义语言(DDL,Data Definition Language)数据操纵语言(DML,Data Manipularion Language)数据控制语言(DCL,Data Control Language),2.1 Transact-SQL概论,数据定义语言(DDL),数据定义语言是指用来定义和管理数据库以及数据库中的各种对象的语句,这些语句包括CREATE、ALTER和DROP等语句。在SQL Server 2000中,数据库对象包括表、视图、触发器、存储过程、规则、缺省、用户自定义的数据类型等。这些对象的创建、修改和删除等都可以通过使用CREATE、A
4、LTER、DROP等语句来完成。,数据操纵语言(DML),数据操纵语言是指用来查询、添加、修改和删除数据库中数据的语句,这些语句包括SELECT、INSERT、UPDATE、DELETE等。,数据控制语言(DCL),数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,,2.2 查询与统计数据,SELECT 语句用来检索和显示满足特定条件的数据 select 在查询结果中要显示的列的名字 from 要显示数据的表的名字 where 要检索数据的条件 选择所有列 select*,案例2.1 在student表中查询学号为“000
5、000001”同学的学号和姓名。,使用星号或列名,分析:1.识别要查询的数据库 XL 2.识别数据库中所需要的表student 3.识别所需的表中的字段stuno、stuname,USE XkGOSELECT StuNo,StuNameFROM StudentWHERE StuNo=00000001GO,案例2.2 从课程表(course)中查询课程类别,要求清除值相同的那些行。,使用distinct消除重复值,分析:1.识别要查询的数据库 XL 2.识别数据库中所需要的表Course 3.识别所需的表中的字段Kind,USE XkGO-消除Kind列值都相同的那些重复行SELECT DIST
6、INCT KindFROM Course GO-消除Kind列和Credit列值都相同的那些重复行SELECT DISTINCT Kind,CreditFROM Course GO,使用top n【percent】仅返回前n行,TOP关键字 与select 语句一起使用的top关键字限制了结果集合中返回的行数。Select top n percent 字段From 表名Where 条件order by 字段名Top12 返回结果集的前12行Top15 percent 返回结果集的前15%,案例2.3 从学生表sudent中查询所有的信息,要求只显示查询结果的前6行数据。,分析:1.识别要查询的
7、数据库 XL 2.识别数据库中所需要的表student 3.识别所需的表中的字段所有列,USE XkGOSELECT TOP 6*FROM StudentGO,改变查询结果列的标题,用户定义的列标题可以代替默认的列标题,有三种方法:1.使用等号“=”将用户定义列标题放在默认列名字之前。2.用户定义列标题放在默认列标题名字之后。3.使用AS关键字,案例2.4 查询课程表course中课程编号、课程名称、教师、上课时间、限制选课人数和报名人数,要求结果显示如下:,1.识别要查询的数据库 XK 2.识别数据库中所需要的表Course 3.识别所需的表中的字段,-方法1,在查询窗口中执行如下SQL语句
8、:USE XkGOSELECT 课程编码=CouNo,课程名称=CouName,教师=Teacher,上课时间=SchoolTime,限制选课人数=LimitNum,报名人数=WillNumFROM CourseGO,-方法2,在查询窗口中执行如下SQL语句:USE XkGOSELECT CouNo 课程编号,CouName 课程名称,Teacher 教师,SchoolTime 上课时间,LimitNum 限制选课人数,WillNum 报名人数FROM CourseGO,-方法3,在查询窗口中执行如下SQL语句:USE XkGOSELECT CouNo AS 课程编号,CouName AS 课
9、程名称,Teacher AS 教师,SchoolTime AS 上课时间,LimitNum AS 限制选课人数,WillNum AS 报名人数FROM CourseGO,使用where限制查询条件,在where子句中,可以包含比较运算符、逻辑运算符、范围运算符。逻辑运算符OR 当任何一个指定查找条件是真时返回结果AND 当所有指定的查找条件是真时返回结果NOT 否定其后的表达式范围运算符,案例2.5 在课程表中查询课程类别为“信息技术”而且学分为2的课程信息。,USE XkGOSELECT*FROM CourseWHERE Kind=信息技术 AND Credit=2GO,表达式作为查询列,在
10、select子句中的选项列表可以为表达式或指定的列的列表,表达式可以是列名、函数或常数的列表。,案例2.6 查询课程表中最小的报名人数、最大的报名人数和平均报名人数。分析:可以使用max、min、avg函数 1.识别要查询的数据库 XK 2.识别数据库中所需要的表Course 3.识别所需的表中的字段willnum,USE XkGOSELECT 最小的报名人数=MIN(WillNum),最大的报名人数=MAX(WillNum),平均报名人数=AVG(WillNum)FROM CourseGO,使用order by子句重新排序查询结果,ORDER BY 子句 在select 语句中使用order
11、 by 子句,以指定顺序检索和显示数据。select 字段 from 指定所在表名 order by 指定要排序的列、相关列号或表达式 asc/desc 指定按递增/递减顺序对指定列的值进 行排序。,案例2.7 查询课程信息、报名人数与限选人数之比。要求查询结果按照报名人数升序排列。分析:使用表达式作为查询列 1.识别要查询的数据库 XK 2.识别数据库中所需要的表Course 3.识别所需的表中的字段willnum/limitnum,-(1)ORDER BY后面为列名USE XkGOSELECT*,WillNum/LimitNum 报名人数与限选人数之比FROM Course ORDER B
12、Y WillNumGO,-(2)ORDER BY后面为中文标题USE XkGOSELECT*,WillNum/LimitNum 报名人数与限选人数之比FROM Course ORDER BY 报名人数与限选人数之比GO,使用in子句给出列值范围,案例2.7 查询课程编号为“004”、“007”、“013”的课程信息。,USE XkGOSELECT*FROM CourseWHERE CouNo=004 OR CouNo=007 OR CouNo=013GO,-使用IN关键字的SQL语句如下:USE XkGOSELECT*FROM CourseWHERE CouNo IN(004,007,013)
13、GO,-(1)ORDER BY后面为列名USE XkGOSELECT*,WillNum/LimitNum 报名人数与限选人数之比FROM Course ORDER BY WillNumGO,-(2)ORDER BY后面为中文标题USE XkGOSELECT*,WillNum/LimitNum 报名人数与限选人数之比FROM Course ORDER BY 报名人数与限选人数之比GO,使用like实现模糊查询,串运算符like与通配符,案例2.8 查询课程名以字母D开始的课程信息,USE XkGOSELECT*FROM CourseWHERE CouName LIKE D%GO,USE XkGO
14、SELECT*FROM StudentWHERE StuName LIKE _宝%GO,案例2.9 查询第二个字为“宝”的学生信息,案例2.10 查询不姓“刘”的学生信息,-使用USE XkGOSELECT*FROM StudentWHERE StuName LIKE 刘%GO,-使用NOT LIKEUSE XkGOSELECT*FROM StudentWHERE StuName NOT LIKE 刘%GO,使用is null 查询指定列表未输入值的数据行,IS NULL 和 IS NOT NULL关键字 null是一个未知值,或者是以给还没有提供数据的值。每当null值与任何其他值进行比较时
15、(使用比较运算符),或对null值进行计算时,其结果总是null.,案例2.10 查询课程表中教师姓名未定的课程信息,USE XkGOSELECT*FROM CourseWHERE teacher is nullGO,查询某一范围内的信息,查询在某一范围内的信息,要使用where子句限制查询条件,该条件通常是一个逻辑表达式。,案例2.11 查询报名人数少于25人并且多于15人的课程信息,USE XkGOSELECT*FROM CourseWHERE willnum15 and willnum25GO,使用compute进行计算,使用带select语句的Compute子句,使用聚合函数生成查询结
16、果中的汇总行。Compute by 子句进一步按列汇总结果集。,Select 字段From 表名Where 条件Compute 聚合函数,聚合函数,案例2.12 查询课程表中“信息技术”类课程信息,并计算平均报名人数。,USE XkGOSELECT*FROM CourseWHERE kind=信息技术Compute avg(willnum)GO,compute by子句 compute by子句对by后面给出的列进行分组显示,并计算该列的分组小计。在使用compute by之前必须先使用order by对compute by中指定的列进行排序,Select 字段From 表名Where 条件O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 Transact SQL 语言
链接地址:https://www.31ppt.com/p-5922829.html