关系数据库标准语言SQL

上传人:re****.1 文档编号:564674627 上传时间:2023-05-07 格式:DOC 页数:15 大小:111KB
返回 下载 相关 举报
关系数据库标准语言SQL_第1页
第1页 / 共15页
关系数据库标准语言SQL_第2页
第2页 / 共15页
关系数据库标准语言SQL_第3页
第3页 / 共15页
关系数据库标准语言SQL_第4页
第4页 / 共15页
关系数据库标准语言SQL_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《关系数据库标准语言SQL》由会员分享,可在线阅读,更多相关《关系数据库标准语言SQL(15页珍藏版)》请在金锄头文库上搜索。

1、1第三篇 关系数据库标准语言SQL3 关系数据库标准语言SQL【本章综述】SQL语言是关系数据库操作的标准语言。主要包括数据定义、数据操作和数据控制三类。【本章重点】sql语句的编写和执行。【本章难点】嵌套查询。前言:SQL(Structured Query Language)语言1974年提出,19751979年IBM公司研制了著名的关系数据库管理系统原形System R 并实现了这种语言。特点:功能丰富、语言简捷。经过不断修改,最终发展成为关系数据库的标准语言。31 SQL概述本节综述SQL 是一种介于关系代数与关系演算之间的结构化查询语言,但其功能不仅仅是查询,SQL是一个通用的、功能极

2、强的关系数据库语言。3 1.1 SQL的特点SQL 语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definiton)和数据控制(Data control)功能与一体,主要特点包括:综合统一问题的提出:非关系模型的数据语言一般都分为模式、外模式数据定义语言、与数据存储有关的描述语言及数据操纵语言,他们分别用于定义模式、外模式、内模式和进行数据的存取与处置。因此,当用户眼数据库投入运行后,如需修改模式,必须停止现有数据库的运行,转储数据,修改模式并编译后再重装数据库,十分麻烦。SQL如何解决:集数据定义语言、数据操纵语言、数据控制语言

3、的功能与一体,语言风格统一,可以独立完成数据库生命周期中的全部活动(包括定义关系模式、插入数据建立数据库、查询、更新、维护、数据库重构、数据库安全性等一系列操作要求),为数据库应用系统的开发提供了良好的环境。另:在关系数据模型中实体和实体间的联系均用关系表示,这种数据结构的单一性带来了数据操作符的统一。查找、插入、删除、修改等每一种操作都只要一种操作符,克服了非关系系统由于信息表示方式的多样性带来的操作复杂性。高度非过程化问题:非关系数据模型的数据操纵语言是面向过程的语言(可少做解释),用其完成的某项请求,必须指定存取路径。解决:SQL语言只要提出“做什么”,而无须指明“怎么做”,无须了解存取

4、路径,路径选择由系统自动完成。面向集合的操作方式问题:非关系数据模型采用的是面向记录的操作方式。用户要对记录逐条操作。解决:SQL采用集合操作方式。操作对象、查找结果、插入、删除、修改的对象均为元组的集合。以同一种语法结构提供两种使用方式SQL即是自含式语言(用户直接键入SQL命令操作数据库),又是嵌入式语言(嵌入高级语言程序中,供程序设计时使用)。语言简捷,易学易用3 1.2 SQL语言的基本概念【简单介绍】SQL外模式视图2视图1模 式基本表3基本表4基本表1基本表2内模式存储文件2存储文件1基本表:本身独立存在的表,在SQL中一个关系对应一个表。一个(多个)基本表对应一个存储文件。存储文

5、件:其逻辑结构组成了关系数据库的内模式。视图:从一个或几个基本表导出的表,本身不独立存储在数据库中,数据库只存放视图的定义而不存放视图对应的数据。32 数据定义(详讲的一节)操作对象操作方式创 建删 除修 改表CREATE TABLEDROP TABLEALTER TABLE 视 图CREATE VIEWDROP VIEW索 引CREATE INDEXDROP INDEX SQL的数据定义语句321 定义、删除与修改基本表1. 定义基本表CREATE TABLE ( 列级完整性约束条件 , 列级完整性约束条件 ,表级完整性约束条件);重点讲述P88 例1(讲清完整性约束条件)2. 修改基本表A

6、LTER TABLE ADD 完整性约束DROPMODIFY;重点讲述P89 例2、3、43. 删除基本表DROP TABLE 注意:基本表定义一旦删除,表中的数据、此表上建立的索引和视图都将自动被删除,因此执行此操作要格外当心。322 建立与删除索引 建立索引的意义:加快查询速度的有效手段。(可以讲查字典的例子)1. 建立索引CREATE UNIQUECLUSTERINDEX ON (,);次序:ASC(升序,缺省)、DESC(降序)UNIQUE:表明此索引的每一个索引值只对应唯一的数据记录。CLUSTER:表示建立聚簇索引。聚簇索引:指索引项的顺序与表中记录的物理顺序一致的索引组织。其目的

7、用户可以在最常查询的列上建立聚簇索引提高查询效率。缺点:索引更新时,物理顺序的变更代价过大。重点讲述P91 例62. 删除索引DROP INDEX33 查 询数据库查询是数据库的核心操作。SELECT 语句的一般格式: SELECT all |distinct FROM , WHERE GROUP BYHAVING ORDER BYASC|DESC; 含义:整个SELECT语句的含义是,根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式选出元组中属性值形成的结果表。 附:GROUP 子句按列名1分组,属性相等的为一个组。H

8、AVING :满足条件的组才能输出。ORDER:排序。331 单表查询(重点是若干例子)单表查询是指仅涉及一个表的查询。1. 选择表中的若干列(P9293 例1例5)(1) 查询指定列(2) 查询全部列(注意“*”的用法)(3) 查询经过计算的值2. 选择表中的若干元组(P9499 例6例23)(1) 消除取值重复的行(DISTINCT的用法)(2) 查询满足条件的元组(WHERE的用法)l 比较大小(=、=、=、!=或)l 确定范围(BETWEEN。AND 的用法)l 确定集合(IN、NOT IN 的用法)l 字符匹配(LIKE 的用法)NOTLIKEESCAPE匹配串可以是完整的字符,亦可

9、是如下两种通配符:%(表任意长度) -(表单个字符)l 涉及空值的查询(NULL)l 多重条件查询(AND OR的使用)(3) 对查询结果排序(P99 例24,25)(4) 使用集函数(P100 例26例29)COUNT (DISTINCT|ALL*)统计元组个数COUNT (DISTINCT|ALL)统计一列中值的个数SUM (DISTINCT|ALL)计算一列中值的总和AVG (DISTINCT|ALL)计算一列中值总和的平均值MAX (DISTINCT|ALL)求一列中值的最大值MIN (DISTINCT|ALL)求一列中值的最小值(5) 对查询结果分组(P101 例30例31)注意:W

10、HERE 子句与HAVING短语的区别在于作用对象不同。WHERE子句作用于基本表或视图,从中选择满足条件的元组,HAVING短语作用与组,从中选择满足条件的组。332 连接查询(重点是若干例子) 连接查询:一个查询同时涉及两个以上的表。包括等值连接、自然连接、非等值连接查询、自身连接查询、外连接查询和复合条件连接查询。1. 等值与非等值连接查询(P102 例32)连接条件(谓词)的定义:用来连接两个表的条件。连接查询的格式: . 或.BETWEEN .AND.等值连接:运算符为 =连接操作的过程:找表1中的第一个元组,扫描表2找满足连接条件的元组,将两元组拼接,继续扫描表2直到完毕,接着找表

11、1中的第二个元组,依次类推。连接操作的分类:自然连接(去掉重复的属性列)和广义笛卡儿积(无连接谓词的连接)。2. 自身连接(P103 例34)自身连接定义:一个表与其自己进行连接。3. 外连接应用的范围:当某个元组的某一属性为空值,无法满足连接条件,因而无法输出,我们要能够输出该元组的其他情况信息,因此使用外连接。外连接的表示方法:在连接谓词的某一边加“*”,就好象为“*“所在边的表增加一个“万能行”,这个行全部由空值组成,他可以和另一边的表中所有不满足连接条件的元组进行连接。外连接的分类:右外连接和左外连接。4. 复合条件连接(P105 例35,例36)WHERE子句中可以有多个连接条件,成

12、为复合条件连接。333 嵌套查询(重点是若干例子)嵌套查询:在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING 短语的条件的查询称为嵌套查询。上层称为父查询(外层查询),下层称为子查询(内层查询)。注意:子查询中不能用ORDER BY 语句,ORDER BY 只能对最终查询结果排序。嵌套查询的方法:由内向外1. 带有IN谓词的子查询(P107 例37,P108 例38)不相关子查询:子查询的查询条件不依赖于父查询。2. 带有比较运算符的子查询指父查询与子查询之间用比较运算符进行连接,需注意的是子查询一定要跟在比

13、较符之后。3. 带有ANY 或ALL谓词的子查询(P110 例39,40)子查询返回单值时可以用比较运算符,而使用ANY或ALL谓词时则必须同时使用比较运算符。其语意为:ANY 大于子查询结果中的某个值ALL 大于子查询结果中的所有值ANY 小于子查询结果中的某个值ALL 小于子查询结果中的所有值ANY大于等于子查询结果中的某个值ALL 大于等于子查询结果中的所有值ANY小于等于子查询结果中的某个值ALL小于等于子查询结果中的所有值ANY等于子查询结果中的某个值ALL等于子查询结果中的所有值(通常没有实际意义)!(或)ANY 不等于子查询结果中的某个值!(或ALL 不等于子查询结果中的所有值4. 带有EXISTS谓词的子查询(P111 例41例44)EXISTS 代表存在量词,带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“TURE“或“FALSE”。若

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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