-结构化查询语言SQL.

上传人:我** 文档编号:117888692 上传时间:2019-12-11 格式:PPT 页数:114 大小:1.43MB
返回 下载 相关 举报
-结构化查询语言SQL._第1页
第1页 / 共114页
-结构化查询语言SQL._第2页
第2页 / 共114页
-结构化查询语言SQL._第3页
第3页 / 共114页
-结构化查询语言SQL._第4页
第4页 / 共114页
-结构化查询语言SQL._第5页
第5页 / 共114页
点击查看更多>>
资源描述

《-结构化查询语言SQL.》由会员分享,可在线阅读,更多相关《-结构化查询语言SQL.(114页珍藏版)》请在金锄头文库上搜索。

1、结构化查询语言SQL 8.1 SQL的概述 SQL:结构化查询语言,全称为Structured Query Language。 (1)主要特点 vSQL是一种一体化的语言; vSQL语言是一种高度非过程化的语言; vSQL语言非常简洁; vSQL语言可以直接以命令方式交互使用,也可以嵌入到 程序设计语言中以程序方式使用。 (2)功能 数据查询 : select 数据定义 : create 、drop、 alter 数据操纵 : insert、 update、 delete 数据控制 : grant、 revoke 8.1 SQL的概述 SQL功能命令动词 数据查询Select 数据操作插入记录

2、Insert 更新记录Update 删除记录Delete 数据定义定义基本表或索引Create 删除基本表或索引Drop 修改基本表或索引Alter 数据控制授权Grant 收回权限Revoke (3)SQL语言的9个命令动词: “学生管理”数据库 8.2 数据查询 一、基本查询 二、排序查询 三、计算与分组查询 四、带特殊运算符的条件查询 五、利用空值查询 六、嵌套查询 七、别名与自联接查询 八、超联接查询 九、集合的并运算 十、查询中的几个特殊选项 8.2 数据查询 SQL SELECT 查询命令的格式: SELECT ALL | DISTINCTTOP PERCENT.AS ; ,AS

3、; FROM ,; INNER | LEFT | RIGHT | FULL JOIN ; ON ; INTO TABLE | TO FILE | TO PRINTER | TO SCREEN; WHERE AND ; AND | OR AND | OR; GROUP BY ,HAVING ; ORDER BY ASC | DESC,ASC | DESC SQL SELECT命令看上去非常复杂,但常用的只有6个子句:SELECT 、FROM、WHERE、GROUP BY、HAVING、ORDER BY。 8.2 数据查询 1SELECT 短语:用于说明要查询的数据。 2FROM 短语:用于说明要

4、查询的数据来自哪个或哪些表,可对 单个表或多个表进行查询。 3WHERE 短语:用于说明查询条件;如果是多表查询还可通过该 子句指明表与表之间的联接条件,进行联接。 4GROUP BY 短语:用于对查询进行分组,可利用它进行分组汇 总。 5HAVING 短语:跟随在GROUP BY 之后使用,它是用来限定分组 ,要求只有满足分组条件的记录才能进行分组查询。 6ORDER BY 短语:用于对查询的结果进行排序。 7AS短语:用于指定查询结果中字段的新名称;AS前的表达式可 以是一个字段名、表达式、函数等。 8DISTINCT短语:用于说明该短语将在查询结果中去掉重复值。 9INTO TABLE短

5、语:用于说明查询结果保存何处。 8.2 数据查询 常用的SQL SELECT 语句包含4个部分: SELECT ALL | DISTINCT; FROM ; WHERE AND; GROUP BY HAVING; ORDER BY ASC | DESC 8.2 数据查询 Select ALL|DISTINCT From 数据源 Where 查询条件 Group by 分组关键字 Having 组提取条件 Order by 排序关键字ASC/DESC To file文件名|into 目标|to printer|to screen 目标:into dbf into array into curso

6、r 8.2 数据查询 8.2.1基本查询 SQL基本形式: SELECT FROM WHERE 字段名表名 查询条件 8.2 数据查询 1.单表查询 (1)单表无条件查询:SELECT FROM Eg1:查询学生的全部信息。 select * from 学生信息 Eg2:查询每个学生的学号与姓名。 select 学号,姓名 from 学生信息 8.2 数据查询 Eg3:显示表中所有专业 select 专业 from 学生信息; select distinct 专业 from 学生信息 DISTINCT短语的作用是 去掉查询结果中的重复值 8.2 数据查询 Ex1:将student表中的专业信息

7、检索出来。 Ex2:将student表中的专业信息检索出来,并去掉重复 元组。 Ex3:从student表中检索出学生的学号、姓名、专业信 息。 Ex4:查询score表中的所有信息。 方法一:select 学号 ,课程编号,成绩 from score 方法二: select 专业 from student select distinct 专业 from student select 学号 ,姓名,专业 from student select * from score 投影 8.2 数据查询 注意: Select 对应于投影投影操作 去掉重复元组 distinct 所有属性 *, Select

8、后多字段名之间 8.2 数据查询 (2)单表条件查询:SELECT FROM WHERE Eg1:检索学生成绩表中计算机成绩高于80分的所有记 录。 SELECT * FROM 学生成绩 WHERE 计算机80 Eg2:从score表中检索出选修了课程编号为“02”的 ,并且成绩大于80分的成绩信息。 select * from score; where 课程编号=02 and 成绩80 投影选择 8.2 数据查询 Eg3:查询student表中所有男同学所学专业。 Eg4:从学生成绩表中检索出平均分大于80分的成绩 信息。 select * from 学生成绩; Where (英语+计算机+

9、大学语文+政治)/4 80 select distinct 专业 from student; where 性别=“男” 8.2 数据查询 Eg5:检索出选修了课程编号为“02”或“05”的,并 且成绩大于80分的成绩信息。 Ex1:从student表中检索出性别为“男”且入学时间 为1996年9月7日的学生的学号、姓名、性别、专业信息 。 select * from score ; where (课程编号=02 or 课程编号=05) and 成绩70 select 学号,姓名,性别,专业; from student ; where 入学时间=1996-09-07 and 性别=“男” 8.2

10、 数据查询 2、单表条件查询: (1)select对应投影操作,where对应选择操作(注意条 件不用for) (2)条件中,涉及到字符型字段值,加定界符(“”) (3)多个条件之间用and/or相连 (4)一行书写不下,除最后一行,各行结尾加分号(;) 注 意 8.2 数据查询 2、多表联接查询: 格式1: SELECT FROM 表1,表2, ; WHERE 查询条件 and 连接条件(旧版本) .=. 连接条件 引例:根据学生信息表和学生成绩表查询学生的学号 、姓名、性别、专业和大学英语信息 select cj.学号,cj.姓名,性别,专业,大学英语 from cj,xx where c

11、j.学号=xx.学号 注意:若查询的某一列在多个表中出现,必须加表名限 定. 8.2 数据查询 Eg1:检索出成绩大于80分的学号、姓名、性别和成绩 。 *Eg2:检索选修了课程的学生信息。 distinct去掉重复记录 select distinct student.* ; from student,score; where student.学号=score.学号 select student.学号,姓名,性别,成绩; from student,score; where 成绩80 and student.学号=score.学号 8.2 数据查询 * Eg3:检索学号为“199648101”的

12、学生姓名以 及所选修的课程名称和授课教师姓名。 select 姓名,课程名称,教师姓名; from student,course,score,teacher; where student.学号=score.学号 and ; course.课程编号=score.课程编号 and; course. 教师编号=teacher.教师编号 and; student.学号=1996468101 说明: From短语:后面接多个表时,两个表之间用逗号隔开。 联接条件:两个表进行联接查询的前提是一定有相同的字段名。 表名1.字段名=表名2.字段名 如:“student.学号=score.学号” 查询条件:成绩

13、80” 为查询条件 联接条件和查询条件用AND联接,并且都放在where短语中。 select后的字段名,若为多个表的公共字段,则指明来源的表。 格式为:表名.字段名 8.2 数据查询 格式2: Select From 表1 联接类型 Join表2 On 联接条件表达式 where 查询条件 (新版本) Eg1:查询计算机和英语均及格的学生的姓名、专业和 计算机信息。 Select xx.姓名, xx.学号,cj.计算机; From cj join xx on cj.学号=xx.学号; WHERE 计算机=60 and 英语=60 二、排序查询 8.2.2排序查询 将查询的结果排序,使用ORD

14、ER BY短语; 格式: ORDER BY ASC | DESC , ASC | DESC selectfrom where order by 字段名1 asc|desc, 字段名2asc|desc 8.2 数据查询 二、排序查询 Eg1:按学生的入学时间升序检索出全部学生信息。 Eg2:检索学生信息,按学生的入学时间升序排序,如果 入学时间相同则按学生的出生日期降序进行排序。 select * from student order by 入学时间 select * from student ; order by 入学时间 asc,出生日期 desc 8.2 数据查询 二、排序查询 order

15、 by对最终结果进行排序,位置在最后 子查询中不允许使用order by asc/desc在排序的字段名后,默认为升序 按多列排序时,各字段名之间用“,”相隔 注 意 8.2 数据查询 四、计算与分组查询 8.2.3计算与分组查询 1、简单的计算查询(用在select中,对查询结果 中数值型字段值进行计算 ) 注: as 新字段名:给结果指定字段别名 (1)count (distinct 字段名):统计数目 count() : 统计元组个数 (2)sum (字段名) :求总和 (3)avg (字段名) :求平均值 (4)max (字段名) :求最大值 (5)min (字段名) :求最小值 8.2 数据查询 8.2 数据查询 引例:从student表中检索出性别为“男” 的学生 的学号、姓名、性别、专业和年龄信息。(提示:可 以增加表达式作为结果字段) select 学号,姓名,性别,专业,; year(date()-year(出生日期) ; from student where 性别=男“ 为了使字段意义更明确,可以给表达式取别名。 s

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

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

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