[计算机软件及应用]第三章 关系数据库标准语言SQL.ppt

上传人:dzz****808 文档编号:132766707 上传时间:2020-05-20 格式:PPT 页数:160 大小:2.59MB
返回 下载 相关 举报
[计算机软件及应用]第三章 关系数据库标准语言SQL.ppt_第1页
第1页 / 共160页
[计算机软件及应用]第三章 关系数据库标准语言SQL.ppt_第2页
第2页 / 共160页
[计算机软件及应用]第三章 关系数据库标准语言SQL.ppt_第3页
第3页 / 共160页
[计算机软件及应用]第三章 关系数据库标准语言SQL.ppt_第4页
第4页 / 共160页
[计算机软件及应用]第三章 关系数据库标准语言SQL.ppt_第5页
第5页 / 共160页
点击查看更多>>
资源描述

《[计算机软件及应用]第三章 关系数据库标准语言SQL.ppt》由会员分享,可在线阅读,更多相关《[计算机软件及应用]第三章 关系数据库标准语言SQL.ppt(160页珍藏版)》请在金锄头文库上搜索。

1、第三章关系数据库标准语言SQL 3 1SQL概述 3 2学生 课程数据库 3 3数据定义 3 4查询 3 5数据更新 3 6视图 SQL StructuredQueryLanguage 语言来源于20世纪70年代IBM的一个被称为SEQUEL StructuredEnglishQueryLanguage 的研究项目 20世纪80年代 SQL由ANSI进行了标准化 它包括了定义和操作数据的指令 由于它具有功能丰富 使用方式灵活 语言简洁易学等突出特点 在计算机界深受广大用户欢迎 许多数据库生产厂家都相继推出各自支持SQL标准 1998年4月 ISO提出了具有完整性特征的SQL 并将其定为国际标准

2、 推荐它为标准关系数据库语言 1990年 我国也颁布了 信息处理系统数据库语言SQL 将其定为中国国家标准 3 1SQL概述 3 1SQL概述 SQL的特点1 综合统一SQL集查询 DDL DML DCL 数据控制语言 为一体 用SQL语言可实现DB生命周期的全部活动 2 高度非过程化SQL语言是非过程化语言 第四代语言 3 面向集合的操作方式4 以同一种语法结构提供两种使用方法 自含式语言 嵌入式语言 联机交互使用方式 嵌入某种高级程序设计语言 5 语言简捷 易学易用 SQL支持关系数据库三级模式 基本表 本身独立存在的表 一个关系就对应一个基本表 模式 存储文件 一个 或多个 基本表对应一

3、个存储文件 一个表可带若干索引 索引也存放在存储文件中 存储文件的逻辑结构组成了关系数据库的内模式 存储文件的物理结构是任意的 对用户是透明的 内模式 视图 从一个或几个基本表导出的表 是一个虚表 数据库中仅存视图定义 不存放视图对应的数据 并且用户可以在视图上再定义视图 外模式 用户 外模式 模式 内模式 Storefile1 Storefile2 Basetable1 Basetable2 Basetable3 Basetable4 View1 View2 SQL SQL对关系数据库模式的支持 SQL命令的种类 SQL语句可以在命令窗口中执行 也可以作为查询或视图 的内容 被使用 还可以在

4、程序文件被执行 SQL命令动词 SQL功能命令动词 数据查询SELECT数据定义CREATE DROP ALTER数据操作INSERT UPDATE DELETE数据控制GRANT REVOKE 3 2学生 课程数据库 3 3数据定义 3 2 1模式的定义与删除 1 定义模式CREATESCHEMAAUTHORIZATION如果没有指定 那么隐含为要创建模式 调用该命令的应用必须拥有DBA权限 或者获得了DBA授予的创建模式的权限 例1 定义一个学生 课程模式S TCREATESCHEMA S T AUTHORIZATIONWANG 为用户WANG定义了一个模式S T 例2 CREATESCH

5、EMAAUTHORIZATIONWANG 该语句没有指定 所以隐含为用户名WANG说明 定义模式实际上定义了一个命名空间 在这个空间中可以进一步定义该模式包含的数据库对象 如基本表 视图 索引等 CREATESCHEMAAUTHORIZATION 例3 CREATESCHEMATESTAUTHORIZATIONZHANGCREATETABLETAB1 COL1SMALLINT COL2INT COL3CHAR 20 COL4NUMERIC 10 3 COL5DECIMAL 5 2 该语句为用户ZHANG创建了一个模式TEST 并且在其中定义了一个表TAB1 2 删除模式DROPSCHEMA其中

6、CASCADE和RESTRICT 两者必选其一CASCADE 级联 表示在删除模式的同时把该模式中所有的数据库对象全部一起删除RESTRICT 限制 表示如果该模式中已经定义了下属的数据库对象 如表 视图等 则拒绝该删除语句的执行 只有当该模式中没有任何下属的对象时才能执行DROPSCHEMA语句例4 DROPSCHEMATESTCASCADE 该语句删除了模式TEST 同时 该模式中已经定义的表TAB1也被删除了 3 3 2基本表的定义 删除与修改 一 定义基本表CREATETABLE 所要定义的基本表的名字 组成该表的各个属性 列 涉及相应属性列的完整性约束条件 涉及一个或多个属性列的完整

7、性约束条件 例5 建立一个 学生 表Student 它由学号Sno 姓名Sname 性别Ssex 年龄Sage 所在系Sdept五个属性组成 其中学号不能为空 且为主码 值是唯一的 并且姓名取值也唯一 CREATETABLEStudent SnoCHAR 9 PRIMARYKEY SnameCHAR 20 UNIQUE SsexCHAR 2 SageSMALLINT SdeptCHAR 20 系统执行上面的语句后 在数据库中建立一个新的空的 学生 表Student 并将有关 学生 表的定义及有关约束条件存放在数据字典中 常用完整性约束主码约束 PRIMARYKEY唯一性约束 UNIQUE非空值

8、约束 NOTNULL参照完整性约束 FOREIGNKEY问题 PRIMARYKEY与UNIQUE的区别 例6 建立一个 课程 表Course CREATETABLECourse CnoCHAR 4 PRIMARYKEY CnameCHAR 40 CpnoCHAR 4 CcreditSMALLINT FOREIGNKEYCpnoREFERENCESCourse Cno 表级完整性约束条件 Cpno是外码 被参照表是Course 被参照列是Cno 说明 参照表和被参照表可以是同一个表 例7 建立学生选课表SC CREATETABLESC SnoCHAR 7 CnoCHAR 4 GradeSMALL

9、INT PRIMARYKEY Sno Cno 主码由两个属性构成 必须作为表级完整性进行定义 FOREIGNKEY Sno REFERENCESStudent Sno 表级完整性约束条件 Sno是外码 被参照表是Student FOREIGNKEY Cno REFERENCESCourse Cno 表级完整性约束条件 Cno是外码 被参照表是Course 二 数据类型 每一个基本表都属于某一个模式 一个模式包含多个基本表 定义模式的方法有三种 方法一 在表名中明显地给出模式名Createtable S T Student Createtable S T Course Createtable S

10、 T SC 方法二 在创建模式语句中同时创建表方法三 设置所属的模式 这样在创建表时表名中不必给出模式名 三 模式与表 当用户创建基本表时若没有指定模式 系统根据搜索路径来确定该对象所属的模式 搜索路径包含一组模式列表 RDBMS会使用模式列表中第一个存在的模式作为数据库对象的模式名 若搜索路径中的模式名都不存在 系统将给出模式SHOWsearch path搜索路径的当前默认值是 user PUBLIC其含义是首先搜索与用户名相同的模式名 如果该模式名不存在 则使用PUBLIC模式 四 修改基本表ALTERTABLE ADD 完整性约束 DROPCOLUMN MODIFY DROP 其中 AD

11、D 增加新列和新列的完整性约束条件DROP 删除指定列MODIFY 修改原有列的数据类型DROP 删除原有的完整性约束 例8 向Student表增加 入学时间 列 其数据类型为日期型ALTERTABLEStudentADDScomeDATE 注 不论基本表中原来是否已有数据 新增加的列一律为空值 例9 将年龄的数据类型改为半字长整数 ALTERTABLEStudentMODIFYCOLUMNSageSMALLINT 注 修改原有的列定义有可能会破坏已有数据 例10 删除学生姓名必须取唯一值的约束 ALTERTABLEStudentDROPUNIQUE Sname 五 删除基本表DROPTABL

12、E RESTRICT CASCADE 基本表删除 表中的数据 表上的索引都删除表上的视图往往仍然保留 但无法引用删除基本表时 系统会从数据字典中删去有关该基本表及其索引的描述RESTRICT 表的删除是有限制条件CASCADE 表的删除没有限制条件缺省情况是RESTRICT 3 3 3建立与删除索引 建立索引是加快查询速度的有效手段建立索引DBA或表的属主 即建立表的人 根据需要建立有些DBMS自动建立以下列上的索引PRIMARYKEYUNIQUE维护索引DBMS自动完成使用索引DBMS自动选择是否使用索引以及使用哪些索引索引一经建立 就由系统使用和维护它 不需用户干预 一 建立索引 语句格式

13、CREATE UNIQUE CLUSTER INDEXON 用指定要建索引的基本表名字索引可以建立在该表的一列或多列上 各列名之间用逗号分隔用指定索引值的排列次序 升序 ASC 降序 DESC 缺省值 ASCUNIQUE表明此索引的每一个索引值只对应唯一的数据记录CLUSTER表示要建立的索引是聚簇索引 指索引项的顺序与表中记录的物理顺序一致的索引组织 例14 为学生 课程数据库中的Student Course SC三个表建立索引 其中Student表按学号升序建唯一索引 Course表按课程号升序建唯一索引 SC表按学号升序和课程号降序建唯一索引 CREATEUNIQUEINDEXStusn

14、oONStudent Sno CREATEUNIQUEINDEXCoucnoONCourse Cno CREATEUNIQUEINDEXSCnoONSC SnoASC CnoDESC 唯一值索引对于已含重复值的属性列不能建UNIQUE索引对某个列建立UNIQUE索引后 插入新记录时DBMS会自动检查新记录在该列上是否取了重复值 这相当于增加了一个UNIQUE约束聚簇索引建立聚簇索引后 基表中数据也需要按指定的聚簇属性值的升序或降序存放 也即聚簇索引的索引项顺序与表中记录的物理顺序一致 一 建立索引 例 在Student表的Sname 姓名 列上建立一个聚簇索引 而且Student表中的记录将按

15、照Sname值的升序存放CREATECLUSTERINDEXStusnameONStudent Sname 说明 在一个基本表上最多只能建立一个聚簇索引聚簇索引的用途 对于某些类型的查询 可以提高查询效率建立聚簇索引后 更新索引列数据时 往往导致表中记录的物理顺序的变更 代价较大 因此对于经常更新的列不宜建立聚簇索引聚簇索引的适用范围很少对基表进行增删操作很少对其中的变长列进行修改操作 建立索引原则 记录有一定规模某列在where子句中频繁使用先装数据 后建索引 二 删除索引 语句格式DROPINDEX 删除索引时 系统会从数据字典中删去有关该索引的描述 例15 删除Student表的Stus

16、name索引DROPINDEXStusname 3 4数据查询 语句格式 SELECT ALL DISTINCT FROM WHERE GROUPBY HAVING ORDERBY ASC DESC 其中 SELECT子句 指定要显示的属性列FROM子句 指定查询对象 基本表或视图 WHERE子句 指定查询条件GROUPBY子句 对查询结果按指定列的值分组 该属性列值相等的元组为一个组 通常会在每组中作用聚集函数 HAVING短语 筛选出只有满足指定条件的组ORDERBY子句 对查询结果表按指定列值的升序或降序排序 3 4 1单表查询 查询仅涉及一个表 是一种最简单的查询操作一 选择表中的若干列二 选择表中的若干元组三 对查询结果排序四 聚集函数五 对查询结果分组 一 选择表中的若干列 1 查询指定列 例1 查询全体学生的学号与姓名 SELECTSno SnameFROMStudent 例2 查询全体学生的姓名 学号 所在系 SELECTSname Sno SdeptFROMStudent 2 查询全部列 例3 查询全体学生的详细记录 SELECTSno Sname Ssex Sage

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

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

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