ch3 关系数据库语言ppt课件.ppt
《ch3 关系数据库语言ppt课件.ppt》由会员分享,可在线阅读,更多相关《ch3 关系数据库语言ppt课件.ppt(45页珍藏版)》请在三一办公上搜索。
1、第3章 关系数据库语言,中国铁道出版社,数据库技术及应用贾铁军主编 沈学东副主编刘泓漫 熊玉梅 闫俊英编著,高等应用型院校计算机教育规划教材,上海市精品课程“数据库原理及应用”,目 录,重点,3.1.1 SQL的基本概念,SQL语言支持数据库三级模式结构,其中外模式对应视图,模式对应基本表,内模式对应存储文件。如图3-1所示。 1. 基本表(Base Table) 基本表是模式的基本内容。它是实际存储在数据库中的表,是独立存在的,不是由其它的表导出的表。一个基本表对应一个实际存在的关系。关系模型中的元组在基本表中称为行,属性称为列; 2. 视图(View) 视图是外模式的基本单位。是从基本表或
2、其他视图导出的一虚表,用户可以通过视图使用数据库中基于基本表的数据。视图本身不独立存储在数据库中,数据库把视图以一种逻辑定义形式保存在数据字典里。当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。,要点复习,姓名,性别,学号,3.1.1 SQL的基本概念,3. 存储文件 存储文件的逻辑结构组成了关系数据库的内模式。一个基本表可以跨几个存储文件,一个存储文件也可存放几个基本表。一个基本表可以有若干个索引,索引同样存放在存储文件中.存储文件的存储结构对用户来说是简捷的.每个存储文件与外部存储器上一个物理文件对应。 4. SQL用户 SQL用户可以是终端用户,也可以是应用程序。用户可用S
3、QL语句对视图和基本表进行查询等操作。,课堂讨论(1)什么是基本表?(2)什么是视图?(3)什么是存储文件?(4)SQL语言有哪些特点?,3.1.2 SQL的主要特点,语言简洁,易学易用功能强、语法简单.核心数据定义、操纵、控制9动词.2. 高度非过程化非过程语言,只提要求及数据,无需知道怎么做及存储等.3. 面向集合(语言;操作对象及结果都是关系)4. 功能一体化(定义语言,查询语言,操纵语言,控制语言)5. 用同一种语法结构提供两种使用方式(自含式-嵌入式),Create,drop,select,insert,updateDelete,grant授权,revoke取消,3.2.1创建和删除
4、SQL模式,1数据库的创建 基本表的集合被定义为一个SQL模式,即数据库模式。一个SQL模式由模式名和模式拥有者的用户名或帐号来确定,SQL模式包含了这个模式中所有元素的定义。创建了一个SQL模式,就是定义了一个存储空间,其语法如下: CREATE SCHEMA AUTHORIZATION 【案例3-1】定义商品销售数据库的SQL模式,模式拥有者为李平. CREATE SCHEMA 商品销售 AUTHORIZATION 李平【注意】模式中的元素是指:基本表、视图、索引等。 大多数系统将“SQL模式”成为“数据库”,语句采用“SCHEMA”改为“DATABASE”。,DATABASE,符号,/,
5、数据库,3.2.1创建和删除SQL模式,2SQL模式的删除 当一个SQL模式及其中的所有元素都不需要时,可以删除这个SQL模式。其语法如下: DROP SCHEMA CASCADE|RESTRICT 删除方式有两种:CASCADE(级联式)方式:执行DROP语句时,把SQL模式及其下属的所有元素全部撤消.这种删除不可恢复,使用要慎重。RESTRICT(约束式)方式:执行DROP语句时,当SQL模式中有下属元素时,拒绝执行DROP语句,即只有SQL模式下没有下属元素时才能撤消。此为SQL模式删除的默认参数选项.【案例3-2】撤消SQL模式商品销售及其下属所有的元素。 DROP SCHEMA 商品
6、销售 CASCADE,DATABASE,DATABASE,修改ALTER,3.2.2 数据类型,3.2.3创建、修改和删除基本表(结构),1.创建基本表 创建基本表就是定义基本表的结构,SQL语言使用CREATE TABLE语句定义基本表结构。其一般格式如下:CREATE TABLE ( 列完整性约束, 列完整性约束2, 表级完整性约束)其中:基本表名是指所定义的基本表的名字,可以由一个或多个属性组成,在一个数据库中不允许有两个基本表同名。 列名是指该列(属性)的名称。一个表中不能有两列同名。 列数据类型是指该列的数据类型。 列完整性约束是指针对该列设置的约束条件。,USE 数据库名,属性名,
7、3.2.3创建、修改和删除基本表,SQL的列级完整性约束条件最常见的有以下4种。(1)NOT NULL、NULL约束 NOT NULL是指该列值不能为空。NULL是指该列值可以为空。(2)UNIQUE约束 UNIQUE是唯一性约束,是指该列中不能存在重复的属性值。(3)DEFAULT约束 DEFAULT约束是默认约束,是指该列某值在未定义时的默认值。(4)CHECK约束 CHECK约束是检查约束,该约束通过约束条件表达式设置列值应该满足的条件。 表级完整性约束是规定了关系的主键、外键和用户自定义完整性约束。,3.2.3创建、修改和删除基本表,【案例3-3】商品销售数据库中基本表的关系模式如下所
8、示,用SQL语言定义这3个表。商品(商品编号,商品名,产地,价格,等级);售货员(售货员编号,姓名,性别,年龄);售货(商品编号,售货员编号,数量)。CREATE TABLE 商品(商品编号 CHAR(4),NOT NULL UNIQUE,商品名 VARCHAR(50) NOT NULL,产地 VARCHAR(50) NULL,价格 REAL NOT NULL,等级 CHAR(6) NULL,);,USE 商品销售GO,3.2.3创建、修改和删除基本表,CREATE TABLE 售货员 (售货员编号 CHAR(3), 姓名 VARCHAR(50)NOT NULL, 性别 CHAR(2) NOT
9、 NULL, 年龄 SMALLINT, PRIMARY KEY(售货员编号);CREATE TABLE 售货 (商品编号 CHAR(4), 售货员编号 CHAR(3), 数量 INT, PRIMARY KEY(商品编号,售货员编号), FOREIGN KEY (商品编号) REFERENCES 商品(商品编号), FOREIGN KEY(售货员编号)REFERENCES 售货员(售货员编号), );,主键(唯一性),3.2.3创建、修改和删除基本表,2.修改基本表基本表建立后,如果实际需要发生改变,可对基本表结构进行修改,即增加新的列、删除原有的列和修改原有列的类型。其一般格式如下: ALTE
10、R TABLE ADD 列完整性约束 DROP COLUMN CASCADE|RESTRICT MODIFY 其中,ADD表示增加新的列,DROP表示删除原有的列,MODIFY表示修改原有的列。【案例3-4】在售货员基本表中增加一个地址列。 ALTER TABLE 售货员 ADD 地址 VARCHAR(50); 新增加的属性不能定义为“NOT NULL”.基本表在增加一个属性后,原有元组在新增加的属性列上的值都被定义为空值(NULL)。,3.2.3创建、修改和删除基本表,3基本表的删除当需求发生改变,不再需要数据库某个基本表时,可以将其删除。当一个基本表被删除后,该表中的所有数据连同该表建立的
11、索引都会被删除,而建立在该表上的视图不会随之删除,系统将继续保留其定义,但已无法使用。删除基本表的一般格式如下: DROP TABLE 【案例3-6】 删除商品表。 DROP TABLE 商品,课堂讨论(1)SQL提供的主要数据类型有哪些? (2)SQL的列级完整性约束条件最常见的有哪几种,并说明它们的含义?(3)举例说明如何删除一个基本表。,3.3 索 引,3.3.1 索引的作用 1. 加快查询速度,这也是创建索引的最主要的原因。 2. 通过创建唯一性索引,可保证表中每一行数据的唯一性。3.3.2 索引的分类 1. 按照索引记录存放位置可分为聚集索引与非聚集索引。 聚集索引确定表中数据的物理
12、顺序.按照索引的字段排列记录,并且依照排好的顺序将记录存储在表中。 非聚集索引按照索引的字段排列记录,数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。 2. 唯一索引 唯一索引表示表中每一个索引值只对应唯一的数据记录,这与表的PRIMARY KEY的特性类似,因此唯一性索引常用于PRIMARY KEY的字段上以区别每一记录。 3. 复合索引的概念 复合索引是指建立在多个列上的索引,单独的字段允许有重复的值.,排序文件,3.3.3创建索引,在SQL语言中,建立索引使用CREATE INDEX语句,一般格式为: CREATE UNIQUECLUSTERINDEX ON (
13、 , );其中: UNIQUE表明建立唯一索引。CLUSTER表示建立聚集索引.次序用来指定索引值的排列顺序,可为ASC(升序)或DESC(降序),缺省值为ASC。 【案例3-7】商品表的属性列商品编号上创建一个非聚集索引 CREATE INDEX 商品_编号 ON 商品(商品编号SC);,3.3.4删除索引,建立索引是为了提高查询速度,但过多或不当的索引会导致系统低效,应删除不必要的索引。 在SQL语言中,删除索引使用DROP INDEX语句,一般格式为: DROP INDEX 索引名【案例3-8】删除表商品的索引商品_编号。 DROP INDEX 商品_编号,课堂讨论(1)索引有什么作用?
14、 (2)什么是唯一索引,它有什么作用?(3)什么是复合索引?,3.4 SQL的数据查询(记录操作),3.4.1 SELECT语句命令的格式SELECT语句命令格式:SELECT ALL|DISTINCT目标表的列名或列表达式1,目标表的列名或列表达式2 FROM 表名或视图名1,表名或视图名2 WHERE 行条件表达式 GROUP BY 列名HAVING 组条件表达式 ORDER BY 列名ASC|DESC,.,属性名,HAVING短语用于GROUP BY 分组中的筛选,如普通行筛选WHERE短语一样。 例:各科平均成绩高于80分(含80分)学生及平均成绩 SELECT 学生姓名, AVG(成
15、绩) as 平均成绩 FROM 成绩表 GROUP BY 学生姓名 HAVING AVG (成绩)=80,3.4.2 SELECT语句中的限定,1.SELECT子句SELECT子句描述的是最终查询结果的表结构和记录。(1)在目标表的列名或列表达式前加DISTINCT,保证输出的结果表中不出现重复元组。(2)列表达式是对一个单列求聚合值的表达式,SQL提供的聚合函数如表3-2所示。列表达式允许出现加减乘除及列名、常数的算术表达式。(3)需要在结果表中显示FROM子句中表或视图的所有列,用*来表示。(4)需要在结果表中输出的列名与基本表或视图的列名不一致,可使用旧名AS新名的形式改名.实际使用时,
16、AS可省略。,3.4.2 SELECT语句中的限定,表3-2 聚合函数,3.4.2 SELECT语句中的限定,【案例3-9】 在商品销售数据库中,查询每一等级的商品数量.在查询结果表中,商品数量显示的列名为数量。 SELECT 等级,COUNT(*)商品名AS 数量 FROM 商品 GROUP BY 等级【案例3-10】查询男售货员卖出的商品编号。 SELECT DISTINCT 售货.商品编号 FROM 售货员,售货 WHERE 售货员.售货员编号=售货.售货员编号 AND 售货员.性别=男,等值连接,3.4.2 SELECT语句中的限定,2.同一个基本表在 FROM子句中多次引用时可用AS
17、来增加别名。3.WHERE子句(1)行条件表达式可以使用BETWEEN.AND.来限定一个值的范围,也可以使用算术比较运算符。(2)行条件表达式中字符串匹配用LIKE操作符,在表达式中可使用两个通配符: 百分号( % ):表示可与任意长度(可为零)的字符串匹配. 下划线( _ ): 表示可与任意单个字符匹配.(3)查询空值操作使用 IS NULL和IS NOT NULL。,3.4.2 SELECT语句中的限定,【案例3-11】 查询价格在10元到100元之间的商品信息。SELECT *FROM 商品WHERE 价格 BETWEEN 10 AND 100【案例3-12】 查询姓李的售货员的售货员
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ch3 关系数据库语言ppt课件 关系 数据库 语言 ppt 课件
链接地址:https://www.31ppt.com/p-1375575.html