sql server 数据查询命令

上传人:豆浆 文档编号:26270969 上传时间:2017-12-24 格式:PPT 页数:52 大小:254.50KB
返回 下载 相关 举报
sql server 数据查询命令_第1页
第1页 / 共52页
sql server 数据查询命令_第2页
第2页 / 共52页
sql server 数据查询命令_第3页
第3页 / 共52页
sql server 数据查询命令_第4页
第4页 / 共52页
sql server 数据查询命令_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《sql server 数据查询命令》由会员分享,可在线阅读,更多相关《sql server 数据查询命令(52页珍藏版)》请在金锄头文库上搜索。

1、1,第五章 数据查询,2,在本章中,我们学习如何通过SQL查询语句取出存储在数据库里的数据,这是关系型数据库一个极其重要的功能。,3,SQL是在关系数据库中定义、操纵数据的标准语言。通常分为4类:1、查询语言(SELECT)2、操纵语言(INSERT、UPDATE、DELETE)3、定义语言(CREATE、ALTER、DROP)4、控制语言(COMMIT、ROLLBACK),4,5.1 简单查询,SQL语言中最主要、最核心的部分是它的查询功能。在关系型数据库中,查询的含义是用来描述从数据库中获取数据和操纵数据的过程。查询操作既能从数据库中获得所需数据,又可以对表中数据进行操纵。,5,5.2 S

2、ELECT查询语句,SELECT语句,既可以完成简单的单表查询,也可以完成相当复杂的连接查询、嵌套查询和集合查询。,6,1.基本格式:SELECT DISTINCT ,. FROM ,. WHERE 条件表达式 GROUP BY 分组表达式 HAVING 分组条件表达式 ORDER BY 排序字段 ASC|DESC,5.2 SELECT查询语句,7,SELECT语句的基本组成是【SELECT】子句,【FROM】子句和【WHERE】子句。整个【SELECT】语句的含义是:根据WHERE子句的筛选条件表达式,从FROM子句指定的表中找出满足条件的记录,再按SELECT子句中指定的字段次序,选出记录

3、中的字段值构造一个显示结果集。GROUP BY:结果集按分组条件进行分组HAVING:满足条件的分组才可列出ORDER BY:结果集合按指定的字段值进行升降次序排列,8,Select 字段1,字段2,字段nFrom 表名,简单查询语句格式,9,背景资料,在查询中使用学生课程数据库数据库及其相关的表:学生表、课程表、成绩表、授课表、教师表、班级表、系部表和专业表。,10,本章所有的查询都要在查询分析器中完成;进入查询分析器的界面,在工具栏中,单击下拉列表框,选择要执行查询的数据库,如学生课程数据库。或者使用use关键字指定数据库;执行查询可使用F5或 ,执行结果显示方式可以使用 改变。查询完毕后

4、保存结果。,注意事项,11,对象浏览器的使用,在查询分析器中的工具菜单中将对象浏览器显示,这样在对象浏览器中我们可以随时查看数据库中都有那些表,以及这些表都有那些字段。,12,例5-1显示学生的学号和姓名。Use stu select 学号,姓名 from 学生表注意:在查询字段名称之间,要使用英文标点符号。 结果中字段显示的顺序就是Select后的字段排列顺序。,13,5.3 基于单个表的查询,一、查询指定的字段一般情况下,用户只对表中的一部分字段感兴趣,通过【SELECT】语句,就可以过滤掉某些字段,而只显示用户需要的信息。,14,例5-2查询所有教师的教师编号、姓名和职称信息。use s

5、tuselect 教师编号,姓名,职称from 教师表,15,1.查询全体学生及其班级代码。2.查询全体教师的姓名及其所学专业。3.查询全体教师的姓名、学历、职称和职务。4.查询全体课程的名称及其学分。5.查询全体系部的名称及其主任的名称。,课堂练习1,16,在【SELECT】语句中,可以使用通配符“*” 显示所有的字段。例5-3显示学生的所有信息 select * from 学生表 (*可以代表表中的所有列),二、通配符“*”的使用,17,6.显示教师的所有信息。7.显示教师任课表的所有信息。,课堂练习2,18,三、基于字段的表达式(为结果中的列指定别名),SELECT语句后面也可以是字段表

6、达式。例5-4显示所有教师再过5年以后的工龄use stu select 姓名,教龄+5 from 教师表,19,结果表的最后一列没有标题,因为在查询时使用的是表达式而不是学生表中的字段名。字段表达式不仅可以式算术表达式,还可以是字符串常量、函数等。如果在【教龄+5】表达式后,再增加一个字符串常量,则可以作为结果表的标题显示了,如下图。 注意:中间无逗号。,20,use stuselect 姓名,教龄+5 新工龄from 教师表 或use stuselect 姓名,教龄+5 as 新工龄 from 教师表,21,思考题,查询学生表中全体学生的姓名及年龄。(年龄的算法)用到的函数:getdate

7、(),year(),22,四、使用【DISTINCT】短语去掉重复的记录,【DISTINCT】短语能够从结果表中去掉重复的记录。例5-5a 列出学生的姓名,并要求去掉重复的姓名Use stu select distinct 姓名 from 学生表,23,例5-5b查找参加考试的学生的学号。select distinct 学号from 成绩表,24,限制返回行数,use 库名称select top n 字段名称From 表名称如果按照比例返回结果,可以使用top n percent例如:use stuselect top 50 percent *from 学生表,25,五、用【WHERE】子句过

8、滤记录,SQL是一种集合处理语言,所以数据修改及数据检索语句会对表中所有记录(行)起作用,除非使用【WHERE】子句来限制查询的范围。大多数情况下我们不需要系统返回所有的记录,尤其对于比较大的表来说。比如成绩表中有所有学生的成绩,但我们可能只是需要某一位同学的成绩。这时要采用where字句来过滤出所需要的行。,26,注意,【WHERE】子句必须紧跟在【FROM】子句之后。基本格式:SELECT FROM WHERE ,27,1关系运算符,【WHERE】子句常用的关系查询条件如下表:,28,【WHERE】子句常用的逻辑查询条件如下表:,2.逻辑运算符,29,3.特殊运算符,30,关于关系运算符的

9、两点说明:1)关系运算符用于字符性数据之间比较,是对字符的ASC码值进行比较。2)字符串的比较是从左向右依次进行的。,31,例5-6查询成绩表中成绩大于60分的记录。Select * from 成绩表where 成绩60,32,例5-7查询学生表中女同学的记录 Select * from 学生表where 性别=女,33,例5-8从学生表中查找姓名为“石建明”同学的学号,姓名,性别和班级代码。Select 学号,姓名,性别,班级代码from 学生表Where 姓名=石建明,34,例5-10 列出年龄不是19岁的学生的记录select 学号,姓名,性别,年龄from 学生表where 年龄19或

10、者:select 学号,姓名,性别,年龄from 学生表where 年龄!=19,35,例5-11 列出成绩在80分以上的同学的学号和成绩Select distinct 学号,成绩From 成绩表,36,7.查找教工号是t002的教师的姓名,性别和职称。8.从学生表中查找班级代码是b1班的学生记录。9.查找班级人数小于50人的班级名称(如果班级表无班级人数字段,则新增该字段,并添加其值,然后再查询)。10.查找出生日期在1990-9-1以后所有学生的学号,姓名,出生日期和家庭住址。,课堂练习3,37,select 教师姓名,性别,联系电话from 教师表where 教工号=04001selec

11、t *from 教师表Where 教龄10,38,逻辑表达式,当where字句中的条件多于一个的时候,要使用逻辑连接词将条件进行连接,通常使用and和or。,39,例5-12查找班级编号为b001班的所有男同学的学号,姓名,班级代码。Select 学号,姓名,班级代码From 学生表Where 班级编号=b001 and 性别=男,40,例5-12查找教龄大于10年或者职称是教授的所有教师的详细信息。Select *From 教师表Where 教龄10 or 职称=教授,41,11.在教师表中查询教龄大于10年的男教师的记录。12.查找b2班女同学的记录。13.在教师表中查找学历是研究生的或者

12、职称是高级讲师的教师的记录。14.在课程表中查找学分大于4学分的课程记录。,课堂练习4,42,5特殊运算符的使用,例5-12 查询出生日期在1989到1993年之间的学生的学号,姓名和出生日期select学号,姓名,出生日期from 学生表where year(出生日期) between 1989 and 1993,43,例5-13在班级表中查找班级人数在35到45人之间的班级名称及人数。,44,14.查找工资在1000到1500元的所有教师的详细信息。15.查询学生成绩在60到80之间的学生成绩信息。,课堂练习,45,例5-14 查询学生表中出生日期没有值的记录主要学习IS NULL的用法。

13、select *from 学生表where 出生日期 is null,46,16. 在学生表中查找班级代码为空值的学生记录。17.在学生表中查找班级代码不为空值的学生记录。,课堂练习,47,本例主要学习【IN短语】的表达式的用法,【IN短语】的作用类似与逻辑“或”,但它有时比“或”用法更加灵活。例5-15 查找所有从呼市一中和呼市二中毕业的学生的学号、姓名和高中毕业院校。,48,select 学号,姓名,高中毕业院校from 学生表Where 高中毕业院校 in (呼市一中,呼市二中)或者是:select 学号,姓名,高中毕业院校from 学生表Where 高中毕业院校=呼市一中 or 高中毕

14、业院校=呼市二中,49,18.查询成绩为62、65、66的学生成绩信息。,课堂练习,50,例5-16查找所有不是从呼市一中和呼市二中毕业的学生的学号、姓名和毕业院校。select 学号,姓名,高中毕业院校from 学生表Where 高中毕业院校 not in (呼市一中,呼市二中),51,例5-17查找所有姓“高”的老师的详细信息。本例主要学习通配符“LIKE, %”用法注意:通配符必须和“LIKE”同时使用select *from 教师表where 教师姓名 like 高%,52,20.查找所有姓张的同学的详细信息。21.查询所有姓李的老师信息。22.查找名字当中第二个字是“燕”字的学生的学号、姓名和出生日期。23.查找姓名是“韩?成”的老师的所有信息。,课堂练习,53,再见,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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