第三章关系数据库标准语言 SQ L2

上传人:w****i 文档编号:91078962 上传时间:2019-06-21 格式:PPT 页数:88 大小:551.50KB
返回 下载 相关 举报
第三章关系数据库标准语言 SQ L2_第1页
第1页 / 共88页
第三章关系数据库标准语言 SQ L2_第2页
第2页 / 共88页
第三章关系数据库标准语言 SQ L2_第3页
第3页 / 共88页
第三章关系数据库标准语言 SQ L2_第4页
第4页 / 共88页
第三章关系数据库标准语言 SQ L2_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《第三章关系数据库标准语言 SQ L2》由会员分享,可在线阅读,更多相关《第三章关系数据库标准语言 SQ L2(88页珍藏版)》请在金锄头文库上搜索。

1、2019/6/21,1,第三章 关系数据库标准语言SQL,3.1 SQL概述 3.2 学生课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.8 小结,2019/6/21,2,3.1 SQL概述,SQL的特点 1. 综合统一 2. 高度非过程化 3. 面向集合的操作方式 4. 以同一种语法结构提供两种使用方法 5. 语言简洁,易学易用,2019/6/21,3,5. 语言简捷,易学易用,2019/6/21,4,SQL语言支持的关系数据库的三级逻辑结构,基本表(Base Table)和视图(View) SQL语言支持数据库的三级模式结构,3.1.2 SQL语言的基本

2、概念,2019/6/21,5,第三章 关系数据库标准语言SQL,3.1 SQL概述 3.2 学生课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.8 小结,2019/6/21,6,3.2 学生课程数据库-学生,(a),Student,2019/6/21,7,3.2 学生课程数据库-课程,(b),Course,2019/6/21,8,3.2 学生课程数据库-选课,(c),SC,2019/6/21,9,第三章 关系数据库标准语言SQL,3.1 SQL概述 3.2 学生课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.8 小结,20

3、19/6/21,10,3.3 数 据 定 义,2019/6/21,11,3.3.1 模式的定义与删除,一 定义模式 CREATE SCHEMA AUTHORIZATION 二 删除模式 DROP SCHEMA ,2019/6/21,12,创建、修改、删除数据库,创建数据库 CREATE DATABASE 删除数据库 DROP DATABASE ,2019/6/21,13,3.3.2 基本表的定义、删除与修改,一、定义基本表 CREATE TABLE ( , , ); :所要定义的基本表的名字 :组成该表的各个属性(列) :涉及相应属性列的完整性约束条件 :涉及一个或多个属性列的完整性约束条件,

4、详细,2019/6/21,14,定义基本表(续),常用完整性约束 主码约束: PRIMARY KEY 唯一性约束:UNIQUE 非空值约束:NOT NULL 参照完整性约束 PRIMARY KEY与 UNIQUE的区别?,2019/6/21,15,例题,例5 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。 CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHA

5、R(1) , Sage INT, Sdept CHAR(15);,2019/6/21,16,例题 (续),例7 建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码。 CREATE TABLE SC( Sno CHAR(5) , Cno CHAR(3) , Grade int, Primary key (Sno, Cno);,2019/6/21,17,例题 (续),2019/6/21,18,二、数据类型,当用SQL语句定义表时,需要为表中的每一个字段设置一个数据类型,用来指定字段所存放的数据是整数、字符串、货币或是其它类型的数据。 S

6、QL SERVER 的数据类型有很多种,分为以下9类: 1. 整数数据类型:依整数数值的范围大小,有BIT, INT , SMALLINT, TINYINT四种。 2. 精确数值类型:用来定义可带小数部分的数字,有NUMERIC和DECIMAL两种。二者相同,但建议使用DECIMAL。如:123.0、8000.56,2019/6/21,19,3. 日期时间数据类型:用来表示日期与时间,依时间范围与精确程度可分为DATETIME与SMALLDATETIME两种。如:1998-06-08 15:30:00 4. 字符串数据类型:用来表示字符串的字段。包括:CHAR, VARCHAR, TEXT三种

7、,如:“数据库” 5. 二进制数据类型:用来定义二进制码的数据。有:BINARY, VARBINARY,IMAGE 三种,通常用十六进制表示:如:OX5F3C 其它:货币型、浮点型、实数型、UNICODE字符型,2019/6/21,20,三、模式与基本表,一个基本表属于一个模式,一个模式包含多个基本表 定义基本表所属的模式,三种方法: 定义时显式的给出模式名 创建模式语句时同时创建表 先设置所属模式,再在相应的模式下定义基本表,2019/6/21,21,四、修改基本表,ALTER TABLE ADD 完整性约束 DROP ALTER COLUMN ; :要修改的基本表 ADD子句:增加新列和新

8、的完整性约束条件 DROP子句:删除指定的完整性约束条件 ALTER COLUMN子句:用于修改列名和数据类型,2019/6/21,22,例题,例8 向Student表增加“入学时间”列,其数据类型为日期型。 ALTER TABLE Student ADD Scome DATE; 不论基本表中原来是否已有数据,新增加的列一律为空值。,2019/6/21,23,例9 将年龄的数据类型改为半字长整数。 ALTER TABLE Student ALTER COLUMN Sage SMALLINT; 注:修改原有的列定义有可能会破坏已有数据,2019/6/21,24,例题,例10 删除学生姓名必须取唯

9、一值的约束。 ALTER TABLE Student DROP UNIQUE(Sname);,2019/6/21,25,语句格式(续),删除属性列 直接/间接删除 把表中要保留的列及其内容复制到一个新表中 删除原表 再将新表重命名为原表名,2019/6/21,26,五、删除基本表,DROP TABLE RESTRICT|CASCADE; 基本表删除时,数据、表上的索引都删除,表上的视图往往仍然保留,但无法引用 删除基本表时,系统会从数据字典中删去有关该 基本表及其索引的描述,2019/6/21,27,例题,例11 删除Student表 DROP TABLE Student CASCADE; 例

10、12 RISTRICT时的删除 Page 88,2019/6/21,28,3.3.2 建立与删除索引,建立索引是加快查询速度的有效手段 建立索引 DBA或表的属主(即建立表的人)根据需要建立 有些DBMS自动建立以下列上的索引 PRIMARY KEY UNIQUE 维护索引 DBMS自动完成 使用索引 DBMS自动选择是否使用索引以及使用哪些索引,2019/6/21,29,一、建立索引,语句格式 CREATE UNIQUE CLUSTER INDEX ON (, ); 用指定要建索引的基本表名字 索引可以建立在该表的一列或多列上,各列名之间用逗号分隔 用指定索引值的排列次序,升序:ASC,降序

11、:DESC。缺省值:ASC UNIQUE表明此索引的每一个索引值只对应唯一的数据记录 CLUSTER表示要建立的索引是聚簇索引,2019/6/21,30,例题,例14 为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。 CREATE UNIQUE INDEX Stusno ON Student(Sno); CREATE UNIQUE INDEX Coucno ON Course(Cno); CREATE UNIQUE INDEX SCno ON SC(S

12、no ASC,Cno DESC);,2019/6/21,31,建立索引 (续),唯一值索引 对于已含重复值的属性列不能建UNIQUE索引 对某个列建立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值。这相当于增加了一个UNIQUE约束,2019/6/21,32,建立索引 (续),聚簇索引 建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚簇索引的索引项顺序与表中记录的物理顺序一致 例13: CREATE CLUSTER INDEX Stusname ON Student(Sname); 在Student表的Sname(姓名)列上建立一个聚簇

13、索引,而 且Student表中的记录将按照Sname值的升序存放,2019/6/21,33,建立索引 (续),在一个基本表上最多只能建立一个聚簇索引 聚簇索引的用途:对于某些类型的查询,可以提高查询效率 聚簇索引的适用范围 很少对基表进行增删操作 很少对其中的变长列进行修改操作,2019/6/21,34,二、删除索引,DROP INDEX ; 删除索引时,系统会从数据字典中删去有关该索引的描述。 例15 删除Student表的Stusname索引。 DROP INDEX Stusname;,2019/6/21,35,3.4 查 询,3.4.1 单表查询 3.4.2 连接查询 3.4.3 嵌套查

14、询 3.4.4 集合查询 3.4.5 SELECT语句的一般格式,2019/6/21,36,概述,语句格式 SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC ;,2019/6/21,37,语句格式,SELECT子句:指定要显示的属性列或表达式 FROM子句:指定查询对象(基本表或视图) WHERE子句:指定查询条件 GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。 HAVING短语:筛选出只有满足指定条件的组 ORDER BY子句:对查询结果表按指定

15、列值的升序或降序排序,2019/6/21,38,示例数据库,学生-课程数据库 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade),2019/6/21,39,3.4 查 询,3.4.1 单表查询 3.4.2 连接查询 3.4.3 嵌套查询 3.4.4 集合查询 3.4.5 SELECT语句的一般格式,2019/6/21,40,3.4.1 单表查询,查询仅涉及一个表,是一种最简单的查询操作 一、选择表中的若干列 二、选择表中的若干元组 三、对查询结果排序

16、四、使用集函数 五、对查询结果分组,2019/6/21,41,1.查询指定列,例1 查询全体学生的学号与姓名。 SELECT Sno,Sname FROM Student; 例2 查询全体学生的姓名、学号、所在系。 SELECT Sname,Sno,Sdept FROM Student;,2019/6/21,42,2.查询全部列,例3 查询全体学生的详细记录。 SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student; 或 SELECT * FROM Student;,2019/6/21,43,3. 查询经过计算的值,SELECT子句的为表达式 算术表达式 字符串常量 函数 列别名 等,2019/6/21,44,3. 查询经过计算的值

展开阅读全文
相关资源
相关搜索

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

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