第四部分SQL教学课件知识讲解

上传人:yuzo****123 文档编号:137415030 上传时间:2020-07-08 格式:PPT 页数:85 大小:381.50KB
返回 下载 相关 举报
第四部分SQL教学课件知识讲解_第1页
第1页 / 共85页
第四部分SQL教学课件知识讲解_第2页
第2页 / 共85页
第四部分SQL教学课件知识讲解_第3页
第3页 / 共85页
第四部分SQL教学课件知识讲解_第4页
第4页 / 共85页
第四部分SQL教学课件知识讲解_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《第四部分SQL教学课件知识讲解》由会员分享,可在线阅读,更多相关《第四部分SQL教学课件知识讲解(85页珍藏版)》请在金锄头文库上搜索。

1、第四章 SQL,SQL概述 SQL数据定义功能 SQL数据查询功能 SQL数据修改功能 SQL数据控制功能 嵌入式SQL,SQL概述(),历史 1974年,由Boyce和Chamber提出。 1975-1979年,在System R上实现,由IBM的San Jose研究室研制,称为Sequel,现在称为SQL (Struceured Query Languang)。 标准化 有关组织 ANSI(American Natural Standard Institute) ISO(International Organization for Standardization) 有关标准 SQL-86:

2、“数据库语言SQL”,SQL概述(),SQL-89:“具有完整性增强的数据库语言SQL”,增加了对完整性约束的支持。 SQL-92:“数据库语言SQL”,是SQL-89的超集,增加了许多新特性,如新的数据类型,更丰富的数据操作,更强的完整性、安全性支持等。 SQL-3:正在讨论中的新的标准,将增加对面向对象模型的支持。 特点 一体化 集DDL,DML,DCL于一体。 单一的结构-关系,带来了数据操作符的统一。 面向集合的操作方式 一次一集合。,SQL概述(),高度非过程化 用户只需提出“做什么”,无须告诉“怎么做”,不必了解存取路径。 两种使用方式,统一的语法结构 SQL既是自含式语言(用户使

3、用),又是嵌入式语言(程序员使用)。 语言简洁,易学易用,SQL数据定义功能,域定义 基本表的定义 索引的定义 数据库的建立与撤消 SQL数据定义特点,域定义(),域类型(SQL-92) char(n):固定长度的字符串。 varchar(n):可变长字符串。 int:整数。 smallint:小整数类型。 numeric(p,d):定点数,小数点左边p位,右边q位。 real:浮点数。 double precision:双精度浮点数。 date:日期(年、月、日)。 time:时间(小时、分、秒)。 interval:两个date或time类型数据之间的差。,域定义(),域定义 格式 cre

4、ate domain 域名 数据类型 示例 create domain person-name char(20) 类似C语言中: typedef ADDRESS_LIST char name10; char telephone20; char location20 char email20; ADDRESS_LIST tom;,基本表的定义(),基本表的定义(CREATE) 格式 create table 表名( 列名 数据类型 default 缺省值 not null ,列名 数据类型 default 缺省值 not null ,primary key(列名 ,列名 ) ,foreign k

5、ey (列名 ,列名 ) references 表名 (列名 ,列名 ) ,check(条件),基本表的定义(),示例 create domain person_name char(20) create table PROF ( PNO char10, person_name PNAME not null, SAL int, AGE int, DNO char10, primary key (PNO), foreign key (DNO) references DEPT(DNO), check (SAL 0),基本表的定义(),修改基本表定义(ALTER) 格式: alter table 表名

6、 add 子句增加新列 drop 子句删除列 modify 子句修改列定义 示例 alter table PROF add LOCATION char30,基本表的定义(),撤消基本表定义(drop) 格式 drop table 表名 示例 drop table DEPT 危险 撤消基本表后,基本表的定义、表中数据、索引、以及由此表导出的视图的定义都被删除。,索引的定义(),索引的定义 格式 create unique/distinct cluster index 索引名 on 表名 (列名 asc/desc , 列名asc/desc) unique(distinct):唯一性索引,不允许表中

7、不同的行在索引列上取相同值。若已有相同值存在,则系统给出相关信息,不建此索引。系统并拒绝违背唯一性的插入、更新。 cluster:聚集索引,表中元组按索引项的值排序并物理地聚集在一起。一个基本表上只能建一个聚集索引。 asc/desc:索引表中索引值的排序次序,缺省为asc。 示例: create cluster index s-index on S(S#),索引的定义(),索引的删除 格式: drop index 索引名 索引的有关说明 可以动态地定义索引,即可以随时建立和删除索引。 不允许用户在数据操作中引用索引。索引如何使用完全由系统决定,这支持了数据的物理独立性。 应该在使用频率高的、

8、经常用于连接的列上建索引。 一个表上可建多个索引。索引可以提高查询效率,但索引过多耗费空间,且降低了插入、删除、更新的效率。,数据库的建立与撤消,有的数据库系统支持多库。 建立一个新数据库 create database 数据库名 撤消一个数据库 drop database 数据库名 指定当前数据库 database 数据库名 指定当前数据库 close database 数据库名,SQL数据定义特点,SQL中,任何时候都可以执行一个数据定义语句,随时修改数据库结构。而在非关系型的数据库系统中,必须在数据库的装入和使用前全部完成数据库的定义。若要修改已投入运行的数据库,则需停下一切数据库活动,

9、把数据库卸出,修改数据库定义并重新编译,再按修改过的数据库结构重新装入数据。 数据库定义不断增长(不必一开始就定义完整)。 数据库定义随时修改(不必一开始就完全合理)。 可进行增加索引、撤消索引的实验,检验其对效率的影响。,SQL数据查询功能,SQL数据查询基本结构 select子句 重复元组的处理 from子句 where子句 更名运算 字符串操作 元组显示顺序 集合操作,SQL数据查询功能,分组和聚集函数 空值 嵌套子查询 派生关系 视图 关系的连接,SQL数据查询基本结构,基本结构 select A1 , A2 , , An from r1 , r2 , , rm where P A1

10、, A2 , , An(p(r1 r2 rm) 示例 给出所有老师的姓名。 select PNAME from PROF,select子句,目标列形式 可以为列名,* ,算术表达式,聚集函数。 “*”:表示“所有的属性”。 给出所有老师的信息。 select * from PROF 带, , 的算术表达式 给出所有老师的姓名及税后工资额。 select PNAME,SAL 0.95 from PROF,重复元组的处理,语法约束 缺省为保留重复元组,也可用关键字all显式指明。若要去掉重复元组,可用关键字distinct或unique指明。 示例 找出所有选修课程的学生。 select dist

11、inct SNO from SC,from子句(),说明 from子句列出查询的对象表。当目标列取自多个表时,在不混淆的情况下可以不用显式指明来自哪个关系。 示例 例:找出工资低于500的职工的姓名、工资、系别。 select PNAME , SAL , DNAME from PROF , DEPT where SAL 500 and PROF.DNO = DEPT.DNO,from子句(),例:列出教授“哲学”课程的老师的教工号及姓名。 select PROF. PNO , PNAME from PROF , PC , COURSE where PROF.PNO = PC.PNO and P

12、C.CNO = COURSE.CNO and COURSE.CNAME = “哲学”,where子句,语法成分 比较运算符:、 、=、 。 逻辑运算符:and,or,not。 between条件:判断表达式的值是否在某范围内。 示例 列出工资在500800之间的老师姓名。 select PNAME from PROF where SAL between 500 and 800,更名运算(),格式 old_name as new_name 为关系和属性重新命名,可出现在select和from子句中。 示例 属性更名 例:给出所有老师的姓名、所纳税额及税后工资额。 select PNAME,SAL

13、0.05 as taxi, SAL*0.95 as incoming from PROF,更名运算(),关系更名 找出工资比所在系主任工资高的老师姓名及工资。 select P1.PNAME,P1.SAL from PROF as P1,PROF as P2,DEPT where P1.DNO = DEPT.DNO and DEPT.DEAN = P2.PNO and P1.SAL P2.SAL 注:as可选。,字符串操作(),命令格式 like:找出满足给定匹配条件的字符串。 格式:列名 not like “字符串” 匹配规则: “%” :匹配零个或多个字符。 “”:匹配任意单个字符。 es

14、cape :定义转义字符,以去掉特殊字符的特定含义,使其被作为普通字符看待。如escape “”,是定义了 作为转义字符,则可用%去匹配%,用去匹配,用 去匹配 。,字符串操作(),示例 列出姓名以“张”打头的教师的所有信息。 select * from PROF where PNAME like “张%” 列出名称中含有4个字符以上,且倒数第3个字符是d,倒数第2个字符是_的系的所有信息。 select * from PROF where PNAME like “% d ”,元组显示顺序,命令 order by 列名 asc | desc 示例 按系名升序列出老师姓名,所在系名,同一系中老师

15、按姓名降序排列。 select DNAME,PNAME from PROF,DEPT where PROF.DNO = DEPT.DNO order by DNAME asc,PNAME desc,集合操作(),命令 集合并:union 集合交:intersect 集合差: except 示例 求选修了001或002号课程的学生号。 (select SNO from SC where CNO = 001) union all (select SNO from SC where CNO = 002),集合操作(),求选修了001和002号而没有选003号课程的学生号。 (select SNO f

16、rom SC where CNO = 001 or CNO = 002 ) except (select SNO from SC where CNO = 003) 提示 集合操作自动去除重复元组,如果要保留重复元组的话,必须用all关键词指明。,分组和聚集函数(),分组命令 group by 列名 having 条件表达式 group by将表中的元组按指定列上的值相等的原则分组,然后在每一分组上使用聚集函数,得到单一值。having则对分组进行选择,只将聚集函数作用到满足条件的分组上。 聚集函数 平均值:avg 最小值:min 最大值:max 总和:sum 记数:count,分组和聚集函数(),示例 列出各系的老师的最高、最低、平均工资。 select DNO,max(SAL),min(SAL),avg(SAL) from PROF group by DNO 列出及格的学生的平均成绩。 select SNO,avg

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

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

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