数据库标准语言sql课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库标准语言sql课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 标准 语言 sql 课件
- 资源描述:
-
1、1 SQL语言的特点语言的特点 SQL语言的组成语言的组成 SQL的数据定义语句的使用的数据定义语句的使用 SQL的数据查询语句的使用的数据查询语句的使用 SQL的数据操纵语句的使用的数据操纵语句的使用 SQL的数据控制语句的使用的数据控制语句的使用本章要点:2SQL的工作原理SQL请求数据数据库DB数据库管理系统DBMS当用户去要检索数据库的数据时通过SQL发出申请,DBMS对请求进行处理,将结果返回用户。3SQL的特点p 通用性强通用性强:集数据定义集数据定义/数据操纵数据操纵/数据控制数据控制功能于一体功能于一体p 两种使用方式两种使用方式(统一的语法结构统一的语法结构)p 方式一、独立
2、的用于联机交互使用方式;方式一、独立的用于联机交互使用方式;p 方式二、嵌入到高级语言使用。方式二、嵌入到高级语言使用。p 面向集合面向集合(表表):改变以往操作方式改变以往操作方式(记录操作记录操作),建立表间建立表间(集合集合)的数据操作。的数据操作。p 易学易用易学易用:语法非常接近自然语言(英语语法非常接近自然语言(英语)便便于学习理解于学习理解4 SQL支持三级模式支持三级模式视图:视图:是一个虚表。数据库中仅存视图定义,是一个虚表。数据库中仅存视图定义,不存对应的数据不存对应的数据。基本表:基本表:独立存在的表。在独立存在的表。在SQL中一个关系中一个关系对应一个表,每个基表对应一
3、个存储文件,对应一个表,每个基表对应一个存储文件,一个表可带若干索引。一个表可带若干索引。存储文件:存储文件:逻辑结构组成数据库的内模式。逻辑结构组成数据库的内模式。存储文件存储文件+索引索引=内模式内模式5外外模模式式模模式式内内模模式式Storefile1Storefile2Storefile3Storefile4Basetable1Basetable2Basetable3Basetable4View1View2SQL用户用户 SQL支持关系数据库三级模式支持关系数据库三级模式视图视图基本表基本表存储文件存储文件6 数据查询语言(数据查询语言(DQL):):query SELECT 数据数
4、据定义语言(定义语言(DDL):definition CREATE;DROP;ALTER 数据数据操作语言(操作语言(DML):manipulation INSERT;UPDATE;DELETE 数据控制数据控制语言(语言(DCL):control GRANT;REVOKESQL的基本功能7 SQL语言的语句表语言的语句表 语言命令实现的功能DDLCREATE创建表DROP删除表ALTER修改表结构DQLDQLSELECT查询数据库中满足指定条件的记录DMLINSERT向表中插入记录UPDATE修改表中记录的数据DELETE删除表中符合条件的记录DCLGRANT给用户授权REVOKE收回用户的
5、权限8CREATE;DROP;ALTER操作对象操作对象操作方式操作方式创建创建删除删除修改修改表表CREATE TABLEDROP TABLEALTER TABLE视图视图CREATE VIEWDROP VIEW索引索引CREATE INDEXDROP INDEX用户创建或重新构建数据库的语言用户创建或重新构建数据库的语言9基本表定义:CREATE TABLE(,)给出要创建的基本表的名称;给出要创建的基本表的名称;给出列名或字段名;给出列名或字段名;10数据类型11列级完整性约束用于定义列或字段一级的完整性约束,一般用于定义列或字段一级的完整性约束,一般包括:包括:NOT NULL和和NU
6、LL约束约束 PRIMARY KEY约束约束 UNIQUE约束约束 FOREIGN KEY约束约束 DEFAULT定义定义 CHECK约束约束 12表级完整性约束表级完整性约束用于定义表一级的完整性约束,一般包括:用于定义表一级的完整性约束,一般包括:PRIMARY KEY约束(复合属性构成的主约束(复合属性构成的主关键字说明)关键字说明)FOREIGN KEY约束(外部关键字及参照约束(外部关键字及参照关系说明)关系说明)CHECK约束(同时涉及到多个属性的域约束(同时涉及到多个属性的域完整性约束)完整性约束)13其它参数其它参数不是SQL的标准选项,一般用于与物理存储有关的说明,不同的数据
7、库管理系统定义的方式肯定不同,另外该项参数一般也不是必需的。14建立表的例子 物资订购管理数据库的扩展Bachman图1:n1:n1:n15仓库 仓库号 城市 面积订购单 职工号 供应商号 订购单号 订购日期 完成日期供应商 供应商号 供应商名 地址?FK_订购单_供应商号_0BC6C43E职工 仓库号 职工号 工资?FK_职工_仓库号_014935CB?FK_订购单_职工号_0AD2A005物资订购管理数据库在SQL中的实现1617例:建立仓库表CREATE TABLE 仓库仓库(仓库号仓库号 CHAR(5)PRIMARY KEY,城市城市 CHAR(10),面积面积 INT CHECK(面
8、积面积 0)18例:建立职工表CREATE TABLE 职工职工(仓库号仓库号 CHAR(5)FOREIGN KEY REFERENCES 仓库仓库,职工号职工号 CHAR(5)PRIMARY KEY,工资工资 INT CHECK(工资工资=1000 AND 工资工资=1000 AND 工资工资=5000)DEFAULT 1200,PRIMARY KEY(仓库号仓库号,职工号职工号)创建表23修改表结构命令ALTER TABLE ADD DROP|DROP COLUMN|ALTER COLUMN 24增加新的属性(字段)往订购单关系中增加一个新属性往订购单关系中增加一个新属性“完成日期完成日期
9、”ALTER TABLE 订购单订购单 ADD 完成日期完成日期 DATETIME NULL25修改属性的定义将订购单关系的完成日期属性的数据类型修将订购单关系的完成日期属性的数据类型修改为改为SMALLDATETIME ALTER TABLE 订购单订购单 ALTER COLUMN 完成日期完成日期 SMALLDATETIME NULL 26删除完整性约束 建立的列级或表级完整性约束可以删除,但是前提是在定义完整性约束时必须给出约束名称,否则不能删除。设有:设有:CREATE TABLE 职工职工(仓库号仓库号 CHAR(5)FOREIGN KEY REFERENCES 仓库仓库,职工号职工
10、号 CHAR(5)PRIMARY KEY,工资工资 INT CONSTRAINT salary CHECK(工资工资=1000 AND 工资工资=5000)DEFAULT 1200)则可以:则可以:ALTER TABLE 职工职工 DROP CONSTRAINT salary27删除属性 删除订购单关系中的删除订购单关系中的“完成日期完成日期”属性:属性:ALTER TABLE 订购单 DROP COLUMN 完成日期注意:有些系统的ALTER TABLE命令不允许删除属性,如果必须要删除属性,一般步骤是:先将旧表中的数据备份,然后删除旧表、并建立新表,最后将原来的数据恢复到新表中。28删除表
11、命令格式:DROP TABLE 例:DROP TABLE 订购单29索引定义的命令格式CREATE UNIQUE CLUSTERED INDEX ON(ASC|DESC ,ASC|DESC )普通索引普通索引 唯一(唯一(UNIQUE)索引)索引 聚集(聚集(CLUSTERED)索引)索引 30普通索引普通索引 如果没有指定如果没有指定UNIQUE或或CLUSTERED等将建立普等将建立普通索引。通索引。在单个字段上建立普通索引:在单个字段上建立普通索引:CREATE INDEX sup_idx ON 订购单订购单(供应商号供应商号)在多个字段上建立普通索引:在多个字段上建立普通索引:CREA
12、TE INDEX sup_emp_idx ON 订购单订购单(供应商号供应商号,职工号职工号 DESC)31唯一索引唯一索引 通过指定通过指定UNIQUE则为表创建唯一索引(不允许存则为表创建唯一索引(不允许存在索引值相同的两个元组)。在索引值相同的两个元组)。在在CREATE TABLE命令中的命令中的UNIQUE约束将隐式约束将隐式创建唯一索引。创建唯一索引。在仓库关系的城市属性上建立一个唯一索引:在仓库关系的城市属性上建立一个唯一索引:CREATE UNIQUE INDEX city_idx ON 仓库仓库(城市城市)32聚集索引聚集索引 z通过指定通过指定CLUSTERED建立聚集索引
13、。建立聚集索引。z在在CREATE TABLE命令中的命令中的PRIMARY KEY约束约束将隐式创建聚集索引将隐式创建聚集索引。z一个表只允许建立一个聚集索引一个表只允许建立一个聚集索引。z如果在创建表时已经如果在创建表时已经指定了主关键字指定了主关键字,则不可以再,则不可以再创建聚集索引。创建聚集索引。33使用索引的原则:不应该在一个表上建立太多的索引(一般不超过不应该在一个表上建立太多的索引(一般不超过两到三个),索引能改善查询效果,但也耗费了磁两到三个),索引能改善查询效果,但也耗费了磁盘空间,降低了更新操作的性能,因为系统必须花盘空间,降低了更新操作的性能,因为系统必须花时间来维护这
14、些索引。时间来维护这些索引。除了为数据的完整性而建立的唯一索引外,建议除了为数据的完整性而建立的唯一索引外,建议在表较大时再建立普通索引,表中的数据越多,索在表较大时再建立普通索引,表中的数据越多,索引的优越性才越明显。引的优越性才越明显。34索引的删除命令格式:命令格式:DROP INDEX 例:DROP INDEX city_idx ON 仓库仓库35数据操作功能插入功能:INSERT更新功能:UPDATE删除功能:DELETE36插入操作 INSERT插入一个元组 INSERT INTO(,)VALUES(,)插入一个查询结果INSERT INTO(,)37插入操作举例 插入一个完整的元
15、组 INSERT INTO 仓库 VALUES(WH5,沈阳,500)插入一个不完整的元组 INSERT INTO 仓库(仓库号,面积)VALUES(WH6,500)插入一个查询结果 INSERT INTO 订购单备份 SELECT*FROM 订购单 先创建新表先创建新表举例仓库表:仓库表:INSERT INTO 仓库仓库VALUES(WH1,北京北京,370);INSERT INTO 仓库仓库VALUES(WH2,上海上海,500);INSERT INTO 仓库仓库VALUES(WH3,广州广州,200);INSERT INTO 仓库仓库VALUES(WH4,武汉武汉,400);职工表:职工
16、表:INSERT INTO 职工职工VALUES(WH2,E1,1220);INSERT INTO 职工职工VALUES(WH1,E3,1210);INSERT INTO 职工职工VALUES(WH2,E4,1250);INSERT INTO 职工职工VALUES(WH3,E6,1230);INSERT INTO 职工职工VALUES(WH1,E7,1250);39更新操作UPDATE 命令格式:UPDATE SET =,=FROM WHERE z UPDATE更新满足“逻辑表达式”条件的记录;z 一次可以更新多个属性的值;z 更新的条件可以与其他的表相关(使用FROM指定);z 如果没有指定
17、更新条件则更新表中的全部记录。40更新操作举例给所有职工增加一倍的工资 UPDATE 职工 SET 工资=工资*2给WH1仓库的职工提高10%的工资UPDATE 职工 SET 工资=工资*2 WHERE 仓库号=WH1给“上海”仓库的职工的工资提高到三倍UPDATE 职工 SET 工资=工资*3FROM 仓库WHERE 仓库.仓库号=职工.仓库号 AND 城市=上海 41删除操作 DELETE DELETE FROM FROM WHERE z DELETE命令从指定的表中删除满足“逻辑表达式”条件的元组;z 如果没有指定删除条件则删除表中的全部元组,所以在使用该命令时要格外小心;z 删除的条件
18、可以与其他的表相关(使用可选的FROM指定);z DELETE命令只删除元组,它不删除表或表结构。42删除操作举例 删除仓库关系中仓库号值是WH5的元组 DELETE FROM 仓库 WHERE 仓库号=WH5 删除所在城市是上海的仓库的所有职工元组 DELETE FROM 职工 FROM 仓库 WHERE 仓库.仓库号=职工.仓库号 AND 城市=上海43SQL的数据查询功能基本格式:基本格式:SELECT FROM WHERE 44SQL查询SELECT ALL|DISTINCT*|,FROM,WHERE GROUP BY,HAVING ORDER BY ASC|DESC,ASC|DESC
19、.COMPUTE 45说明说明:要查询的数据,要查询的数据,ALL说明不去掉重复说明不去掉重复元组,元组,DISTINCT说明要去掉重复元组,说明要去掉重复元组,一般是表中的列名,如果要查询一般是表中的列名,如果要查询表中的所有列可以使用表中的所有列可以使用“*”表示表示 SELECT ALL|DISTINCT *|,46FROM,z说明要查询的数据来自哪个(些)表说明要查询的数据来自哪个(些)表(或视图或视图),可以基于单个表或多个表进行查询可以基于单个表或多个表进行查询 47WHERE 说明查询条件,即选择元组的条件,可以用于查询条件的说明查询条件,即选择元组的条件,可以用于查询条件的运算
20、符也非常丰富,下表列出了常用的运算符运算符也非常丰富,下表列出了常用的运算符 48GROUP BY,HAVING zGROUP BY短语用于对查询结果进行分组,可以利短语用于对查询结果进行分组,可以利用它进行分组汇总;用它进行分组汇总;zHAVING短语必须跟随短语必须跟随GROUP BY使用,它用来限使用,它用来限定分组必须满足的条件。定分组必须满足的条件。49ORDER BY ASC|DESC ,ASC|DESCz用来对查询的结果进行排序。50COMPUTE zSQL Server支持的短语,可以进行带明细的分组支持的短语,可以进行带明细的分组汇总。汇总。51查询的分类简单查询 排序 连接
展开阅读全文