第五章 使用高级查询-SQL语言.ppt_第1页
第五章 使用高级查询-SQL语言.ppt_第2页
第五章 使用高级查询-SQL语言.ppt_第3页
第五章 使用高级查询-SQL语言.ppt_第4页
第五章 使用高级查询-SQL语言.ppt_第5页
免费预览已结束,剩余23页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 五 章 使用高级查询 SQL语言,本章要点,SQL语言概述 数据操作语句 SQL语言在Access中的应用,Access 2003 数据库,第五章 使用高级查询-SQL语言,5.1 SQL的概述及其特点,SQL(Structured Query Language)结构化查询语言是一种在关系数据库中的进行定义和操纵的标准语言 。 SQL语言包含数据查询、数据操纵、数据定义和数据控制,充分体现了关系数据语言的特点和优点。 主要特点包括: 非过程化语言 SQL不要求用户指定对数据的存放方法。所有SQL 语句接受集合作为 输入,返回集合作为输出;所有SQL语句使用查询优化器 。,第五章 使用高级查

2、询-SQL语言,Access 2003 数据库,5.1 SQL的概述及其特点,统一的语言 SQL可用于所有用户的DB活动模型 。SQL为许多任务提供了命令,包括: 查询数据 在表中插入、修改和删除记录 建立、修改和删除数据对象 控制对数据和数据对象的存取 保证数据库一致性和完整性 它是所有关系数据库的公共语言,第五章 使用高级查询-SQL语言,Access 2003 数据库,5.1 SQL的概述及其特点,SQL功能强大,但是概括起来,它可以分成以下几组: 数据操作语言DML(Data Manipulation Language):用于检索或者修改数据。 数据定义语言DDL(Data Defin

3、ition Language): 用于定义数据的结构,比如创建、修改或者删除数据库对象。 数据控制语言DCL(Data Control Language):用于定义数据库用户的权限。,第五章 使用高级查询-SQL语言,Access 2003 数据库,5.2 SQL的数据操作功能,SQL是一种查询功能很强的语言。 SELECT语句的完整语法,可以有6个子句。 完整的语法如下: SELECT 目标表的列名或列表达式集合 FROM 基本表或视图集合 WHERE条件表达式 GROUP BY列名集合 HAVING组条件表达式 ORDER BY列名集合ASC | DESC,第五章 使用高级查询-SQL语言

4、,Access 2003 数据库,5.2 SQL的数据操作功能,无条件查询 例:查询所有会员的基本情况 。 SELECT * FROM 会员表; 可以使用 “*”为通配符,表示查找FROM中所指出关系的所有属性 的值。 例:查询借阅过图书的会员证编号 。 SELECT DISTINCT 会员证编号 FROM 借还书表; 使用DISTINCT可以去掉查询结果中的重复行。,第五章 使用高级查询-SQL语言,Access 2003 数据库,条件查询 条件查询即带有WHERE子句的查询,所要查询的对象必须满 足WHERE子句给出的条件。 在WHERE子句中的条件表达式中可出现下列操作 算术运算符:等于

5、,大于,小于,不等于大于等于,小于等于 逻辑运算符:优先从高到低的顺序为NOTANDOR 范围运算符:BETWEENAND 列表运算符:IN,NOT IN 空值运算符:IS NULL,IS NOT NULL,5.2 SQL的数据操作功能,第五章 使用高级查询-SQL语言,Access 2003 数据库,例:查询图书表中“清华大学出版社”出版的图书的书名 。 SELECT 书名 FROM 图书表 WHERE 出版社清华大学出版社 ; 例:查询会员表中办证日期在2007-1-1到2007-3-1之间且 单位是“世都百货”的会员的信息。 SELECT * FROM 会员表 WHERE办证日期 Bet

6、ween #2007-3-1# And #2007-3-18# and 单位名称=世都百货; 例:查询会员表中姓“李”的会员的会员编号、会员姓名。 SELECT 会员编号,会员姓名 FROM 会员表 WHERE会员姓名 LIKE 李*;,5.2 SQL的数据操作功能,第五章 使用高级查询-SQL语言,Access 2003 数据库,排序查询 排序查询是指将查询结果按指定属性的升序(ASC)或降序(DESC) 排列,由ORDER BY子 句指明。 例: 查询有罚款的会员姓名,并按照罚款额的从高到低排列。 SELECT 会员表.会员姓名 FROM 会员表 WHERE 罚款总额0 ORDER BY

7、罚款总额 DESC; 注意: Order by 子句中可以指定多个字段,系统将根据子句中排序 字段的顺序对查询结果进行嵌套排序。,5.2 SQL的数据操作功能,第五章 使用高级查询-SQL语言,Access 2003 数据库,计算查询 计算查询是指通过系统提供的特定函数(聚合函数)在语句中的直接使 用而获得某些只有经过计算才能得到的结果。 常用的函数有: COUNT(*) 计算元组的个数; COUNT(列名) 对某一列中的值计算个数; SUM(列名) 求某一列值的总和(此列值是数值型); AVG(列名) 求某一列值的平均值(此列值是数值型); MAX(列名) 求某一列值中的最大值; MIN(列

8、名) 求某一列值中的最小值;,5.2 SQL的数据操作功能,第五章 使用高级查询-SQL语言,Access 2003 数据库,应用group by子句可以按照分组字段(如出版社)的值进行分组统计得到结果。 例:统计图书表中各个出版社的图书的数量。 SELECT 出版社,count(*) as 数量 FROM 图书表 GROUP BY 出版社; 例:统计借还书表中借了3本以上会员的会员证编号。 SELECT 会员证编号 FROM 借还书表 GROUP BY 会员证编号 HAVING COUNT(图书编号)3,5.2 SQL的数据操作功能,第五章 使用高级查询-SQL语言,Access 2003

9、数据库,联接查询 如果查询的内容会分布在多张表中,这就需要将这几张表联接起来进行 查询,得到结果,称为联接查询。 内联接的格式:数据表1 INNER JOIN 数据表2 ON 联接表达式 例:查询“李秀才”所借书的图书编号、借书日期、还书日期。 SELECT 会员姓名,图书编号,借书日期,还书日期 FROM 会员表 inner join 借还书表 on 会员表.会员证编号 借还书表. 会员证编号 WHERE 会员姓名 李秀才;,5.2 SQL的数据操作功能,第五章 使用高级查询-SQL语言,Access 2003 数据库,左向外联接的格式:数据表1 LEFT JOIN 数据表2 ON联接表达式

10、 使用左向外联接进行查询的结果集包括数据表1中的所有记录,而不 仅仅是联接字段所匹配的记录。 例:查询所有会员的姓名,如果有借书的显示图书编号、借书 日期、还书日期。 SELECT 会员姓名,图书编号,借书日期,还书日期 FROM 会员表 left join 借还书表 on 会员表.会员证编号借还书表.会 员证编号;,5.2 SQL的数据操作功能,第五章 使用高级查询-SQL语言,Access 2003 数据库,嵌套查询 嵌套查询是指WHERE子句中又包含SELECT子句,它用于较复杂的跨 多个基本表查询的情况。 例:查询已经还书了的会员的姓名。 SELECT 会员姓名 FROM 会员表 WH

11、ERE 会员证编号in ( SELECT 会员证编号 FROM 借还书表 WHERE 借还类型还);,5.2 SQL的数据操作功能,第五章 使用高级查询-SQL语言,Access 2003 数据库,5.3 插入语句,单元组的插入 INSERT INTO表名(列名1,列名2) VALUES(列值1,列值2); 例:向 “类别表”中插入一个元组(04,英语)。 INSERT INTO 类别表(图书类别编号, 图书类别名称) VALUES(04,英语); 列名序列为要插入值的列名集合,列值序列为要插入的对应值; 若插入的是一个表的全部列值,则列名可以省略不写; 若插入的是表的部分列值,则必须列出相应

12、列名,此时该关系中未列出的列名取空值; 若表中存在列的数据类型为自动编号,则可以在语句省略该列的列名和列值;,第五章 使用高级查询-SQL语言,Access 2003 数据库,多元组的插入 用SELECT语句查询结果插入到某个已知的基本表中。 INSERT语句的格式: INSERT INTO(,) 子查询 例:将查询得到的已借出图书信息插入到借出图书表中。 方法1:直接执行语句。 SELECT 图书编号,书名,作者,出版社,是否在库 INTO 借出图书表 FROM 图书表 WHERE 是否在库=FALSE;,5.3 插入语句,第五章 使用高级查询-SQL语言,Access 2003 数据库,方

13、法2:先创建借出图书表(图书编号,书名,作者,出版社,是否在库),再执行语句。 INSERT INTO 借出图书表(图书编号,书名,作者,出版社,是否在库) SELECT 图书编号,书名,作者,出版社,是否在库 FROM 图书表 WHERE 是否在库=FALSE; 使用该方法时注意新创建表的字段的数据类型应和原表的字段的数据 类型相兼容。,5.3 插入语句,第五章 使用高级查询-SQL语言,Access 2003 数据库,5.4 删除语句,SQL的删除操作是指从基本表中删除满足WHERE的记录。如果没有WHERE子句,则删除表中全部记录,但表结构依然存在。 语句格式为: DELETE FROM

14、表名 WHERE 条件表达式; 1. 单元组的删除 例:把会员证编号为“iiii-9999”的会员从会员表中删除。 DELETE FROM 会员表 WHERE 会员证编号=iiii-9999;,第五章 使用高级查询-SQL语言,Access 2003 数据库,5.4 删除语句,多元组的删除 例:将所有会员信息从表中删除。 DELETE FROM 会员表; 带有子查询的删除操作 例: 删除“英语”类别的记录。 DELETE FROM 图书表 WHERE 图书类别(SELECT 图书类别编号 FROM 类别表 WHERE 图书类别名称英语);,第五章 使用高级查询-SQL语言,Access 200

15、3 数据库,5.5 更新语句,更新语句是按SET子句中的表达式,在指定表中修改满足条件表达式的记录的相应列值 语句格式如下: UPDATE 表名 SET 列名=列改变值 WHERE 条件表达式;,第五章 使用高级查询-SQL语言,Access 2003 数据库,5.5 更新语句,例:把会员证编号是“AAAA-1111”的会员的联系电话改为88011157。 UPDATE 会员表 SET 联系电话=88011157 WHERE 会员证编号=AAAA-1111; 例:将会员表中所有会员的办证费提高10%。 UPDATE 会员表 SET 办证费=1.1*办证费,第五章 使用高级查询-SQL语言,Ac

16、cess 2003 数据库,5.6 Access中SQL查询的设计,Access中的查询是以SQL语句为基础来实现的,所有的查询都可以看作是SQL查询。,第五章 使用高级查询-SQL语言,Access 2003 数据库,5.6 Access中SQL查询的设计,SQL查询可以分为以下四类:联合查询、传递查询、数据定义查询和子查询。 数据定义查询 Access中的基本的几个数据类型如下: 文本型:TEXT 长整型:INTEGER 双精度型:FLOAT 货币型:MONEY 日期型:DATE 逻辑型:LOGICAL 备注型:MEMO,第五章 使用高级查询-SQL语言,Access 2003 数据库,联合查询用于将来自一个或多个表(或查询)的字段(列)组合为查询结果中的一个字段(列)。 注意: 1、每条SELECT语句都必须以同一顺序返回相同数量的字段。对 应的字段都需要有兼容的数据类型。 2、如果将联合查询转换为另一类型的查询(如选择查询),将丢 失输入的SQL语句。,5.7 联合查询,第五章 使用高级查询-SQL语言,Access 2003 数据库,SQL数据定义查询包括生成表查询、更新查询、追加查询和删除查询等。 例:生成表查询,5.8 SQL数据定义查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论