16
本本本本本本SQL 本本本 本本本本本本本 () SQL 本本本本本 本本本 本本本 本本 :、、 SQL 本本本本本本 本本 本本 本 :、、 本本本 SELECT 本本本本本本本 本本本本本本本本 本本 本本本本本 ( 本本 本本本 ) 本本本本本 SQL 本本 本本本本本本本本 本本

本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

  • Upload
    toni

  • View
    279

  • Download
    9

Embed Size (px)

DESCRIPTION

第四章 关系数据库标准语言 SQL. 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录 查询结果如何处理-去向 如使用工具 ( 向导、设计器 ) 来帮助建立 SQL 命令 查询与视图的使用-自学. 第四章 关系数据库标准语言 SQL 及数据查询. - PowerPoint PPT Presentation

Citation preview

Page 1: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

本章学习线索:

• SQL 是什么(与关系数据库)• SQL 如何定义表:建立、删除、修改• SQL 如何操作记录:增、删、改• 怎么用 SELECT 查询表中的记录• 查询结果如何处理-去向• 如使用工具 ( 向导、设计器 ) 来帮助建立 SQL

命令• 查询与视图的使用-自学

本章学习线索:

• SQL 是什么(与关系数据库)• SQL 如何定义表:建立、删除、修改• SQL 如何操作记录:增、删、改• 怎么用 SELECT 查询表中的记录• 查询结果如何处理-去向• 如使用工具 ( 向导、设计器 ) 来帮助建立 SQL

命令• 查询与视图的使用-自学

Page 2: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

第四章 关系数据库标准语言 SQL及数据查询

1 .学习目标  * 掌握 SQL 语言的基本功能  * 使用 SQL 语言产生和修改数据库表  * 使用 SQL 语言操纵数据库数据2 .学习指南  * 通过档案表、课程表、选课表练习各种 SQL 语句操作  * 完成 P127 习题四 1 ~ 9 题,并将对应的 SQL 操作语句 保留在一个文件中,作为作业提交。3 .难点重点  * 掌握 SQL 语句的各种基本操作语句的格式和使用方法 , 包括带有各种集合函数、分组排序的查询操作; * 给定关系表和查询要求,会写出正确的 SQL 语句

1 .学习目标  * 掌握 SQL 语言的基本功能  * 使用 SQL 语言产生和修改数据库表  * 使用 SQL 语言操纵数据库数据2 .学习指南  * 通过档案表、课程表、选课表练习各种 SQL 语句操作  * 完成 P127 习题四 1 ~ 9 题,并将对应的 SQL 操作语句 保留在一个文件中,作为作业提交。3 .难点重点  * 掌握 SQL 语句的各种基本操作语句的格式和使用方法 , 包括带有各种集合函数、分组排序的查询操作; * 给定关系表和查询要求,会写出正确的 SQL 语句

Page 3: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

SQL 概述 SQL 的查询功能

单表查询 多表查询

连接查询 嵌套查询

BETWEEN…AND… LIKE

Page 4: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

SQL 是结构化查询语言 STRUCTURED QUERY LANGUAGE 的缩写,数据查询是 SQL 的最主要的组成部分,此外, SQL 还包含数据定义、数据操纵和数据控制等部分。

SQL 已经成为关系数据库的标准语言,所有关系数据库管理系统都支持 SQL , VFP 也如此。

SQL 发展:最早的 SQL 是 1986 年 10 月美国 ANSI公布的。随后 ISO 于 1987 年 6 月也正式采纳它为国际标准, 1989 年又推出了 SQL89 版, 1992 年又推出了 SQL92 新标准版本。

4.1 SQL4.1 SQL 概述概述

Page 5: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

SQL 语言主要特点:

( 1 ) SQL 是一种结构化的语言,集数据定义DDL 、数据操纵 DML 、数据控制 DCL 功能为一体。具有数据定义、数据查询、数据操纵和数据控制等功能。

( 2 ) SQL 是一种非过程化的语言,它不需要告诉计算机怎样做,只要描述清楚“做什么”即可。

Page 6: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

( 3 ) SQL 语法比较简单,但语言功能很强,它很接近英语自然语言,因此容易学习和掌握

( 4 ) SQL 命令可以交互方式使用,也可以嵌入方式使用,如嵌入程序设计语言中使用, VFP 就是这种方式。

SQL 的命令动词参见表 4-1 :•查询: SELECT•定义: CREATE DROP ALTER•操纵: INSERT UPDATE DELETE•控制: GRANT REVOKE

Page 7: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

SQL 的核心是查询。 SQL 的查询命令也称作 SELECT 命令,它的基本形式由 SELECT FROM WHERE 查询模块组成,多个查询块可以嵌套执行, VFP 的 SQL-SELECT 语法如下:

SELECT [ DISTINCT ] < 目标字段表 >  FROM 表名 1 [ ,表名 2] [ , … ][ WHERE 记录筛选条件 ] [ GROUP BY 分组字段表 ][ HAVING 组过滤条件 ] [ORDER BY 排序字段 1[ASC | DESC] [ 排序字段 2 … ] ]

4.2 查询功能

Page 8: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

SELECT 命令 6 个短语的含义:须掌握

SELECT :要挑选表中哪些字段 ( 以逗号分隔 )——“ 投影”FROM :说明所选字段来自哪些表,以逗号分隔。 WHERE :说明所查询记录的过滤条件——“选择”GROUP BY :查询结果如何分组,用以分组统计、汇总HAVING :挑拣分组的条件 , 必须跟随 GROUP BY 使用 ORDER BY :确定查询结果的排列顺序

Page 9: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

SELECT [ DISTINCT ] < 目标字段表 >  FROM 表名 [ WHERE 记录筛选条件 ]

按以上命令格式,请写出如下问题的查询命令:1. 找出档案表中的专业名称 例4-2

2. 档案表中有几个专业 例4-2 DISTINCT

3. 成绩超过 70 分的有哪些课程,找出课程号 例4-5

4. 档案表中有哪些学生的档案,请给出他们的姓名 例4-1

5. 从选课表中查出所有记录。“ * ” 号的使用 例4-3

6. 找出学号和成绩( 成绩大于 80 分呢 例4-4 ,或者要求 课程号为“ 1002” 或“ 1004” ,并且成绩小于 7

5 分例4-6)

4.2.1 简单查询

Page 10: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录
Page 11: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

SELECT [DIST] [ 表 .] 字段 1 [ , [ 表 .] 字段 2 … ] FROM 表 1, 表 2 [ , … ]WHERE 表连接条件 [ AND 记录筛选条件 ]

请思考用简单的联接查询如何解决:1.检索出成绩大于 80 分的学生的姓名和专业 例4-7

2. 成绩等于 80 分的学生选修的课程名和学分例4-8

3. 成绩小于 60 分的学生的所有信息 结果

4.2.2 简单的联接查询——从多表查询

Page 12: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

基于多个关系的查询中,若结果出自一个关系,但相关的条件却涉及多个关系。语法:

SELECT [ DISTINCT ] < 目标字段表 >   FROM 表名

WHERE 字段名 运算符 ( Select-From-Where )

记录筛选条件 内层子查询

例 4.7 检索出成绩大于 80 分的学生的姓名和专业。例 4.8 索出成绩为 80 分的学生选修的课程名和学分。例 4.10 成绩小于 60 分的学生的档案表信息

4.2.3 嵌套查询

Page 13: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

BETWEEN....AND.... “ 在 … 和 … 之间”LIKE “ 具有 … 特征,象…一样”

SQL 中通配符“ %” 表示 0 个或多个字符, “ _” (下划线)表示一个字符。 例 4.11 检索出成绩在 80 到 100 分之间的选课信息

例 4.12 从课程表中检索出课程名中带有“学”字的课程号和课程名。

例 4.13 找出家庭住址不是”西安”也不是”北京 " 的同学的学号和姓名。

4.2.4 几个特殊的运算符

成绩 BETWEEN 80 AND 100成绩 BETWEEN 80 AND 100

课程名 LIKE "% 学 "课程名 LIKE "% 学 "

家庭住址 NOT IN ("西安 " ,"北京 ")家庭住址 NOT IN ("西安 " ,"北京 ")

Page 14: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

使用 ORDER BY 可以将 SELECT 查询结果排序。

SELECT – FROM – [ WHERE – ] ORDER BY 字段名 [ ASC | DESC ]

[ , 字段名 [ ASC | DESC ] ... ]

其中: ASC 表示升序 ( 默认 ) , DESC 表示降序

例 4.10 按成绩升序检索出选课表中的所有信息。

例 4.11 先按课程号升序排列,若课程号相同再按成绩降序排列检索出选课表中的所有信息。

4.2.5 排序

Page 15: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

SELECT [ DISTINCT ] < 目标字段表 >  FROM 表名 1 [ ,表名 2] [ , … ][WHERE 表连接条件 [ AND 记录筛选条件 ] ]

[ ORDER BY 字段 1 [ ASC | DESC ][ , 字段 2 [ ASC | DESC ] ... ]

1.单表查询2.多表查询

• 连接查询• 嵌套查询BETWEEN…AND… LIKE

本讲重点回顾

Page 16: 本章学习线索: SQL 是什么(与关系数据库) SQL 如何定义表:建立、删除、修改 SQL 如何操作记录:增、删、改 怎么用 SELECT 查询表中的记录

作业: 1 、本章书中例题

2 、本章习题