书签 分享 收藏 举报 版权申诉 / 100
上传文档赚钱

类型数据库标准语言sql课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4106352
  • 上传时间:2022-11-11
  • 格式:PPT
  • 页数:100
  • 大小:687.79KB
  • 【下载声明】
    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查询的分类简单查询 排序 连接

    21、查询 嵌套查询 分组及计算查询 52例:从职工关系中检索所有工资值解1:SELECT 工资 FROM 职工结果1是:12201210125012301250解2:SELECT DISTINCT 工资 FROM 职工结果2是:1220121012501230简单查询53检索仓库关系中的所有元组 SELECT*FROM 仓库SELECT 仓库号,城市,面积 FROM 仓库54检索工资多于1230元的职工号SELECT 职工号 FROM 职工 WHERE 工资 1230 结果是:E4E755检索哪些仓库有工资多于1210元的职工 SELECT DISTINCT 仓库号 FROM 职工 WHERE 工

    22、资 1210 结果是:WH2WH3WH156给出在仓库WH1或WH2工作,并且工资少于1250元的职工号 SELECT 职工号FROM 职工WHERE 工资=1220)AND(工资=1240)58从供应商关系中检索出全部公司的信息 SELECT*FROM 供应商WHERE 供应商名 LIKE%公司 结果是:S4 华通电子公司 北京 这里的LIKE是字符串匹配运算符,通配符“%”表示0个或多个字符,另外还有一个通配符“_”(下划线)表示一个字符。59找出不在北京的全部供应商信息 SELECT*FROM 供应商WHERE 地址!=北京 或SELECT*FROM 供应商WHERE NOT(地址=北京

    23、)结果是:S3 振华电子厂 西安S6 607 厂 郑州 NOT的应用范围很广,比如,可以有NOT IN、NOT BETWEEN等。60找出尚未确定供应商的订购单 SELECT*FROM 订购单WHERE 供应商号 IS NULL 结果是:E6 NULL OR77NULLE1 NULL OR80NULLE3 NULL OR90NULL 注意:查询空值时要使用IS NULL,而=NULL 是无效的,因为空值不是一个确定的值,所以不能用“=”这样的运算符进行比较。61列出已经确定了供应商的订购单信息 SELECT*FROM 订购单WHERE 供应商号 IS NOT NULL 结果是:E3 S3 OR

    24、91 2002-07-13 00:00:00.000E7 S4 OR76 2002-05-25 00:00:00.000E3 S4 OR79 2002-06-13 00:00:00.000E1 S4 OR73 2002-07-28 00:00:00.000E3 S7 OR67 2002-06-23 00:00:00.00062排序 ORDER BY ASC|DESC,ASC|DESC.可以对查询的结果进行排序,可以是升序或降序,可以按多列排序。按职工的工资值升序检索出全部职工信息 先按仓库号排序,再按工资排序并输出全部职工信息 63按职工的工资值升序检索出全部职工信息 SELECT*FROM

    25、职工ORDER BY 工资 结果是:WH1 E3 1210WH2 E1 1220WH3 E6 1230WH2 E4 1250WH1 E7 125064先按仓库号排序再按工资排序SELECT*FROM 职工ORDER BY 仓库号,工资 结果是:WH1 E3 1210WH1 E7 1250WH2 E1 1220WH2 E4 1250WH3 E6 123065连接查询 当查询的结果出自多个表时,需要通过表之间的连接操作来完成。一般连接 外连接 66一般连接(自然连接)p常规的两个表或多个表之间的连接。找出工资多于1230元的职工号和他们所在的城市 找出工作在面积大于400的仓库的职工号以及这些职工

    26、工作所在的城市67找出工资多于1230元的职工号和他们所在的城市SELECT 职工号,城市FROM 职工,仓库WHERE(工资 1230)AND(职工.仓库号=仓库.仓库号)SELECT 职工号,城市FROM 职工 JOIN 仓库ON 职工.仓库号=仓库.仓库号WHERE 工资 1230结果是:E4 上海E7 北京68找出工作在面积大于400的仓库的职工号以及这些职工工作所在的城市 SELECT 职工号,城市FROM 仓库,职工WHERE(面积 400)AND(职工.仓库号=仓库.仓库号)SELECT 职工号,城市FROM 职工 JOIN 仓库ON 职工.仓库号=仓库.仓库号WHERE 面积

    27、400 结果是:E1 上海E4 上海69外连接 外连接与前面所介绍的等值连接和自然连接不同。外连接与前面所介绍的等值连接和自然连接不同。原原来的连接是只有满足连接条件,相应的结果才会出现来的连接是只有满足连接条件,相应的结果才会出现在结果表中;而外连接可以使不满足连接条件的元组在结果表中;而外连接可以使不满足连接条件的元组也出现在结果表中也出现在结果表中。按连接方式外连接又可以分为左连接(按连接方式外连接又可以分为左连接(LEFT)、右)、右连接(连接(RIGHT)和全连接()和全连接(FULL)三种。)三种。70外连接(OUTER)运算的一般格式 左连接在结果表中包含第一个表中满足条件的所有

    28、记录;如果是在连接条件上匹配的元组,则第二个表返回相应值,否则第二个表返回空值。右连接在结果表中包含第二个表中满足条件的所有记录;如果是在连接条件上匹配的元组,则第一个表返回相应值,否则第一个表返回空值。全连接在结果表中包含两个表中满足条件的所有记录;如果是在连接条件上匹配的元组,则另一个表返回相应值,否则另一个表返回空值。SELECT FROM LEFT|RIGHT|FULL OUTER JOIN ON WHERE 71举例:等值或自然连接 SELECT 仓库.仓库号,城市,面积,职工号,工资 FROM 仓库 JOIN 职工 ON 仓库.仓库号=职工.仓库号 结果是:WH2 上海 500E1

    29、 1220WH1 北京 370E3 1210WH2 上海 500E4 1250WH3 广州 200E6 1230WH1 北京 370E7 125072例:仓库、职工 左连接连接LEFT JOIN SELECT 仓库.仓库号,城市,面积,职工号,工资 FROM 仓库 LEFT JOIN 职工 ON 仓库.仓库号=职工.仓库号结果是:WH1 北京 370E3 1210WH1 北京 370E7 1250WH2 上海 500E1 1220WH2 上海 500E4 1250WH3 广州 200E6 1230WH4 武汉 400NULLNULL右连接RIGHT JOIN?73嵌套查询普通嵌套查询 使用量词

    30、的嵌套查询 使用EXISTS的嵌套查询 74普通嵌套查询当检索关系X中的元组时,它的条件依赖于相关的关系Y中的元组的属性值,这时使用普通的嵌套查询将非常方便。哪些城市至少有一个仓库的职工的工资为1250元?找出和职工E4工资相同的所有职工。75哪些城市至少有一个仓库的职工的工资为1250元?SELECT 城市FROM 仓库WHERE 仓库号 IN (SELECT 仓库号 FROM 职工 WHERE 工资=1250)结果是:北京上海76找出和职工E4工资相同的所有职工。SELECT 职工号FROM 职工WHERE 工资=(SELECT 工资 FROM 职工 WHERE 职工号=“E4”)结果是:

    31、E4E777使用量词的嵌套查询 在嵌套查询中可以使用ANY、SOME、ALL等量词,它们的形式是:ANY|ALL|SOME(子查询)其中ANY和SOME是同义词,在进行比较运算时只要子查询中有一行能使结果为真,则结果就为真;而ALL则要求子查询中的所有行都使结果为真时,结果才为真。78检索有职工的工资大于或等于WH1仓库中任何一名职工的仓库号SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资=ANY(SELECT 工资 FROM 职工 WHERE 仓库号=WH1)SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资=(SELECT MIN(工资)FRO

    32、M 职工 WHERE 仓库号=WH1)等价于:结果是:WH1WH2WH379检索有职工的工资大于或等于WH1仓库中所有职工的工资的仓库号SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资=ALL(SELECT 工资 FROM 职工 WHERE 仓库号=WH1)SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资=(SELECT MAX(工资)FROM 职工 WHERE 仓库号=WH1)等价于:结果是:WH1WH280使用EXISTS的嵌套查询 在嵌套查询中还可以使用NOT EXISTS,具体形式是:NOT EXISTS(子查询)EXISTS或NOT E

    33、XISTS是用来检查在子查询中是否有结果返回(即存在元组或不存在元组)。81检索哪些仓库中还没有职工的仓库的信息。SELECT*FROM 仓库 WHERE NOT EXISTS (SELECT*FROM 职工 WHERE 仓库号=仓库.仓库号)SELECT*FROM 仓库 WHERE 仓库号 NOT IN (SELECT 仓库号 FROM 职工)等价于结果是:WH4 武汉 40082检索那些仓库中至少已经有一个职工的仓库的信息 SELECT*FROM 仓库 WHERE EXISTS (SELECT*FROM 职工 WHERE 仓库号=仓库.仓库号)等价于SELECT*FROM 仓库 WHERE

    34、 仓库号 IN (SELECT 仓库号 FROM 职工)结果是:WH1 北京 370WH2 上海 500WH3 广州 20083注意:NOT EXISTS只是判断子查询中是否有或没有结果返回,它本身并没有任何运算或比较。NOT EXISTS实际是一种内、外层互相关的嵌套查询,只有在内层引用了外层的值,这种查询才有意义。84分组及计算查询SQL语言不仅可以从数据库中查询原始信息,而且还可以直接对查询结果进行计算和汇总。SQL语言支持分组的计算和汇总。用于计算检索的函数主要有:COUNT计数 SUM求和 AVG计算平均值 MAX求最大值 MIN求最小值 85找出供应商所在地的数目 SELECT C

    35、OUNT(DISTINCT 地址)FROM 供应商 结果为3 86求支付的工资总数 SELECT SUM(工资)FROM 职工 结果是:6160SELECT SUM(工资)AS 工资总和 FROM 职工 结果是:工资总和工资总和 616087求在“上海”仓库工作的职工的最高工资值 SELECT MAX(工资)FROM 职工WHERE 仓库号 IN (SELECT 仓库号 FROM 仓库 WHERE 城市=上海)结果是:125088求每个仓库的职工的平均工资 SELECT 仓库号,AVG(工资)平均工资FROM 职工GROUP BY 仓库号 结果是:WH1 1230WH2 1235WH3 123

    36、089求至少有两个职工的每个仓库的平均工资 SELECT 仓库号,COUNT(*)职工人数,AVG(工资)平均工资FROM 职工GROUP BY 仓库号HAVING COUNT(*)=2 结果是:WH1 2 1230WH2 2 1235COMPUTE子句 GROUP BY子句能完成汇总,但是却不能显示细节。利用COMPUTE子句,汇总结果是附加在细节之后显示的,这样用户既能看到细节,又能看到汇总行。COMPUTE子句的格式 COMPUTE(),()BY,v这里只能是用于SELECT计算查询的函数SUM、AVG、MIN、MAX和COUNT等。vCOMPUTE子句中的BY子句是用来说明分组的,如果

    37、在COMPUTE子句中不使用BY子句,则是对整个表进行汇总。v这里使用BY子句,也必须使用ORDER BY子句,BY子句指出的列必须和ORDER BY子句指出的列顺序相同,但BY子句的列数可以少于ORDER BY子句的列数。列出职工全部记录并计算各仓库的平均工资和工资小计,最后给出全体职工的平均工资和工资总和 SELECT 仓库号,职工号,工资 FROM 职工ORDER BY 仓库号COMPUTE AVG(工资),SUM(工资)BY 仓库号 COMPUTE AVG(工资),SUM(工资)结果是:结果是:WH1 E3 1210WH1 E7 1250Avgsum12302460 WH2 E1 12

    38、20WH2 E4 1250Avgsum12352470 WH3 E6 1230Avgsum12301230 Avgsum1232 6160列出职工全部记录并计算全体职工的平均工资和工资总和 SELECT 仓库号,职工号,工资FROM 职工COMPUTE AVG(工资),SUM(工资)结果是:结果是:WH2 E1 1220WH1 E3 1210WH2 E4 1250WH3 E6 1230WH1 E7 1250 Avgsum1232 616094视图仓库号 城市 面积仓库号 职工号 工资仓库号 城市 职工号 工资仓库号 面积基本表视图95定义视图的命令 视图是根据对基本表的查询定义的,其命令格式如

    39、下:CREATE VIEW AS 从单个表派生出的视图从多个表派生出的视图 96从单个表派生出的视图从单个表派生出的视图CREATE VIEW e_w ASSELECT 职工号,仓库号FROM 职工 CREATE VIEW v_bj ASSELECT 仓库号,面积FROM 仓库基于视图进行查询:SELECT*FROM e_w97从多个表派生出的视图从多个表派生出的视图 CREATE VIEW v_emp ASSELECT 职工号,工资,城市FROM 职工,仓库WHERE 职工.仓库号=仓库.仓库号;职工号工 资城 市E11220上海E31210北京E41250上海E61230广州E71250北

    40、京对用户就好象一个表:对用户就好象一个表:98定义视图的例子:CREATE VIEW v_sal(职工号,月工资,年工资)ASSELECT 职工号,工资,工资*12 FROM 职工查询视图v_sal:SELECT*FROM v_sal 结果:E1 1220 14640E3 1210 14520E4 1250 15000E6 1230 14760E7 1250 1500099视图的删除命令格式是:DROP VIEW 100几点注意在执行插入、更新和删除操作时可能会受到关系完整性的约束,这种约束可以保证数据库中的数据是正确的。虽然视图可以像基本表一样进行各种查询,但是插入、更新和删除操作在视图上却有一定限制。因为视图是由基本表导出的,对视图的任何操作最后都落实在基本表上,这些操作不能违背定义在表上的完整性约束。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据库标准语言sql课件.ppt
    链接地址:https://www.163wenku.com/p-4106352.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库