资源预览内容
第1页 / 共89页
第2页 / 共89页
第3页 / 共89页
第4页 / 共89页
第5页 / 共89页
第6页 / 共89页
第7页 / 共89页
第8页 / 共89页
第9页 / 共89页
第10页 / 共89页
亲,该文档总共89页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Select语句查询 SELECT 字段列表 FROM 数据源 WHERE 条件表达式 GROUP BY 分组表达式 HAVING 搜索表达式 ORDER BY 排序表达式ASC|DESC SELECT语句的语法结构为: SELECT 字段列表 FROM 数据源WHERE 条件表达式 ORDER BY 排序表达式ASC|DESC Compute 聚合函数 by 要分组显示的列名例如:按类别显示课程信息,并计算每类课程的平均报 名人数。 GROUP BY子句在被定义的数据的基础上建立比较小的组,即按照分组表达式对某一列或多列的数据进行分 组,将数据值相同的分为一组,并且对每一个组进行聚合 函数计算。换句话说,它产生每一组的总体信息。 GROUP BYGROUP 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语言Transact-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、ALTER 、DROP等语句来完成。数据操纵语言(DML) 数据操纵语言是指用来查询、添加、修改和删除数据库中数据的语句,这些 语句包括SELECT、INSERT、UPDATE、DELETE等。数据控制语言(DCL) 数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句 包括GRANT、DENY、REVOKE等语句,2.2 查询与统计数据SELECT 语句 用来检索和显示满足特定条件的数据select 在查询结果中要显示的列的名字from 要显示数据的表的名字where 要检索数据的条件选择所有列select *案例2.1 在student表中查询学号为“000000001”同学的学号和姓名。使用星号或列名stuno stuname分析:1. 识别要查询的数据库 XL2.识别数据库中所需要的表student3.识别所需的表中的字段stuno、stunameUSE Xk GO SELECT StuNo,StuName FROM Student WHERE StuNo=00000001 GO案例2.2 从课程表(course)中查询课程类别,要求清除值相同的那些行。使用distinct消除重复值分析:1. 识别要查询的数据库 XL2.识别数据库中所需要的表Course3.识别所需的表中的字段KindUSE Xk GO -消除Kind列值都相同的那些重复行 SELECT DISTINCT Kind FROM Course GO -消除Kind列和Credit列值都相同的那些重复行 SELECT DISTINCT Kind,Credit FROM 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. 识别要查询的数据库 XL2.识别数据库中所需要的表student3.识别所需的表中的字段所有列USE Xk GO SELECT TOP 6 * FROM Student GO改变查询结果列的标题 用户定义的列标题可以代替默认的列标题, 有三种方法:1.使用等号“=”将用户定义列标题放在默认 列名字之前。 2.用户定义列标题放在默认列标题名字之后 。 3.使用AS关键字案例2.4 查询课程表course中课程编号、课程名称、教师、上课时间、限制选课人数和报名人数,要求结 果显示如下:课程 编号课程 名称教师 上课 时间限制选 课人数报名人数1. 识别要查询的数据库 XK2.识别数据库中所需要的表Course3.识别所需的表中的字段-方法1,在查询窗口中执行如下SQL语句: USE Xk GO SELECT 课程编码=CouNo,课程名称=CouName,教师 =Teacher,上课时间=SchoolTime, 限制选课人数=LimitNum,报名人数=WillNum FROM Course GO-方法2,在查询窗口中执行如下SQL语句: USE Xk GO SELECT CouNo 课程编号,CouName 课程名称,Teacher 教师, SchoolTime 上课时间,LimitNum 限制选课人数, WillNum 报名 人数 FROM Course GO-方法3,在查询窗口中执行如下SQL语句: USE Xk GO SELECT CouNo AS 课程编号,CouName AS 课程名称, Teacher AS 教师,SchoolTime AS 上课时间, LimitNum AS 限制选课人数, WillNum AS 报名人数 FROM Course GO使用where限制查询条件 在where子句中,可以包含比较运算符、 逻辑运算符、范围运算符。逻辑运算符 OR 当任何一个指定查找条件是真时返回结果 AND 当所有指定的查找条件是真时返回结果 NOT 否定其后的表达式范围运算符范围围运算符 描 述 Betweenand 范围围在二者之间间 Not between.and 范围围不在二者之间间案例2.5 在课程表中查询课程类别为“信息技术”而且 学分为2的课程信息。USE Xk GO SELECT * FROM Course WHERE Kind=信息技术 AND Credit=2 GO表达式作为查询列 在select子句中的选项列表可以为表达式或指 定的列的列表,表达式可以是列名、函数或常数的 列表。案例2.6 查询课程表中最小的报名人数、最大的报名人 数和平均报名人数。分析: 可以使用max、min、avg函数1. 识别要查询的数据库 XK2.识别数据库中所需要的表Course3.识别所需的表中的字段willnumUSE Xk GO SELECT 最小的报名人数=MIN(WillNum),最大的报名 人数=MAX(WillNum),平均报名人数=AVG(WillNum) FROM Course GO使用order by子句重新排序查询结果 ORDER BY 子句在select 语句中使用order by 子句,以指定 顺序检索和显示数据。select 字段from 指定所在表名order by 指定要排序的列、相关列号或表达式asc / desc 指定按递增/递减顺序对指定列的值进 行排序。案例2.7 查询课程信息、报名人数与限选人数之比。要 求查询结果按照报名人数升序排列。分析: 使用表达式作为查询列1. 识别要查询的数据库 XK2.识别数据库中所需要的表Course3.识别所需的表中的字段willnum/limitnum-(1)ORDER BY后面为列名 USE Xk GO SELECT *,WillNum/LimitNum 报名人数与限选人数之比 FROM Course ORDER BY WillNum GO-(2)ORDER BY后面为中文标题 USE Xk GO SELECT *,WillNum/LimitNum 报名人数与限选人数之比 FROM Course ORDER BY 报名人数与限选人数之比 GO使用in子句给出列值范围 列表运算符 描 述in (列表) 值值在列表之内Not in (列表) 值值不在列表之内案例2.7 查询课程编号为“004”、“007”、“013”的课程 信息。 USE Xk GO SELECT * FROM Course WHERE CouNo=004 OR CouNo=007 OR CouNo=013 GO-使用IN关键字的SQL语句如下: USE Xk GO SELECT * FROM Course WHERE CouNo IN(004,007,013) GO-(1)ORDER BY后面为列名 USE Xk GO SELECT *,WillNum/LimitNum 报名人数与限选人数之比 FROM Course ORDER BY WillNum GO-(2)ORDER BY后面为中文标题 USE Xk GO SELECT *,WillNum/LimitNum 报名人数与限选人数之比 FROM Course ORDER BY 报名人数与限选人数之比 GO使用like实现模糊查询 通配符 描 述% 表示有0个或多个字符的串-表示单单个字符 表示指定范围围内的任意单单个字符表示不在指定范围围内的任意单单个字符串运算符like与通配符案例2.8 查询课程名以字母D开始的课程信息USE Xk GO SELECT * FROM Course WHERE CouName LIKE D% GOUSE Xk GO SELECT * FROM Student WHERE StuName LIKE _宝% GO案例2.9 查询第二个字为“宝”的学生信息案例2.10 查询不姓“刘”的学生信息-使用 USE Xk GO SELECT * FROM Student WHERE StuName LIKE 刘% GO-使用NOT LIKE USE Xk GO SELECT * FROM Student WHERE StuName NOT LIKE 刘% GO使用is null 查询指定列表未输入值的 数据行 IS NULL 和 IS NOT NULL关键字null是一个未知值,或者是以给还没有提供 数据的值。每当null值与任何其他值进行比较时 (使用比较
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号