数据库第三章.ppt





《数据库第三章.ppt》由会员分享,可在线阅读,更多相关《数据库第三章.ppt(215页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章关系数据库标准语言关系数据库标准语言SQLSQL语言语言主要内容3.1SQL概述概述3.2查询语句查询语句3.3更新语句更新语句3.4SQLDDL3.5SQLDCL3.6视图视图3.7嵌入式嵌入式SQL 3.1SQL概述概述一、一、SQL的发展及现状的发展及现状二、二、SQL数据库的体系结构数据库的体系结构三、三、SQL的功能的功能四、四、SQL的形式的形式五、五、SQL的特点的特点3.1SQL概述概述一、一、SQL的发展及现状的发展及现状19741974年,由年,由BoyceBoyce和和ChamberlinChamberlin提出提出1975197919751979,IBM S
2、an Jose Research LabIBM San Jose Research Lab的关系的关系 数据库管理系统原型数据库管理系统原型System RSystem R实施了这种语言实施了这种语言SQL-86SQL-86是第一个是第一个SQLSQL标准标准SQL-89SQL-89、SQL-92(SQL2)SQL-92(SQL2)、SQL-99(SQL3)SQL-99(SQL3)大部分大部分DBMSDBMS产品都支持产品都支持SQLSQL,成为操作数据库的成为操作数据库的 标准语言标准语言二、二、SQL数据库的体系结构数据库的体系结构SQLSQL用户用户BaseTableBaseTableB
3、1B1ViewV1ViewV1ViewV2ViewV2BaseTableBaseTableB2B2BaseTableBaseTableB3B3BaseTableBaseTableB4B4StoredFileStoredFileS1S1StoredFileStoredFileS1S1StoredFileStoredFileS1S1StoredFileStoredFileS1S1外模式外模式模式模式内模式内模式SQL语言支持的关系数据库的三级模式结构语言支持的关系数据库的三级模式结构二、二、SQL数据库的体系结构数据库的体系结构基本概念:基本概念:1、用户可以用、用户可以用SQL语言对视图语言对视
4、图(View)和基本表和基本表(Base Table)进行查询等操作,在用户观点里,视图和表一样,进行查询等操作,在用户观点里,视图和表一样,都是关系。都是关系。2、视图视图是从一个或多个基本表中导出的表,本身不存是从一个或多个基本表中导出的表,本身不存储在数据库中,只有其定义,可以将其理解为一个虚表。储在数据库中,只有其定义,可以将其理解为一个虚表。3、基本表基本表是本身独立存在的表,每个基本表对应一个是本身独立存在的表,每个基本表对应一个存储文件,一个表可以带若干索引,存储文件及索引组存储文件,一个表可以带若干索引,存储文件及索引组成了关系数据库的内模式。成了关系数据库的内模式。SQLSQ
5、L用户用户BaseTableBaseTableB1B1ViewV1ViewV1ViewV2ViewV2BaseTableBaseTableB2B2BaseTableBaseTableB3B3BaseTableBaseTableB4B4StoredFileStoredFileS1S1StoredFileStoredFileS1S1StoredFileStoredFileS1S1StoredFileStoredFileS1S1外模式外模式模式模式内模式内模式三、三、SQL的功能的功能n 数据定义(数据定义(DDLDDL)n定义、删除、修改关系模式(基本表)定义、删除、修改关系模式(基本表)n定义、
6、删除视图(定义、删除视图(ViewView)n定义、删除索引(定义、删除索引(IndexIndex)n 数据操纵(数据操纵(DMLDML)n数据查询数据查询n数据增、删、改数据增、删、改n 数据控制(数据控制(DCLDCL)n用户访问权限的授予、收回用户访问权限的授予、收回四、四、SQL的组成的组成(分类分类)DATABASEDATABASE TABLE TABLECREATECREATE VIEW VIEW INDEX INDEX SQL DDL SQL DDL:ALTERALTERDROPDROP SQL QUERY SQL QUERY:SELECT FROM SELECT FROM IN
7、SERT INSERT SQLSQL SQL DML SQL DML:UPDATE UPDATE DELETE DELETE GRANTGRANT SQL DCL SQL DCL:REVOKEREVOKEAUDITAUDIT 嵌入式嵌入式SQLSQL:五、五、SQL的形式的形式n 交互式交互式SQLSQLn一般一般DBMSDBMS都提供联机交互工具都提供联机交互工具n用户可直接键入用户可直接键入SQLSQL命令对命令对 数据库进行操作数据库进行操作n由由DBMSDBMS来进行解释来进行解释n 嵌入式嵌入式SQLSQLn能将能将SQLSQL语句嵌入到高级语言(宿主语言)语句嵌入到高级语言(宿主语
8、言)n使应用程序充分利用使应用程序充分利用SQLSQL访问数据库的能力、宿主访问数据库的能力、宿主 语言的过程处理能力语言的过程处理能力n一般需要预编译,将嵌入的一般需要预编译,将嵌入的SQLSQL语句转化为宿主语言语句转化为宿主语言编译器能处理的语句编译器能处理的语句六、六、SQL的特点的特点4.4.具有查询、操作、定义和控制四种语言一体化的特点。具有查询、操作、定义和控制四种语言一体化的特点。它只向用户提供一种语言,但该语言具有上述多种功能,它只向用户提供一种语言,但该语言具有上述多种功能,且每种操作只需一种操作符。且每种操作只需一种操作符。1.1.高度非过程化的语言:高度非过程化的语言:
9、用户只需提出用户只需提出“干什么干什么”,至于至于“怎么干怎么干”由由DBMSDBMS解决;用户只需要早查询语句中提出需解决;用户只需要早查询语句中提出需 要什么,要什么,DBMSDBMS即可按路径存取,并把结果返回给用户。即可按路径存取,并把结果返回给用户。2.2.面向集合的语言:面向集合的语言:每一个每一个SQLSQL的操作对象是一个或多个关的操作对象是一个或多个关 系,操作的结果也是一个关系。系,操作的结果也是一个关系。3.3.一种语法结构,两种使用方式:一种语法结构,两种使用方式:即可独立使用,又可嵌入到即可独立使用,又可嵌入到 宿主语言中使用,具有自主型和宿主型两种特点。宿主语言中使
10、用,具有自主型和宿主型两种特点。五、五、SQL的特点的特点5 5.语言简洁、易学易用:核心功能只有语言简洁、易学易用:核心功能只有9 9个动词,个动词,语法简单,语法简单,接近英语。接近英语。SQLSQL功能功能 动词动词 数据库查询数据库查询 SELECTSELECT 数据定义数据定义 CREATECREATE,DROP DROP,ALTER ALTER 数据操纵数据操纵 INSERTINSERT,UPDATEUPDATE,DELETEDELETE 数据控制数据控制 GRANTGRANT,REVOKEREVOKE(一一)数据类型数据类型1、字符型:、字符型:CHAR(n)CHAR(n),VA
11、R CHAR VAR CHAR 2、数字型:数字型:INT,SMALLINT,REALINT,SMALLINT,REAL3、日期型:日期型:DATE,TIMEDATE,TIME(二二)函数函数1.数字函数数字函数:2.ABS(X),SQRT(X),RAND(X),LOG(X),ABS(X),SQRT(X),RAND(X),LOG(X),2.字符函数:字符函数:3.LENGTH(X$),LOWER(X$),UPPER(X$),LENGTH(X$),LOWER(X$),UPPER(X$),4.4.SUBSTRING(SUBSTRING(expressionexpression,startstart
12、,lengthlength)3.3.分组函数:分组函数:COUNT(COUNT(),MAX(X),MIN(X),AVG(X),),MAX(X),MIN(X),AVG(X),4.4.SUM(X)SUM(X)(三三)运算符运算符1.句法操作符句法操作符:&2.数值操作符数值操作符:+,3.逻辑操作符逻辑操作符:=,IN,ANY,ALL,IN,ANY,ALL,4.查询表达式操作符查询表达式操作符:UNION,UNION,5.其它操作符其它操作符:,(+),n 基本结构基本结构SelectA1,A2,.,AnFromR1,R2,.,RmWhereP3.2查询语句查询语句数据查询是数据库应用的核心功能数
13、据查询是数据库应用的核心功能SelectSelectWhereWhereFromFrom A1,A2,.,An(p(R1R2.Rm)3.2查询语句查询语句语句格式语句格式(P72)SELECT SELECT ALL|DISTINCT ALL|DISTINCT 表名表名.*|.*|列名列名|表达式表达式 AS AS 新列名新列名 INTO:INTO:主变量主变量1,:1,:主变量主变量22FROM FROM 表名表名 表别名表别名,WHERE WHERE 条件表达式条件表达式|子查询子查询 GROUP BY GROUP BY 列名列名1,1,HAVING HAVING 分组表达式分组表达式UNI
14、ON|INTERSECT|EXCEPTSELECTFROMUNION|INTERSECT|EXCEPTSELECTFROMORDER BY ORDER BY 列名列名|列序号列序号 ASC|DESC,ASC|DESC,;SELECTFROMSELECTFROM常用语句执行过程常用语句执行过程SELECT SELECT 投影投影 FROM TABLEFROM TABLE内存内存 WHERE WHERE 选取元组选取元组 GROUP GROUP 分组分组 HAVING HAVING 选择分组选择分组 UNION|UNION|查徇结果的集查徇结果的集合运算合运算 SELECT SELECT ORDE
15、R BY ORDER BY 排序输出排序输出A1,.,An(p(R1.Rm)SelectA1,A2,.,AnFromR1,R2,.,RmWhereP一、单表查询一、单表查询1.选择表中的列选择表中的列2.选择表中的行选择表中的行 3.分组与组函数分组与组函数 4.4.排排 序序一、单表查询一、单表查询1.选择表中的列选择表中的列例例1.1.求学生所在系及姓名求学生所在系及姓名SELECT SD,SN SELECT SD,SN FROM SFROM S;例例2.求学生的全部信息求学生的全部信息 SELECT S#,SN,SA,SDSELECT S#,SN,SA,SD FROM SFROM S;(
16、SELECT*)(SELECT*)SELECT SELECT SnameSname NAME,Year of Birth:BIRTH,NAME,Year of Birth:BIRTH,2003-Sage BIRTHDAY,2003-Sage BIRTHDAY,LOWER(LOWER(SdeptSdept)DEPARTMENT)DEPARTMENT FROM Student;FROM Student;例例3.3.查全体学生的姓名、出生年份和所有系,要求用查全体学生的姓名、出生年份和所有系,要求用 小写字母表示所有系名小写字母表示所有系名 SELECTSELECT Sname Sname,Year
17、 of Birth:,Year of Birth:,2003-Sage,LOWER(2003-Sage,LOWER(SdeptSdept)FROM Student;FROM Student;2.选择表中的行选择表中的行3.1)消除重复行消除重复行:DISTINCT (DISTINCT (缺省为缺省为ALL)ALL)例例:求选修了课程的学生号求选修了课程的学生号SELECT DISTINCT S#SELECT DISTINCT S#FROM SFROM S;Where 子句子句运算符运算符比较:比较:、=、=、not+确定范围:确定范围:BetweenAandB、NotBetweenAandB确
18、定集合:确定集合:IN、NOTIN字符匹配:字符匹配:LIKE,NOTLIKE空值:空值:ISNULL、ISNOTNULL多重条件:多重条件:AND、OR、NOT用WHERE子句实现复杂查询条件例例:求年龄在求年龄在1822(含含18,22)之间的学生名及之间的学生名及年龄年龄(或不在(或不在1822之间之间)SELECT SN,SASELECT SN,SA FROM S FROM S WHERE SA BETWEEN 18 AND 22 WHERE SA BETWEEN 18 AND 22;(WHERE SA=18 AND SA=18 AND SA=22);(WHERE SA NOT BET
19、WEEN 18 AND 22)(WHERE SA NOT BETWEEN 18 AND 22);(WHERE SA22)(WHERE SA22);例:例:求计算机系年龄小于求计算机系年龄小于19的姓名及年龄的姓名及年龄SELECT SN,SASELECT SN,SA FROM S FROM S WHERE SD=CS AND SA19 WHERE SD=CS AND SA5 HAVING COUNT(C#)5 AND MIN(GR)60 AND MIN(GR)60;Having 与与 Where的区别的区别nWhere 决定哪些元组被选择参加运算,作用于关系中的元组nHaving 决定哪些分组
20、符合要求,作用于分组4 4、排序、排序1)1)用用ORDER BYORDER BY子句对查询结果按照一个子句对查询结果按照一个或多个列的值进行升或多个列的值进行升/降排列输出降排列输出2)2)升序为升序为ASCASC;降序降序为为DESCDESC3)3)空值将作为最大值排序空值将作为最大值排序例例1 1:对选修对选修C5C5课程的学生按成绩降序课程的学生按成绩降序排列,同分数者按学号升序排列排列,同分数者按学号升序排列SELECT S#,GRSELECT S#,GRFROM SCFROM SCWHERE C#=C5WHERE C#=C5ORDER BY GR DESCORDER BY GR D
21、ESC,S#ASCS#ASC;例例2 2:求每个学生的总分并按总分降序排列求每个学生的总分并按总分降序排列,学号升序学号升序SELECT S#SELECT S#,SUM(ALL GR)SUM(ALL GR)FROM SCFROM SCGROUP BY S#GROUP BY S#ORDER BY 2 DESCORDER BY 2 DESC,S#ASCS#ASC;求求95级学生级学生中选修课程中选修课程在在5门以上门以上且都及格的且都及格的学生号及总学生号及总平均分,并平均分,并按平均成绩按平均成绩排序。排序。A1,.,An(p(R1.Rm)SelectA1,A2,.,AnFromR1,R2,.,
22、RmWhereP一、单表查询一、单表查询1.选择表中的列选择表中的列2.选择表中的行选择表中的行 3.分组与组函数分组与组函数 4.4.排排 序序主要内容主要内容主要内容主要内容二、连接查询二、连接查询多表连接查询、单表连接查询、多表连接查询、单表连接查询、外连接查询、复合条件连接查询外连接查询、复合条件连接查询.三、嵌套查询三、嵌套查询一、单表查询一、单表查询返回单个值的子查询返回单个值的子查询返回一组值的子查询返回一组值的子查询多重子查询多重子查询二、连接查询二、连接查询多表连接查询、单表连接查询、多表连接查询、单表连接查询、外连接查询、复合条件连接查询外连接查询、复合条件连接查询.*示范
23、表示范表EMP(EMP(EMPNOEMPNO,ENAME,MGR,JOB,SAL,DEPTNO,ENAME,MGR,JOB,SAL,DEPTNO)DEPT(DEPT(DEPTNODEPTNO,DNAME,CITY,DNAME,CITY)SALGRADE(SALGRADE(GRADEGRADE,LOSAL,HISAL,LOSAL,HISAL)1、多表连接:、多表连接:1)连接条件一:连接条件一:2)表名表名1.列名列名1比较运算符比较运算符表名表名2.列名列名22)连接条件二:连接条件二:3)表名表名1.列名列名1BETWEENBETWEEN 表名表名2.2.列名列名2 2 4)4)ANDAND
24、 表名表名2.2.列名列名3 3连接条件中的列名称为连接字段,其各连接条件中的列名称为连接字段,其各字段应是可比的。字段应是可比的。执行过程:执行过程:学号 课程号 学习成绩 S#C#GRADE S1 C1 A S1 C2 A S1 C3 A S1 C5 B S2 C1 B S2 C2 C .SC学号 学生姓名 所属系名 学生年龄 S#SNAME SD SA S1 A CS 20 S2 B CS 21 S3 C MA 19 S4 D CI 19 S5 E MA 20.S在表在表1中找到第一个元组,然后从头开始扫描表中找到第一个元组,然后从头开始扫描表2,查找到,查找到满足条件的元组即进行串接并
25、存入结果表中;再继续扫描表满足条件的元组即进行串接并存入结果表中;再继续扫描表2,依次类推,直到表依次类推,直到表2末尾。再从表末尾。再从表1中取第二个元组,重复上述中取第二个元组,重复上述的操作,直到表的操作,直到表1中的元组全部处理完毕。中的元组全部处理完毕。例题例题例题例题SELECTSELECT ENAME,SAL,GRADE ENAME,SAL,GRADE FROMFROM EMP,SALGRADE EMP,SALGRADE WHEREWHERE SAL SAL BETWEENBETWEEN LOSAL LOSAL ANDAND HISAL HISAL;SELECTSELECT S.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 第三

限制150内