数据库自主学习—SQL

上传人:jiups****uk12 文档编号:55615329 上传时间:2018-10-03 格式:PPT 页数:58 大小:206KB
返回 下载 相关 举报
数据库自主学习—SQL_第1页
第1页 / 共58页
数据库自主学习—SQL_第2页
第2页 / 共58页
数据库自主学习—SQL_第3页
第3页 / 共58页
数据库自主学习—SQL_第4页
第4页 / 共58页
数据库自主学习—SQL_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《数据库自主学习—SQL》由会员分享,可在线阅读,更多相关《数据库自主学习—SQL(58页珍藏版)》请在金锄头文库上搜索。

1、An Introduction to Database System,天津师范大学数学科学学院,数据库系统概论 An Introduction to Database System第三章 关系数据库标准语言SQL,An Introduction to Database System,3.1 SQL概述,SQL,结构化查询语言,是关系数据库的标准语言 SQL的产生与发展 1974年由Boyce和Chamberlin提出,并在IBM公司研制的关系数据库管理系统原型System R上实现 1986年获批作为关系数据库语言的美国标准 1987年通过ISO认证为关系数据库语言标准 SQL标准经历了SQL

2、/86|SQL/89SQL/92SQL/99SQL2003的进展过程,An Introduction to Database System,SQL的特点,综合统一 高度非过程化 面向集合的操作方式 以同一种语法结构提供两种使用方法 语言简洁,易学易用,An Introduction to Database System,SQL的动词,An Introduction to Database System,SQL的基本概念,支持SQL的DBMS同样支持关系数据库三级模式结构外模式视图和部分基本表模式 基本表内模式存储文件 在SQL中一个关系对应一个表。一个(或多个)基本表对应一个存储文件,一个表可

3、以带若干索引,索引也存放在存储文件中。 视图是从一个或几个基本表导出的表,是一个虚表,数据库只存放视图的定义而不存放数据。,An Introduction to Database System,3.2 学生-课程数据库,Student,SC,Course,An Introduction to Database System,3.3 数据定义,SQL的数据定义语句,An Introduction to Database System,3.3.1 模式的定义与删除,定义模式:CREATE SCHEMA AUTHORIZATION 说明: 1.若未指定,则隐含为2.要创建模式,调用该命令的用户必须拥

4、有DBA权限,或者获得了DBA授予的CREATE SCHEMA的权限,An Introduction to Database System,例1:定义一个学生-课程模式S-TCREATE SCHEMA “S-T” AUTHORIZATION WANG 例2:CREATE SCHEMA AUTHORIZATION WANG定义模式实际上定义了一个命名空间,在其中可以进一步定义该模式包含的数据库对象,如基本表、视图、索引等,An Introduction to Database System,CREATE SCHEMA TEST AUTHORIZATION ZHANGCREATE TABLE TA

5、B1(COL1 SMALLINT,COL2 INT,COL3 CHAR(20),COL4 NUMERIC(10,3)COL5 DECIMAL(5,2),例3:,An Introduction to Database System,DROP SCHEMA 说明:CASCADE:在删除模式的同时将该模式中所有的数据库对象全部一起删除RESTRICT:当该模式中没有任何下属对象时才能执行删除操作 例4:DROP SCHEMA ZHANG CASCADE删除模式ZHANG,且将其表TAB1一起删除,删除模式,An Introduction to Database System,CREATE TABLE

6、 ( , , ) :所要定义的基本表的名字 :组成该表的各个属性(列) :相应属性列的完整性约束条件 :一个或多个属性列的完整性约束条件,3.3.2 基本表的定义与删除,An Introduction to Database System,数据类型,An Introduction to Database System,模式与表,每个表都属于某一个模式,一个模式包含多个基本表。定义表时定义它所属的模式有三种方法: 方法一:在表名中明确给出模式名例:CREATE TABLE “S-T”.Student() 方法二:在创建模式同时创建表例:例3 方法三:设置所属的模式,在创建表时表名中不必给出模式名

7、当用户创建表时未指定模式,系统根据搜索路径来确定该对象所属的模式,An Introduction to Database System,修改基本表,ALTER TABLE ADD 完整性约束 DROP ALTER COLUMN ADD:增加新列和新的完整性约束条件 DROP:删除指定的完整性约束条件 ALTER COLUMN:用于修改原有列定义(列名和数据类型),An Introduction to Database System,删除基本表,DROP TABLE RESTRICT|CASCADE RESTRICT:要删除的基本表不能被其他表的约束所引用,不能有视图,不能有触发器,不能有存储过

8、程或函数等(缺省值) CASCADE:在删除基本表时,相关的依赖对象均被一起删除,An Introduction to Database System,间接删除 将表中要保留的列及其内容复制到一个新表中 删除原表 再将新表重命名为原表名 直接删除例1:删除学生表中的某一列ALTER TABLE Student Drop Scome例2:删除学生姓名必须取唯一值的约束ALTER TABLE Student DROP UNIQUE(Sname),删除属性列,An Introduction to Database System,3.3.3 索引的建立与删除,建立索引是加快查询速度的有效手段 建立索引

9、 DBA或表的属主根据需要建立 有些DBMS自动建立以下列上的索引PRIMARY KEYUNIQUE 维护索引DBMS自动完成 使用索引DBMS自动选择是否使用索引以及使用哪些索引,An Introduction to Database System,建立索引,CREATE UNIQUE CLUSTER INDEX ON (, ) : 索引可建在表的一列或多列上,各列名间用逗号分隔 : 指定索引值排列次序,升序ASC(缺省),降序DESC UNIQUE: 表明此索引的每一个索引值只对应唯一的数据记录 CLUSTER: 表示要建立的索引是聚簇索引,An Introduction to Datab

10、ase System,对于已含重复值的属性列不能建UNIQUE索引 对某个列建立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值。这相当于增加了一个UNIQUE约束,唯一值索引,An Introduction to Database System,聚簇索引,建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚簇索引的索引项顺序与表中记录的物理顺序一致。 例:CREATE CLUSTER INDEX Stusname ON Student(Sname) 在Student表的Sname列上建立一个聚簇索引,Student表中的记录将按照Sname

11、值的升序存放,An Introduction to Database System,在一个基本表上最多只能建立一个聚簇索引 聚簇索引的用途:对于某些类型的查询,可以提高查询效率 聚簇索引的适用范围很少对基表进行增删操作很少对其中的变长列进行修改操作,An Introduction to Database System,例题,例:为Student、Course、SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号降序建唯一索引,SC表按学号升序和课程号降序建唯一索引CREATE UNIQUE INDEX Stusno ON Student(Sno)CREATE U

12、NIQUE INDEX Coucno ON Course(Cno DESC)CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC),An Introduction to Database System,删除索引,DROP INDEX 删除索引时,系统会从数据字典中删去有关该索引的描述例:删除Student表的Stusname索引 DROP INDEX Stusname,An Introduction to Database System,SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER B

13、Y ASC|DESC ,3.4 数据查询,An Introduction to Database System,语句格式,SELECT: 指定要显示的属性列 FROM: 指定查询对象(基本表或视图) WHERE: 指定查询条件 GROUP BY:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用聚集函数。 HAVING: 筛选出只有满足指定条件的组 ORDER BY:对查询结果表按指定列的升序或降序排序,An Introduction to Database System,3.4.1 单表查询,查询仅涉及一个表,是一种最简单的查询操作 1. 选择表中的若干列 2. 选

14、择表中的若干元组 3. 对查询结果排序 4. 使用集函数 5. 对查询结果分组,An Introduction to Database System,查询指定列或全部列,例1: 查询全体学生的学号与姓名SELECT Sno,Sname FROM Student 例2:查询全体学生的详细记录SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student 或SELECT * FROM Student,An Introduction to Database System,查询经过计算的值,SELECT子句的为表达式 算术表达式 字符串常量 函数 列别名,An Introd

15、uction to Database System,SELECT Sname,2008-Sage FROM Student Sname 2008-Sage- -李勇 1988刘晨 1989王名 1990张立 1989,例4: 查全体学生的姓名及其出生年份,An Introduction to Database System,SELECT Sname,Year of Birth:,2008-Sage,LOWER(Sdept) FROM Student;,例5:查询全体学生的姓名、出生年份和所在系,要求用小写字母表示所有系名,Sname Year of Birth: 2008-Sage LOWER

16、(Sdept) - - - -李勇 Year of Birth: 1988 cs刘晨 Year of Birth: 1989 is王名 Year of Birth: 1990 ma张立 Year of Birth: 1989 is,An Introduction to Database System,例5-1: 使用列别名改变查询结果的列标题,SELECT Sname NAME,Year of Birth: BIRTH,2008-Sage BIRTHDAY,LOWER(Sdept) DEPARTMENT FROM Student;NAME BIRTH BIRTHDAY DEPARTMENT - - - -李勇 Year of Birth: 1988 cs刘晨 Year of Birth: 1989 is王名 Year of Birth: 1990 ma张立 Year of Birth: 1989 is,

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

当前位置:首页 > 行业资料 > 其它行业文档

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