数据库课件第三章.ppt
《数据库课件第三章.ppt》由会员分享,可在线阅读,更多相关《数据库课件第三章.ppt(338页珍藏版)》请在三一办公上搜索。
1、第3章 关系数据库标准语言SQL,3.1 SQL概述3.2 学生 课程数据库3.3 数据定义3.4 数据查询3.5 数据更新3.6 视图3.7 小结,关系数据库标准语言SQL(续),结构化查询语言,是关系数据库的标准语言是一个通用的、功能极强的关系数据库语言,第3章 关系数据库标准语言SQL,3.1 SQL概述3.2 学生 课程数据库3.3 数据定义3.4 数据查询3.5 数据更新3.6 视图3.7 小结,3.1 SQL 概 述,3.1.1 SQL的产生与发展 3.1.2 SQL的特点 3.1.3 SQL的基本概念,3.1 SQL 概 述,3.1.1 SQL的产生与发展 3.1.2 SQL的特
2、点 3.1.3 SQL的基本概念,3.1.1 SQL的产生与发展,SQL语言(Structured Query Language)1974年由Boyce和Chamberlin提出1975年1979年IBM公司在System R原型系统上实现是关系数据库的标准语言,是数据库领域中一个主流语言,SQL的产生与发展(续),SQL标准SQL-86第一个SQL标准由美国国家标准局(American National Standard Institute,简称ANSI)公布1987年国际标准化组织(International Organization for Standardization,简称ISO)通
3、过SQL-89SQL-92SQL99SQL2003,3.1 SQL 概 述,3.1.1 SQL的产生与发展 3.1.2 SQL的特点 3.1.3 SQL的基本概念,3.1.2 SQL的特点,综合统一 2.高度非过程化 3.面向集合的操作方式 4.同一种语法结构提供多种使用方式 5.语言简捷,易学易用,综合统一,SQL语言集数据查询、数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体非关系模型的数据语言模式数据定义语言(模式DDL)外模式数据定义语言(外模式DDL或子模式DDL)与数据存储有关的描述语言(DSDL)数据操纵语言(DML),2.高度非过程化,用户只需提出“做什么
4、”,而不必指明“怎么做”存取路径的选择以及SQL语句的操作过程由系统自动完成。大大减轻了用户负担,而且有利于提高数据独立性。,3.面向集合的操作方式,SQL语言采用集合操作方式 操作对象、查找结果可以是元组的集合 一次插入、删除、更新操作的对象可以是元组的集合非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。,4.同一种语法结构提供多种使用方式,独立语言 能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作嵌入式语言能够嵌入到高级语言(例如C,COBOL,FORTRAN,PL/1)程序中,供程序员设计程序时使用。两种不同使用方式下,SQL语言的语
5、法结构基本一致,5.语言简捷,易学易用,3.1 SQL 概 述,3.1.1 SQL的产生与发展 3.1.2 SQL的特点 3.1.3 SQL的基本概念,3.1.3 SQL语言的基本概念,SQL语言的基本概念(续),用户用SQL语言对基本表和视图进行操作基本表本身独立存在的表,一个关系对应一个表一个(或多个)基本表对应一个存储文件一个表可以带若干索引,索引也存放在存储文件中存储文件存储文件的逻辑结构组成了关系数据库的内模式存储文件的物理结构是任意的,对用户是透明的视图从一个或几个基本表或视图导出的表是虚表,只存放视图的定义而不存放对应数据,第3章 关系数据库标准语言SQL,3.1 SQL概述3.
6、2 学生 课程数据库3.3 数据定义3.4 数据查询3.5 数据更新3.6 视图3.7 小结,3.2 学生 课程数据库,学生 课程数据库中包括以下3个表:-学生表:Student(Sno,Sname,Ssex,Sage,Sdept)-课程表:Course(Cno,Cname,Cpno,Ccredit)-学生选课表:SC(Sno,Cno,Grade)关系的主码加下划线表示。,学生 课程数据库(续),学生表:,学生 课程数据库(续),课程表:,学生 课程数据库(续),学生选课表:,第3章 关系数据库标准语言SQL,3.1 SQL概述3.2 学生 课程数据库3.3 数据定义3.4 数据查询3.5 数
7、据更新3.6 视图3.7 小结,数据定义概述,SQL的数据定义功能定义模式 创建模式 删除模式定义表 创建表 删除表 修改表定义,数据定义概述(续),SQL的数据定义功能(续)定义视图(外模式)创建视图 删除视图 间接修改视图定义:删除+创建定义索引(内模式)创建索引 删除索引间接修改索引定义:删除+创建,数据定义概述(续),表3.2 SQL的数据定义语句,3.3 数 据 定 义,3.3.1 模式的定义与删除基本表的定义、删除与修改索引的建立与删除,3.3 数 据 定 义,3.3.1 模式的定义与删除基本表的定义、删除与修改索引的建立与删除,3.3.1 模式的定义与删除,1.定义模式2.删除模
8、式,3.3.1 模式的定义与删除,1.定义模式2.删除模式,一、定义模式,模式定义语句为:CREATE SCHEMA AUTHORIZATION-若没有指定,则隐含为-要创建模式,调用该命令的用户必须拥有DBA权限,或者获得了DBA授予的CREATE SCHEMA的权限,定义模式(续),例1 定义一个学生 课程模式ST CREATE SCHEMA“S-T”AUTHORIZATION WANG;为用户WANG定义了一个模式S-T例2 CREATE SCHEMA AUTHORIZATION WANG;语句没有指定,则隐含为用户名WANG,定义模式(续),定义模式实际上定义了一个命名空间,在这个空间
9、中可以进一步定义该模式包含的数据库对象,例如基本表、视图、索引等目前,在CREATE SCHEMA中可以接受CTEATE TABLE,CREATE VIEWT GRANT子句。即可以在创建模式的同时在这个模式定义中进一步创建基本表、视图,定义授权 CREATE SCHEMA AUTHORIZATION,定义模式(续),例3 CREATE SCHEMA TEST AUTHORIZATION ZHANG CREATE TABLE TAB1(COL1 SMALLINT,COL2 INT,COL3 CHAR(20),COL4 NUMERIC(10,3)COL5 DECIMAL(5,2);为用户ZHAN
10、G创建了一个模式TEST,并且在其中定义了一个表TAB1.,3.3.1 模式的定义与删除,1.定义模式2.删除模式,二、删除模式,删除模式语句如下:DROP SCHEMA-选择了CASCADE(级联),表示在删除模式的同时把该模式中所有的数据库对象全部一起删除。-选择了RESTRICT(限制),表示若该模式中已经定义了下属的数据库对象,则拒绝该删除语句的执行,只有当该模式中没有任何下属的对象时才能执行删除语句。,删除模式(续),例4 DROP SCHEMA ZHANG CASCADE 该语句删除了模式ZHANG,同时该模式中已经定义的表TAB1也被删除了。,3.3 数 据 定 义,3.3.1
11、模式的定义与删除基本表的定义、删除与修改索引的建立与删除,基本表的定义、删除与修改,一、定义基本表二、数据类型三、模式与表四、修改基本表五、删除基本表,基本表的定义、删除与修改,一、定义基本表二、数据类型三、模式与表四、修改基本表五、删除基本表,一、定义基本表,语句格式CREATE TABLE(,);:所要定义的基本表的名字:组成该表的各个属性(列):涉及相应属性列的完整性约束条件:涉及一个或多个属性列的完整性约束条件,定义基本表(续),表级完整性约束与列级完整性约束常用完整性约束主码约束:PRIMARY KEY参照完整性约束:FOREIGN KEY 属性列名REFERENCES 表名(列名)
12、唯一性约束:UNIQUE非空值约束:NOT NULL取值约束:CHECK,例题,例5 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。CREATE TABLE Student(Sno CHAR(9)PRIMARY KEY,Sname CHAR(20)UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20);,例题(续),例6 建立一个“课程”表Course,由课程号Cno,课程名Cname,先行课Cpno和学分Ccredit组成,
13、Cno为主码。CREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY Cpno REFERENCES Course(Cno);,例题(续),例7 建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno,Cno)为主码。CREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFEREN
14、CES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno);,基本表的定义、删除与修改,一、定义基本表二、数据类型三、模式与表四、修改基本表五、删除基本表,二、数据类型,关系模型中每一个属性来自一个域,它的取值必须是域中的值SQL中域的概念用数据类型来实现。定义表的各个属性时需要指明其数据类型及长度一个属性选用哪种数据类型要根据实际情况来决定,般要从两个方面考虑,一是数值范围,二是要做哪些运算,数据类型(续),SQL提供的主要数据类型,如下所示:数据类型 含义 CHAR(n)长度为n的定长字符串 VARCHAR(n)最大长度为n的变长字符串
15、INT 长整数(也可以写作INTEGER)SMALLINT 短整数 NUMERIC(p,d)定点数,由p位数字组成,小数后面有d位数字 REAL 取决于机器精度的浮点数 Double Precision 取决于机器精度的双精度浮点数 FLOAT(n)浮点数,精度至少为n位数字 DATE 日期,包含年、月、日,格式为YYYY-MM-DD TIME 时间,包含一日的时、分、秒,格式为HH:MM:SS,数据类型(续),数据类型不同的数据库系统支持的数据类型不完全相同 IBM DB2 SQL支持的数据类型SMALLINT 半字长二进制整数。INTEGER或INT 全字长二进制整数。DECIMAL(p,
16、q)压缩十进制数,共p位,其中小数 或DEC(p,q)点后有q位。0qp15,q=0 时可以省略不写。FLOAT 双字长浮点数。,数据类型(续),数据类型(续)CHARTER(n)长度为n的定长字符串。或CHAR(n)VARCHAR(n)最大长度为n的变长字符串。GRAPHIC(n)长度为n的定长图形字符串。VARGRAPHIC(n)最大长度为n的变长图形字符串。DATE 日期型,格式为YYYY-MM-DD。TIME 时间型,格式为。TIMESTAMP 日期加时间。,数据类型(续),ORACLE SQL支持的数据类型VARCHAR2(n)CHAR(n)NUMBER(p,q)DATELONGRA
17、W 或 LONGRAW,数据类型(续),KingBase ISQL支持的数据类型 字符串类型 CHARACTER(长度)最大长度为256个字符 CHAR(长度)CHARACTIC的同义词 CHARACTER VARYING(n)VARCHAR(n)TEXT 大文本,数据类型(续),KingBase ISQL支持的数据类型精确数值类型 NUMERIC(精度,标度)标度值应小于精度值 标度缺省为0,精度缺省为10 DECIMAL(精度,标度)DEC(精度,标度)DECIMAL的同义词 INTEGER INT INTEGER的同义词 SMALLINT,数据类型(续),KingBase ISQL支持的
18、数据类型近似数值类型 FLOAT(精度)可选精度浮点数 REAL 单精度浮点数 DOUBLE PRECISION 双精度浮点数 DOUBLE 同义词,数据类型(续),KingBase ISQL支持的数据类型日期时间类型 DATE 日期 TIME WITH TIME ZONE 时间 TIMETZ TIME WITHOUT TIME ZONE TIME TIMESTAMP WITH TIME ZONE 日期和时间 TIMESTAMPTZ TIMESTAMP WITHOUT TIME ZONE TIMESTAMP INTERVAL 通用的时间间隔,数据类型(续),KingBase ISQL支持的数据
19、类型位串 BIT(n)定长位串 BIT VARYING(n)变长位串 BINARY LARGE OBJECT 二进制大对象 BLOB BINARY LARGE OBJECT的同义词 BYTEA 二进制位串布尔型 BOOLEAN 逻辑布尔量 BOOL BOOLEAN的同义词,基本表的定义、删除与修改,一、定义基本表二、数据类型三、模式与表四、修改基本表五、删除基本表,三、模式与表,每一个基本表都属于某一个模式,一个模式包含多个基本表定义基本表时定义它所属的模式有三种方法:-方法一:在表名中明显地给出模式名。如:CREATE TABLE“S-T”.Student();-方法二:在创建模式语句中同时
20、创建表,如例3所示。-方法三:设置所属的模式,这样在创建表时表名中不必给出模式名,模式与表(续),当用户创建基本表时若没有指定模式,系统根据搜索路径来确定该对象所属的模式搜索路径包含一组模式列表,RDBMS会使用模式列表中第一个存在的模式作为数据库对象的模式名显示当前搜索路径的语句:SHOW search_path,模式与表(续),搜索路径的当前默认值是:$user,PUBLIC。含义是首先搜索与用户名相同的模式名,若该模式名不存在,则使用PUBLIC模式DBA用户也可以设置搜索路径,例如:SET search_path TO“S-T”,PUBLIC,基本表的定义、删除与修改,一、定义基本表二
21、、数据类型三、模式与表四、修改基本表五、删除基本表,四、修改基本表,语句格式ALTER TABLE ADD 完整性约束 DROP ALTER COLUMN;:要修改的基本表ADD子句:增加新列和新的完整性约束条件DROP子句:删除指定的完整性约束条件ALTER COLUMN子句:用于修改原有的列定义,包括修改列名和数据类型,例题,例8 向Student表增加“入学时间”列,其数据类型为日期型。ALTER TABLE Student ADD S_entrance DATE;不论基本表中原来是否已有数据,新增加的列一律为空值。如果基本表中原来已有数据,新增列不可有NOT NULL约束,例题,例9
22、将年龄的数据类型由字符型改为整数。ALTER TABLE Student ALTER COLUMN Sage INT;注:修改原有的列定义有可能会破坏已有数据。,例题,例10 增加课程名称必须取唯一值的约束条件。ALTER TABLE Course ADD UNIQUE(Cname);,基本表的定义、删除与修改,一、定义基本表二、数据类型三、模式与表四、修改基本表五、删除基本表,五、删除基本表,语句格式DROPTABLE RESTRICTCASCADE;选择RESTRICT:则该表的删除是有限制条件的。欲删除的基本表不能被其他表的约束所引用,不能有视图,不能有触发器,不能有存储过程或函数等若选
23、择CASCADE:则该表的删除没有限制条件。在删除表的同时,相关的依赖对象都将被一起删除缺省情况是RESTRICT,例题,例11 删除Student表。DROP TABLEStudent;基本表定义一旦被删除,不仅表中的数据和此表的定义将被删除,而且此表上建立的索引、视图、触发器等有关对象一般也都将被删除。,3.3 数 据 定 义,3.3.1 模式的定义与删除基本表的定义、删除与修改索引的建立与删除,索引的建立与删除,建立索引是加快查询速度的有效手段建立索引 DBMS自动建立 PRIMARY KEY UNIQUE DBA或表的属主(即建立表的人)根据需要建立维护索引 DBMS自动完成使用索引
24、DBMS自动选择是否使用索引以及使用哪些索引,一、建立索引,语句格式CREATE UNIQUE CLUSTER INDEX ON(,);用指定要建索引的基本表名字索引可以建立在该表的一列或多列上,各列名之间用逗号分隔用指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASCUNIQUE表明此索引的每一个索引值只对应唯一的数据记录CLUSTER表示要建立的索引是聚簇索引,建立索引(续),唯一值索引对于已含重复值的属性列不能建UNIQUE索引对某个列建立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值。这相当于增加了一个UNIQUE约束。,建立索引(续),聚
25、簇索引建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚簇索引的索引项顺序与表中记录的物理顺序一致。例13:CREATE CLUSTER INDEX Stusname ON Student(Sname);在Student表的Sname(姓名)列上建立一个聚簇索引,而且Student表中的记录将按照Sname值的升序存放,建立索引(续),在一个基本表上最多只能建立一个聚簇索引聚簇索引的用途:对于某些类型的查询,可以提高查询效率聚簇索引的适用范围 很少对基表进行增删操作 很少对其中的变长列进行修改操作,例题,例14 为学生-课程数据库中的Student,Course,SC三
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课件 第三

链接地址:https://www.31ppt.com/p-5985854.html