数据库的标准语言.ppt
2023/11/14,CH3 关系数据库标准语言SQL,1,第3章 数据库的标准语言SQL,2023/11/14,CH3 关系数据库标准语言SQL,2,关系数据库标准语言SQL,SQL语言(Structured Query Language)1974年由Boyce和Chamberlin提出1975年1979年IBM公司在System R原型系统上实现是关系数据库的标准语言,是数据库领域中一个主流语言,2023/11/14,CH3 关系数据库标准语言SQL,3,第3章 关系数据库标准语言SQL,3.1 SQL概述3.2 数据定义3.3 查询3.4 数据更新3.5 视图3.6 数据控制3.7 小结,2023/11/14,CH3 关系数据库标准语言SQL,4,3.1 SQL 概 述,3.1.1 SQL的特点 3.1.2 SQL语言的基本概念,2023/11/14,CH3 关系数据库标准语言SQL,5,3.1 SQL 概 述,3.1.1 SQL的特点 3.1.2 SQL语言的基本概念,2023/11/14,CH3 关系数据库标准语言SQL,6,3.1.1 SQL的特点,综合统一 2.高度非过程化 3.面向集合的操作方式 4.同一种语法结构提供两种使用方式 5.语言简捷,易学易用,2023/11/14,CH3 关系数据库标准语言SQL,7,3.1 SQL 概 述,3.1.1 SQL的特点 3.1.2 SQL语言的基本概念,2023/11/14,CH3 关系数据库标准语言SQL,8,3.1.2 SQL语言的基本概念,2023/11/14,CH3 关系数据库标准语言SQL,9,SQL语言的基本概念(续),用户用SQL语言对基本表和视图进行操作基本表本身独立存在的表,一个关系对应一个表一个(或多个)基本表对应一个存储文件存储文件存储文件组成了关系数据库的内模式存储文件的物理结构是任意的,对用户是透明的视图从一个或几个基本表或视图导出的表是虚表,只存放视图的定义而不存放对应数据,2023/11/14,CH3 关系数据库标准语言SQL,10,第3章 关系数据库标准语言SQL,3.1 SQL概述3.2 数据定义3.3 查询3.4 数据更新3.5 视图3.6 数据控制3.7 嵌入式SQL3.8 小结,2023/11/14,CH3 关系数据库标准语言SQL,11,数据定义概述,SQL的数据定义功能定义表(模式)创建表 删除表 修改表定义定义视图(外模式)创建视图 删除视图,2023/11/14,CH3 关系数据库标准语言SQL,12,数据定义概述(续),SQL的数据定义功能(续)定义索引(内模式)创建索引 删除索引,2023/11/14,CH3 关系数据库标准语言SQL,13,数据定义概述(续),2023/11/14,CH3 关系数据库标准语言SQL,14,3.2 数 据 定 义,3.2.1 定义、删除与修改基本表3.2.2 建立与删除索引,2023/11/14,CH3 关系数据库标准语言SQL,15,3.2 数 据 定 义,3.2.1 定义、删除与修改基本表3.2.2 建立与删除索引,2023/11/14,CH3 关系数据库标准语言SQL,16,定义基本表(续),数据类型不同的数据库系统支持的数据类型不完全相同,2023/11/14,CH3 关系数据库标准语言SQL,17,SQL SERVER 的数据类型有很多种,常用的有以下几类:1.整数数据类型:依整数数值的范围大小,有 BIGINT(8B),INT(4B),SMALLINT(2B),TINYINT(1B)四种。2.精确数值类型:用来定义可带小数部分的数字,有NUMERIC(p,s)和DECIMAL(p,s)两种。,2023/11/14,CH3 关系数据库标准语言SQL,18,3.日期时间数据类型:用来表示日期与时间,依时间范围与精确程度可分为DATETIME与SMALLDATETIME两种。4.字符串数据类型:用来表示字符串的字段。包括:CHAR(n),VARCHAR(n)5、货币数据类型:money和smallmoney,2023/11/14,CH3 关系数据库标准语言SQL,19,字段的长度:指字段所能容纳的最大数据量.精度和小数位数精度是指数中数字的位数,包括小数点左侧的整数部分和小数点右侧的小数部分;小数位数则是指数字小数点右侧的位数。例如:数字12345.678,其精度为8,小数位数为3;只有数值类的数据类型才有必要指定精度和小数位数。,字段的长度、精度和小数位数,2023/11/14,CH3 关系数据库标准语言SQL,20,经常以如下所示的格式来表示数据类型以及它所采用的长度、精度和小数位数,其中的N代表长度,P代表精度,S表示小数位数。CHAR(N)-CHAR(20)NUMERIC(P,S)-NUMERIC(9,3),2023/11/14,CH3 关系数据库标准语言SQL,21,3.2.1 定义、删除与修改基本表,一、定义基本表二、修改基本表三、删除基本表,2023/11/14,CH3 关系数据库标准语言SQL,22,一、定义基本表,关系名(表名)属性名(列名)完整性约束,2023/11/14,CH3 关系数据库标准语言SQL,23,定义基本表(续),语句格式CREATE TABLE(,);,2023/11/14,CH3 关系数据库标准语言SQL,24,定义基本表(续),常用完整性约束主码约束:PRIMARY KEY参照完整性约束唯一性约束:UNIQUE非空值约束:NOT NULL取值约束:CHECK,2023/11/14,CH3 关系数据库标准语言SQL,25,例题,例1 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。,2023/11/14,CH3 关系数据库标准语言SQL,26,例题(续),CREATE TABLE Student(Sno char(5)NOT NULL PRIMARY KEY,Sname char(20)UNIQUE,Ssex char(1),Sage int,Sdept char(15);,2023/11/14,CH3 关系数据库标准语言SQL,27,例题(续),例2 建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno,Cno)为主码。CREATE TABLE SC(Sno CHAR(5),Cno CHAR(3),Grade int,Primary key(Sno,Cno);,2023/11/14,CH3 关系数据库标准语言SQL,28,二、修改基本表,语句格式ALTER TABLE ADD 完整性约束 DROP COLUMN ALTER COLUMN;:要修改的基本表ADD子句:增加新列和新的完整性约束条件DROP子句:删除指定的完整性约束条件alter子句:用于修改列名、数据类型及长度,2023/11/14,CH3 关系数据库标准语言SQL,29,例题,例2 向Student表增加“入学时间”列,其数据类型为日期型。ALTER TABLE Student ADD Scome DATETIME;,2023/11/14,CH3 关系数据库标准语言SQL,30,例题,例3 将年龄的数据类型改为SMALLINT。ALTER TABLE Student ALTER COLUMN Sage SMALLINT;注:修改原有的列定义有可能会破坏已有数据。,2023/11/14,CH3 关系数据库标准语言SQL,31,例题,例4 删除学生姓名必须取唯一值的约束。ALTER TABLE Student DROP COLUMN UNIQUE(Sname);,2023/11/14,CH3 关系数据库标准语言SQL,32,三、删除基本表,语句格式DROP TABLE;系统从数据字典中删去:该基本表的描述该基本表上的所有索引的描述系统从文件中删去表中的数据表上的视图往往仍然保留,但无法引用,2023/11/14,CH3 关系数据库标准语言SQL,33,例题,例5 删除Student表。DROP TABLEStudent;,2023/11/14,CH3 关系数据库标准语言SQL,34,3.2 数 据 定 义,3.2.1 定义、删除与修改基本表3.2.2 建立与删除索引,2023/11/14,CH3 关系数据库标准语言SQL,35,一、建立索引建立索引是加快查询速度的有效手段语句格式CREATE UNIQUE CLUSTERED INDEX ON(,);用指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC,3.2.2 建立与删除索引,2023/11/14,CH3 关系数据库标准语言SQL,36,建立索引(续),唯一值索引对于已含重复值的属性列不能建UNIQUE索引对某个列建立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值。这相当于增加了一个UNIQUE约束。,2023/11/14,CH3 关系数据库标准语言SQL,37,建立索引(续),聚集索引建立聚集索引后,基表中数据也需要按指定的聚集属性值的升序或降序存放。也即聚集索引的索引项顺序与表中记录的物理顺序一致。例:CREATE CLUSTERED INDEX Stusname ON Student(Sname);,2023/11/14,CH3 关系数据库标准语言SQL,38,例题,例6 CREATE UNIQUE INDEX Stusno ON Student(Sno);CREATE UNIQUE INDEX Coucno ON Course(Cno);CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);,2023/11/14,CH3 关系数据库标准语言SQL,39,二、删除索引,语句格式DROP INDEX;删除索引时,系统会从数据字典中删去有关该索引的描述。,2023/11/14,CH3 关系数据库标准语言SQL,40,例题,例7 删除Student表的Stusname索引。DROP INDEX STUDENT.Stusname;,2023/11/14,CH3 关系数据库标准语言SQL,41,第3章 关系数据库标准语言SQL,3.1 SQL概述3.2 数据定义3.3 查询3.4 数据更新3.5 视图3.6 数据控制3.7 嵌入式SQL3.8 小结,2023/11/14,CH3 关系数据库标准语言SQL,42,查询(续),语句格式SELECT ALL|DISTINCT|top n,FROM,WHERE GROUP BY,HAVING ORDER BY,ASC|DESC;,