数据库原理与应用 第6章 数据查询

上传人:E**** 文档编号:89411931 上传时间:2019-05-24 格式:PPT 页数:138 大小:379.50KB
返回 下载 相关 举报
数据库原理与应用 第6章 数据查询_第1页
第1页 / 共138页
数据库原理与应用 第6章 数据查询_第2页
第2页 / 共138页
数据库原理与应用 第6章 数据查询_第3页
第3页 / 共138页
数据库原理与应用 第6章 数据查询_第4页
第4页 / 共138页
数据库原理与应用 第6章 数据查询_第5页
第5页 / 共138页
点击查看更多>>
资源描述

《数据库原理与应用 第6章 数据查询》由会员分享,可在线阅读,更多相关《数据库原理与应用 第6章 数据查询(138页珍藏版)》请在金锄头文库上搜索。

1、第六章 数据查询,【本章导读】,本章主要讲解SQL Server 2005的数据查询功能。SELECT语句具有强大的查询功能,有的用户甚至只需要熟练掌握SELECT语句的一部分,就可以轻松地利用数据库来完成自己的工作。,【本章要点】,基于单表的简单查询 基于多表的连接查询 操作结果集 子查询的建立和使用 视图的创建、修改和删除,第六章 数据查询,6.1 T-SQL简单查询 6.2 T-SQL高级查询 6.3 视图 本章小结 习题六,6.1 Transact-SQL 简单查询,6.1 Transact-SQL 简单查询,6.1.1 最简单的SELECT语句 6.1.2 带条件的查询 6.1.3

2、模糊查询 6.1.4 函数的使用 6.1.5 查询结果排序 6.1.6 使用分组,6.1 Transact-SQL简单查询,数据查询是数据库系统使用频率最高的一项操作 SQL只用SELECT就能完成各种查询,1.SELECT语句的常规使用方式,SELECT 列名1, 列名2, 列名n FROM 表名 各个列的先后顺序可以根据需要而定,【例6-1】查询Student表中学生的学号、姓名和年龄。 use Study go select sno, sname, sage from Student go,2用“*”表示表中所有的列,SELECT * FROM 表名 【例6-2】查看Student表中的

3、所有学生的信息。 use Study go select * from Student go,3无数据源检索,(1)使用SELECT语句查看常量。 【例6-3】显示常量。 select sql server 6.5 select sql server 7.0 go,3无数据源检索,(2)使用SELECT语句查看全局变量。 【例6-4】 查询本地SQL Server服务器的版本信息。 select version go 【例6-5】查询本地SQL Server服务器使用的语言。 select language go,4.使用TOP关键字,SELECT TOP n | TOP n PERCENT

4、列名1,列名2 FROM 表名 说明: (1)TOP n:表示返回最前面的n行数据,n表示返回的行数。 (2)TOP n PERCENT:表示返回的前面的百分之n行数据。,【例6-6】从Study数据库的Student表中返回前10行数据。 use Study go select top 10 * from Student go,【例6-7】 从Study数据库的Student表中返回前10%的数据。 use Study go select top 10 percent * from Student go,5. 消除取值重复的行,SELECT DISTINCT 列名1,列名2 FROM 表名,

5、【例6-8】查询所有学生所在的院系名称。 use Study go select depart from Student go,【例6-9】查询所有学生所在的院系名称(要求重复信息只输出一次)。 use Study go select distinct depart from Student go,【例6-10】查询各院系学生分布的系和班级。 use Study go select distinct depart, class from Student go,6.使用计算列计算列没有列名,【例6-11】将Score表中各门课程的成绩提高10%。 use Study go select sno,

6、 cno, degree,degree+degree* 0.1 from Score go,【例6-12】查询学生的学号和姓名,并将其在一列中显示,学号和姓名以-分隔。 use Study go select sno+ - +sname from Student go,7.操作查询的列名,(1)采用符合ANSI规则的标准方法,在列表达式后面给出列名。 (2)用“=”来连接列表达式。 (3)用AS关键字来连接列表达式和指定的列名。,【例6-13】将Score表中各门课程的成绩提高10%,并以“调整后成绩”作为新成绩的列名。 use Study go select sno 学号, cno 课程号,

7、 degree 原始成绩, degree+degree* 0.1 调整后成绩 from Score go,(2)用“=”来连接列表达式。 use Study go select 学号=sno, 课程号=cno, 原始成绩=degree, 调整后成绩=degree+degree* 0.1 from Score go,(3)用AS关键字来连接列表达式和指定的列名。 use Study go select sno as 学号, cno as 课程号, degree as 原始成绩, degree+degree* 0.1 as 调整后成绩 from Score go,6.1.2 带条件的查询,带条件的

8、查询格式:,语法格式如下: SELECT 列名1, 列名2, 列名n FROM 表名 WHERE 条件,1使用算术表达式,格式为:表达式 算术操作符 表达式 (1)表达式: 常量、变量和列表达式的任意有效组合 (2)算术操作符: 等于=,大于,小于=,小于等于,不大于!,不小于!,【例6-14】查询成绩表中成绩提高10%后达到优秀的信息。 use Study go select sno 学号, cno 课程号, degree 原始成绩,degree+degree* 0.1 调整后成绩 from Score where degree+degree* 0.1=85 g,2使用逻辑表达式,(1)NO

9、T:对条件的否定 (2)AND:多个条件都成立 (3)OR:要求有一个条件成立 三种运算的优先级关系为:NOTANDOR,可以通过括号改变其优先级关系。 在T-SQL 中逻辑表达式共有三种可能的结果值,分别是TRUE、FALSE和 UNKNOWN。UNKNOWN 是由值为NULL的数据参与逻辑运算得出的结果。,AND运算情况,OR运算情况,NOT运算情况,【例6-15】查询信息系所有男生的信息。 use Study go select * from Student where ssex=男 and depart=信息系 go,3使用BETWEEN关键字,格式: 表达式 NOT BETWEEN

10、表达式1 AND 表达式2,【例6-16】查询Student表中年龄在18-20之间的学生姓名。 use Study go select sname as 姓名 from Student where sage between 18 and 20 go,where sage=18 and sage= 20,【例6-17】查询学生表中年龄小于18和年龄大于20的学生的姓名。 use Study go select sname as 姓名 from Student where sage20 go,where sage not between 18 and 20,4使用 IN 关键字,格式: 表达式

11、NOT IN (表达式1,表达式2),【例6-18】查询信息系、土木系和经济系的学生的信息。 use Study go select * from Student where depart IN (信息系, 土木系, 经济系) go,where depart=信息系 or depart=土木系 or depart=经济系,【例6-19】查询所有不在上述三个系中的学生的信息。 use Study go select * from Student where depart NOT IN (信息系, 土木系, 经济系) go,where depart!=信息系 and depart!=土木系 and

12、 depart!=经济系,5空值处理,使用谓词IS NULL或IS NOT NULL,并且IS NULL不能用= NULL代替,【例6-20】查询Score表中成绩为空的学生的信息。 use Study go select * from Score where degree IS NULL go,6.1.3 模糊查询,语法格式为: 表达式 NOT LIKE 模式表达式,1通配符的使用,%(百分号): 表示从0n个任意字符。 _(下划线):表示单个的任意字符。 (封闭方括号):表示方括号中列出的任意一个字符。 :任意一个没有在方括号里列出的字符。,% (百分号): 代表任意长度(长度可以为0)的

13、字符串 例:a%b表示以a开头,以b结尾的任意长度 的字符串。 如acb,addgb,ab 等都满足该匹配串,【例6-21】查询所有姓“李”的学生信息。 use Study go select * from Student where sname like 李% go,_ (下横线): 代表任意单个字符或汉字 例: a_b表示以a开头,以b结尾的长度为3的任意字符串 如acb,afb等都满足该匹配串,【例6-22】查询所有学号以“06”开头,第四位是“7”的学生的信息。 use Study go select * from Student where sno like 06_7% go, (封

14、闭方括号): 表示方括号中列出的任意一个字符。,【例6-23】查询所有学号以“06”开头,第四位是8,9的学生的信息。 use Study go select * from student where sno like 06_8,9% go, : 任意一个没有在方括号里列出的字符。,【例6-24】查询所有学号第二位取1-7,第四位不是3,的学生的信息。 use Study go select * from Student where sno like _1-7_3-5% go,2转义字符的使用,特殊情况: 当用户要查询的字符串本身就含有 % 或 _ 时,要 使用ESCAPE 换码字符 短语对通

15、配符进行转义。 假设有一个表X,列col的值如下: xyz %xyz x_yz xyzw,【例6-25】在X表中查找以“%”开头的字符串。 select col from X where col like t% escape t,6.1.4 函数的使用,1常用统计函数,2与统计函数一起使用 WHERE子句,【例6-27】查询信息系学生的平均年龄。 use Study go select avg(sage) 平均年龄 from Student where depart= 信息系 go,3与统计函数一起使用DISTINCT关键字,【例6-28】 查询学生所在院系的数量。 use Study go select count(distinct depart) from Student go,6.1.5 查询结果排序,使用ORDER BY子句 (1)可以按一个或多个属性列排序 (2)升序:ASC;降序:DESC;缺省值为升序,当排序列含空值时 (1)ASC:排序列为空值的元组最先显示 (2)DESC:排序列为空值的元组最后显示,【例6-29】查询Score表中学生的成绩信息,并按成绩升序排列。 use Study go select * from Score order by degree go,【例6-30】

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号