资源预览内容
第1页 / 共137页
第2页 / 共137页
第3页 / 共137页
第4页 / 共137页
第5页 / 共137页
第6页 / 共137页
第7页 / 共137页
第8页 / 共137页
第9页 / 共137页
第10页 / 共137页
亲,该文档总共137页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1关系数据库标准语言SQL语言第章 3主 要 内 容第3章3.1 SQL概述 3.2 查询语句 3.3 更新语句 3.4 SQL DDL 3.5 SQL DCL 3.6 视图 3.7 嵌入式 SQL(*)23.1 SQL概述 一、 SQL的发展及现状二、SQL数据库的体系结构三、SQL的功能四、SQL的形式五、SQL的特点33.1 SQL概述 一、 SQL的发展及现状1974年,由Boyce和Chamberlin提出19751979,IBM San Jose Research Lab的关系数据库管理系统原型 System R实施了这种语言SQL-86是第一个SQL标准SQL-89、SQL-92(SQL2)、SQL-99(SQL3)、SQL-2003大部分DBMS产品都支持SQL,成为操作数据库的标准语言43.1 SQL概述SQLSQL用户Base TableBase Table B1B1View V1View V1View V2View V2Base TableBase Table B2B2Base TableBase Table B3B3Base TableBase Table B4B4Stored FileStored File student1student1Stored FileStored File student1student1Stored FileStored File student1student1Stored FileStored File student1student1外模式模式内模式SQL语言支持的关系数据库的三级模式结构二、SQL数据库的体系结构53.1 SQL概述基本概念:1、用户可以用SQL语言对视图(View)和基本表(Base Table)进行查询等操作,在用户观点里,视图和表一样,都是关系。2、视图是从一个或多个基本表中导出的表,本身不存储在数据库中,只有其定义,可以将其理解为一个虚表。3、基本表是本身独立存在的表,每个基本表对应一个存储文件,一个表可以带若干索引,存储文件及索引组成 了关系数据库的内模式。SQLSQL用户Base TableBase Table B1B1View V1View V1View V2View V2Base TableBase Table B2B2Base TableBase Table B3B3Base TableBase Table B4B4Stored FileStored File student1student1Stored FileStored File student1student1Stored FileStored File student1student1Stored FileStored File student1student1外模式模式内模式二、SQL数据库的体系结构63.1 SQL概述n 数据定义(DDL)n定义、删除、修改关系模式(基本表)n定义、删除视图(View)n定义、删除索引(Index)n 数据操纵(DML)n数据查询n数据增、删、改n 数据控制(DCL)n用户访问权限的授予、收回三、SQL的功能73.1 SQL概述DATABASETABLE CREATE VIEWINDEXDDL: ALTER DROPSQL QUERY:SELECT FROM INSERT SQL SQL DML:UPDATE DELETE GRANTSQL DCL:REVOKE AUDIT嵌入式SQL:四、SQL的组成(分类)83.1 SQL概述n 交互式SQLn一般DBMS都提供联机交互工具n用户可直接键入SQL命令对数据库进行操作n由DBMS来进行解释n 嵌入式SQLn能将SQL语句嵌入到高级语言(宿主语言)n使应用程序充分利用SQL访问数据库的能力、宿主 语言的过 程处理能力n一般需要预编译,将嵌入的SQL语句转化为宿主语言编译器能处 理的语句五、SQL的形式93.1 SQL概述4. 具有查询、操作、定义和控制四种语言一体化的特点。它只向用户提供一 种语言,但该语言具有上述多种功能,且每种操作只需一种操作符。1.高度非过程化的语言:用户只需提出“干什么”,至于 “怎么干”由DBMS解决;用户只需要早查询语句中提出需要什么,DBMS即可按路径存取,并把结果返回给用户。2. 面向集合的语言:每一个SQL的操作对象是一个或多个关系,操作的结果也是一个关系。3.一种语法结构,两种使用方式:即可独立使用,又可嵌入到宿主语言中使用 ,具有自主型和宿主型两种特点。六、SQL的特点103.1 SQL概述5. 语言简洁、易学易用:核心功能只有9个动词,语法简单, 接近英语。SQL功能 动词数据库查询 SELECT数据定义 CREATE,DROP ,ALTER 数据操纵 INSERT,UPDATE,DELETE数据控制 GRANT,REVOKE113.1 SQL概述1、字符型:CHAR(n),VARCHAR 2、数字型:INT, SMALLINT,REAL 3、日期型:DATE,TIME(一) 数据类型(二) 函数 1.数字函数:ABS(X),SQRT(X),RAND(X),LOG(X), 2.字符函数:LENGTH(X$),LOWER(X$),UPPER(X$),SUBSTRING(expression, start, length)3.分组函数: COUNT(),MAX(X),MIN(X),AVG(X),SUM(X)123.1 SQL概述1. 句法操作符: 课程信息表Course; 选课情况 表SC,教师信息表teacher 373.2 查询语句1) 连接条件一 表名1. 列名1 比较运算符 表名2.列名22) 连接条件二 表名1.列名1 BETWEEN 表名2.列名2 AND 表名2.列名3 连接条件中的列名称为连接字段,其各字段应是可比的。1、多表连接383.2 查询语句学号 课程号 学习成绩sno Cno GRADEstudent1 C1 A student1 C2 Astudent1 C3 A student1 C5 B student2 C1 B student2 C2 C . . .SC 学号 学生姓名 所属系名 学生年龄sno Sname Sdept Sagestudent1 A CS 20student2 B CS 21student3 C MA 19student4 D CI 19student5 E MA 20. . . .student在表1中找到第一个元组,然后从头开始扫描表2,查找到 满足条件的元组即进行串接并存入结果表中;再继续扫描表2, 依次类推,直到表2末尾。再从表1中取第二个元组,重复上述 的操作,直到表1中的元组全部处理完毕。执行过程:393.2 查询语句 例题例题SELECT student.sno,Sname,Cname,Grade FROM Student S,Course C,SC WHERE S.Sno=SC.Sno AND C.Cno=SC.Cno;例1:求选课情况,要求输出学号、姓名、课程名与成绩3.2 查询语句403.2 查询语句用表别名把一个表定义为两个不同的表进行连接。2、单表连接(自连接)例1:求每门课的间接先修课名(即先修课的先修课)SELECT FIRST.Cno,THIRD.Cname FROM Corse FIRST, Course SECOND , Course THIRD WHERE FIRST. CPno = SECOND.Cno AND SECOND. CPno = THIRD.Cno413.2 查询语句在连接条件的某侧加上() 或(+),表示该侧所对应的表中可形成一个各数据项均为空值的万能替代行,用来与另一侧对应的表中所有不满足条 件的元组进行连接。外连接符()或(+)出现在左侧称为右外连接、出现在右侧称为左连接、两侧都出现的称为全外连接。SELECT DNAME,TNAME FROM department D,teacher T WHERE D.DNO = T.DNO(*); 例1:求各部门名及职工名,要求输出无职工的部门(职工以空值出现)3、外连接42例题例题SELECT DNAME,TNAME FROM department D,teacher T WHERE D.DNO (*) = T.DNO; 例2:求各部门名及职工名,要求输出未分配部门的职工(部门以空值出现)43例题例题SELECT DNAME,TNAME FROM department D,teacher T WHERE D.DNO (*) = T.DNO(*);例3:求各部门名及职工名,要求输出无职工的部门和未分配部门的职工注意,在sql server中,Left join 左外连接 Right join 右外连接,Full join 全外连接443.2 查询语句3.2SELECT DNAME,TNAME FROM department D left join teacher T on D.DNO = T.DNOSELECT DNAME,TNAME FROM department D right join teacher T on D.DNO = T.DNOSELECT DNAME,TNAME FROM department D full join teacher T on D.DNO = T.DNO453.2 查询语句WHERE子句中除了连接条件,还有其它限制条件。SELECT Sname, Grade FROM student, SC WHERE student.sno=SC.sno AND SC.Cno=C6 AND SC.Grade90;例1:求选修C6课程且成绩超过90分的学生名与成绩 连接条件限制条件4、复合条件连接 463.2 查询语句 在SELECT FROM WHERE语句结构的 WHERE子句中可嵌入一个SELECT语句块 其上层查询称为外层查询或父查询 其下层查询称为内层查询或子查询 SQL语言允许使用多重嵌套查询 在子查询中不允许使用ORDER BY子句 嵌套查询的实现一般是从里到外,即先进行子查询,再把其结果用于父查询作为条件三、嵌套查询47三、嵌套查询方法一:SELECT Sname, Sage FROM student WHERE Sdept = = ( SELECT sd
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号