关系数据库语言sql知识介绍

上传人:F****n 文档编号:95496887 上传时间:2019-08-19 格式:PPT 页数:124 大小:612.50KB
返回 下载 相关 举报
关系数据库语言sql知识介绍_第1页
第1页 / 共124页
关系数据库语言sql知识介绍_第2页
第2页 / 共124页
关系数据库语言sql知识介绍_第3页
第3页 / 共124页
关系数据库语言sql知识介绍_第4页
第4页 / 共124页
关系数据库语言sql知识介绍_第5页
第5页 / 共124页
点击查看更多>>
资源描述

《关系数据库语言sql知识介绍》由会员分享,可在线阅读,更多相关《关系数据库语言sql知识介绍(124页珍藏版)》请在金锄头文库上搜索。

1、2019/8/19,1,四 关系数据库语言SQL,4.1查询语句 4.2数据更新 4.3数据定义,学习目标:能够熟练掌握SQL语言并能够在实际工作中进行灵活的应用。,2019/8/19,2,SQL是结构化查询语言(Structured Query Language)的缩写,美国国家标准局ANSI在1986年将SQL作为关系数据库系统的标准语言,后被国际标准化组织(ISO)采纳为国际标准。现在很多大型数据库都实现了SQL语言。,SQL概述,2019/8/19,3,SQL和SQL SERVER的区别,SQL(structured query language) 结构化查询语言。 它是一种标准,不是

2、一种软件 SQL SERVER是数据库管理系统的一种 它是一种软件,这种软件在遵循SQL这种标准,很多数据库管理软件及开发工具都支持SQL这种标准。,2019/8/19,4,SQL语言的特点,SQL语言的特点,1. 综合统一 2. 高度非过程化 3. 面向集合的操作方式 4. 以同一种语法结构提供两种使用方法 5. 语言简洁,易学易用,2019/8/19,5,2019/8/19,6,SQL语句的书写准则,对大小写不敏感 一条语句可以写成一行或多行 关键字不能在行与行之间分开 数据项例如属性项、表、视图项等同时列出时,分隔符用逗号;字符或字符串常量要用单引号定界。,2019/8/19,7,基本操

3、作对象,基本表:本身独立存在的表,SQL中一个关系就对应一个表;一个表对应一个存储文件;一个表可以带若干索引。 视图:从一个或几个基本表中导出的表,本身不独立存放在数据库中,数据库只存储视图的定义,视图相当于一个虚表,用户可以在视图上在定义视图。 索引:为快速访问数据,而在包含数据的表中增加的一种组织,分为聚簇索引和非聚簇索引。,指索引项的顺序与表中记录的物理顺序一致的索引组织,例如:人事档案(员工姓名、地址、电话号码、 社会安全号、工资) 其中只有姓名、地址、电话号码是公开信息。可 以生成不包含社会安全号和工资的视图,对表和 视图设置不同的权限,2019/8/19,8,4.1 查询语句,4.

4、1.1 基本查询 4.1.2 使用列表达式 4.1.3 WHERE从句的进一步使用 4.1.4 数据汇总 4.1.5 连接查询 4.1.6 嵌套查询 4.1.7 联合查询 4.1.8 使用系统内置函数的查询,2019/8/19,9,SQL的核心是数据查询。对于数据库的查询操作是通过 SELECT 查询命令实现的,它的基本形式由 SELECTFROMWHERE 查询块组成,多个查询块可以嵌套执行。,2019/8/19,10,语句格式 SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC ;,指定要显示的属性列,指

5、定查询对象,指定查询条件,查询结果按指定列的值分组,筛选出只有满足指定条件的组,对查询结果表按指列值的升序或降序排序,2019/8/19,11,4.1.1 基本查询,1、 简单的无条件查询,例:Select * from stu_info,把stu_info表中的所有记录的所有属性查询出来,2019/8/19,12,SELECT * FROM STU_INFO WHERE XSH=06,4.1.1 基本查询,2、简单的条件查询 例4.2:从edu_d的数据库表stu_info中查找包含所有列的土建学院(学院代号xsh为06)的学生名单。,字符或字符串用单引号引起来,相当于选择运算,2019/8

6、/19,13,例4.3:从数据库EDU_INFO中查询土建学院(XSH=06)的学生的学号、姓名、性别、学院代号信息。,SELECT XH,XM,XBM,XSH FROM STU_INFO WHERE XSH=06,3、查询语句中投影运算的实现,2019/8/19,14,4.1.2使用列表达式,查询指定的列,除了可以使用*或者属性列表以外,还可以使用列表达式。,SELECT XH,KCH,JSH,150成绩=KSCJ*1.50 FROM XK,利用列表达式实现不同列的连接,例4.5 SELECT 学号, XH, XM + XSH, BH FROM STU_INFO WHERE XBM=男 OR

7、DER BY XH DESC,在SQL Server 2000系统的企业管理器中运行后系统自动将语句的写法改成了: SELECT 学号 AS EXPR1, XH, XM + XSH AS EXPR2, BH FROM STU_INFO WHERE (XBM=男) ORDER BY XH DESC,2019/8/19,16,注意:更改的是查询结果显示的列标题,这是列的别名,而不是更改了数据库表或视图的列标题 。,2、修改查询结果的列标题,例如:改写例4.5 SELECT XH AS 学号, XM + XSH AS 姓名和学院代码, BH AS 班级 FROM STU_INFO WHERE XBM

8、 = 男 ORDER BY XH DESC,2019/8/19,17,另一种形式: SELECT 学号=XH, 姓名和学院代码=XM + XSH, 班级=BH FROM STU_INFO WHERE XBM = 男 ORDER BY XH DESC,注意:当自定义的列标题中含有空格时,必须用引号将标题括起来。,2019/8/19,18,采用别名的目的: 数据库表中的列名用英文字母表示更方便,但是为了在查询时,让用户看到的结果更直观,所以可以采用中文别名。,2019/8/19,19,查询工作的关键就在通过分析怎样把实际问题中的自然语言描述转化为 1)从哪个表中查询 即:from 后的一项 2)要

9、查询哪些列 即:select 后的一项 3) 要查询的条件 即: where 后的一项,完成查询工作的三个关键步骤,第3步最复杂,4.1.3WHERE从句的进一步使用,WHERE从句中,可以使用一个或者多个逻辑表达式限制查询数据的范围。,表4-1 常用查询条件一览表,2019/8/19,21,1、表达式比较,例如: SELECT * FROM XK WHERE KSCJ60,SELECT XH 学号,KCH 课程号,KSCJ 成绩 FROM XK WHERE KSCJ BETWEEN 60 AND 70,2019/8/19,22,3、确定集合,例4.7:查询应电0601、机专0601班的学生的

10、信息,SELECT 学号,姓名,班级 FROM mingdan WHERE 班级 IN( 应电0601,机专0601),当与指定的值表中的任何一个匹配时,返回TRUE,否则返回FALSE,2019/8/19,23,4、字符匹配,用NOT LIKE 和 LIKE与通配符%和_搭配,其运算对象可以是CHAR,VARCHAR,TEXT,NTEXT,DATETIME和SMALLDATETIME类型的数据。,表示任意长度的字符串,表示人一单个字符,例如: 1、SELECT * FROM mingdan WHERE 班级 LIKE 应% 2、SELECT * FROM mingdan WHERE 姓名 L

11、IKE _红,2019/8/19,24,5、涉及空值的查询,例如:SELECT * FROM mingdan WHERE 班级 IS NULL,6、多重条件查询,例如:SELECT * FROM mingdan WHERE 班级 LIKE 应% AND 姓名 LIKE %红,2019/8/19,25,一般格式:,SELECT 列名1,列名2, FROM 表名 WHERE 条件表达式 ORDER BY 列名1 ASC | DESC ,列名2ASC | DESC,升序(默认),降序,4.1.4、设定排序条件,2019/8/19,26,例4.4 :从数据库EDU_D的表STU_INFO中查询建980

12、9班学生情况并按学号排序。,SELECT * FROM STU_INFO WHERE BH=建9809 ORDER BY XH,SELECT * FROM STU_INFO WHERE BH=建9809 ORDER BY ZYH,XH DESC,按多列排序:,先按专业升序排列,然后同一专业的记录按学号进行降序排列,注意: (1)ORDER BY 子句不改变基本表中行或者列的顺序,只改变查询结果的排列顺序。 (2)ORDER BY子句制定排序的列必须出现在SELECT子句的列表达式中。 (3)排序是查询语句的最后一步工作,所以要把ORDER BY子句一般放在查询语句的最后。,2019/8/19,

13、28,在要查询的属性名前加DISTINCT,以去掉结果中重复的值。,例:SELECT DISTINCT 班级 FROM mingdan,注意: 在一个SELECT语句中,DISTINCT只能出现一次,并且DISTINCT必须写在所有列名之前 。,5、限定重复记录,2019/8/19,29,4.1.4数据汇总,1、聚合函数,表4-2聚合函数一览表,表示去掉结果中的重复行,指定ALL选项或不指定则表示保留重复行,2019/8/19,30,例4.8:查询学生总数 SELECT COUNT(*) AS 学生数 FROM mingdan 或者 SELECT COUNT(XH) FROM mingdan,

14、例4.9:已知XK中高等数学的代号是090101,查询学生选修高等数学的平均成绩 SELECT AVG(KSCJ) AS 高等数学平均成绩 FROM XK WHERE KCH=090101,因为XH是该表的主键,不允许有空值,查询每个班的学生人数?,2019/8/19,31,例4.10:查询学生选修高等数学的最高分和最低分 SELECT MAX(KSCJ) AS 高等数学最高分, MIN(KSCJ) AS 高等数学最低分 FROM XK WHERE KCH=090101,注意:在查询中,除COUNT(*)外,所有的聚合函数都不包括取值为空的行。,2019/8/19,32,2、GROUP BY子

15、句,GROUP BY子句用于对表或视图中数据的查询结果按某一列或多列值分组,值相等的分为一组,2、GROUP BY子句,例4.11:在表mingdan中查询各班的学生人数,SELECT 班级,COUNT(XH) AS 人数 FROM mingdan GROUP BY 班级,注意: SELECT子句的列表中只能包含在GROUP BY中指出的列或在聚合函数中指定的列。,GROUP BY子句用于对表或视图中数据的查询结果按某一列或多列值分组,值相等的分为一组,2019/8/19,33,2、GROUP BY子句,举例:从表stu中统计xsh=0015中男生和女生的人数,Select count(*)

16、from stu where xsh=0015 group by xb,还可以按多个字段分组,思考:统计每个学院的男生和女生的人数?,2019/8/19,34,例4.12:在表STU_INFO上产生一个结果集,包括每个专业的男生、女生人数。 SELECT ZYH,XBM,COUNT(*) AS 人数 FROM STU_INFO GROUP BY ZYH,XBM,2019/8/19,35,3、HAVING短语,HAVING 短语指定组或聚合的条件。只有满足条件的组才被选出来,HAVING通常与GROUP BY子句一起使用。(注意与WHERE子句区分),SELECT XH, COUNT(*); FROM XK; GROUP BY XH; HAVING COUNT(*) 3,例4.15查询选修了3门以上课程的学生及选课数:,2019/8/19,36,例4.16:只查询选修了3门

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

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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