数据库系统概论第五版(王珊)-基础篇(三)
这里写目录标题
- 第3章 关系数据库标准语言SQL
- 3.1 SQL概述
- 3.3 数据定义
- 3.3.1 模式的定义与删除
- 3.3.2 基本表的定义、删除、修改
- 3.3.3 索引的建立与删除
- 3.3.4 数据字典
- 3.4 数据查询
- 3.4.1 单表查询
- 3.4.2 连接查询
- 3.4.3 嵌套查询
- 3.4.4 集合查询
- 3.4.5 基于派生表的查询
- 3.5 数据更新
- 3.5.1 插入数据
- 3.5.2 修改及删除数据
- 3.6 空值的处理
- 3.7 视图
第3章 关系数据库标准语言SQL
本章主要是对上篇文章的补充:
MySQL必知必会(刘晓霞 钟鸣)
Structured Query Language:结构化查询语言,是关系数据库的标准语言。
3.1 SQL概述
- 支持SQL的关系数据库管理系统同样支持关系数据库三级模式结构,如图3.1所示,其中,外模式包含若干视图(view)和部分基本表(base table),数据库模式包括若干基本表,内模式包括若干存储文件。
用户可以用SQL对基本表和视图进行查询或其他操作,基本表和视图一样,都是关系。
3.3 数据定义
3.3.1 模式的定义与删除
- 定义模式:
(1)create schema<模式名> authorization<用户名>
如果没有指定<模式名>,那么<模式名>隐含为<用户名>
要创建模式,调用该命令的用户必须拥有数据库管理员权限,或者获得数据库管理员授予的create schema的权限。
(2)定义模式实际上定义了一个命名空间,在这个命名空间中可以进一步定义该模式包含的数据库对象,如:表、视图、索引等。目前,在create schema中可以接受create table、create view和grant子句。
create schema <模式名>authorization<用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>] - 删除模式
drop schema<模式名> <cascade|restrict>:
其中,cascade|restrict两者必选其一,
(1)cascade(级联):表示在删除模式的同时把该模式中所有的数据库对象全部删除
(2)restrict(限制):表示如果该模式中已经定义了下属的数据库对象(表、视图等),则拒绝该删除语句执行。只有当该模式中没有任何下属的对象才执行drop schema语句。
3.3.2 基本表的定义、删除、修改
参考:MySQL必知必会(刘晓霞 钟鸣)第21章 创建和操纵表
- 模式与表
(1)每一个表都属于一个模式,一个模式包含多个基本表,定义基本表时一般可以有三种方法定义它所属的属性。
1)方法1:在表名中明显的给出模式名:create table “S-T”.Student(…)
2)方法2:在创建模式语句中同时创建表,例3.3(P79)
3)方法3:设置所属的模式,这样在创建表时表名中不必给出模式名。
(2)当用户创建表时,若没有指定模式,系统根据所搜路径(search path)来确定该对象所属的模式。
(3)搜索路径包含一组模式列表,关系数据库管理系统会使用模式列表中第一个存在的模式作为数据库对象的模式名。若搜索路径中的模式名不存在,系统将提示所谓。
(4)搜索路径的当前默认值是$user,PUBLIC,表示:首先搜索与用户名想通过的模式名,如果该模式不存在,则使用public模式。
(5)数据库管理员可以自己设置搜索路径,如:set search_path TO “S-T”,public;然后定义基本表:create table student(…) - 删除基本表
drop table <表名>[restrict|cascade];默认为:restrict
restrict|cascade含义同上。
基本表定义一旦被删除,不仅表中的数据和此表的定义将被删除,而且此表上建立的索引,触发器等对象都会被删除。 - 删除基本表后,SQL2011与3个关系数据库管理系统的处理策略比较
上表中:R:restrict;C:cascade;√:表示删除;×:表示不删除;保留:表示删除基本表后,保留依赖对象,但通常都会失效。
3.3.3 索引的建立与删除
- 索引
数据库索引有多种类型,常见索引包括顺序文件上的索引、B+树索引、散列(hash)索引、位图索引等。
(1)顺序文件上的索引是针对按指定属性值升序或降序存储的关系,在该属性上建立一个顺序索引文件,索引文件由属性值和相应的元组指针组成。
(2)B+树索引是将索引属性组织成B+树形式,B+树的叶结点为属性值和相应的元组指针。B+树索引具有动态平衡的优点。
(3)散列索引是建立若干个桶,将索引属性按照其散列函数值映射到相应桶中,桶中存放索引属性值和相应的元组指针。散列索引具有查找速度快的特点。
(4)位图索引是用位向量记录索引属性中可能出现的值,每个位向量对应一个可能值。 - 索引
索引虽然能够加速数据库查询,但需要占用一定的存储空间,当基本表更新时,索引要进行相应的维护,这些都会增加数据库的负担,因此要根据实际情况的需要选择性的建立索引。 - 一般来说,建立和删除索引由数据库管理员或表的属主负责完成。
- 建立索引
create [unique][cluster]index<索引名> on <表名>(<列名>[次序][,<列名>[<次序>]]…)
unique:表示此索引的每一个索引值只对应唯一的数据记录。
cluster:表示要建立的索引是聚簇索引,详见第7章
例如:为Student表按学号升序建唯一索引:
create unique index Stusno on Student(Sno); - 修改索引
alert index <旧索引名>rename to <新索引名> - 删除索引
drop index<索引名>
3.3.4 数据字典
数据字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有的定义信息包括关系模式定义、视图定义、索引定义、完整性约束定义、各类用户对数据库的操作权限、统计信息等。
关系数据库管理系统在执行SQL的数据定义语句时,实际上就是在更新数据字典表中的相应信息。
在进行查询优化和查询处理时,数据字典中的信息是其重要依据
3.4 数据查询
参看:MySQL必知必会(刘晓霞 钟鸣) 第4章-第18章
3.4.1 单表查询
- 选择表中若干列
MySQL必知必会(刘晓霞 钟鸣)第4章 - 选择表中若干元组
(1)消除重复行:MySQL必知必会(刘晓霞 钟鸣) 4.1
(2)查询满足条件的元组:MySQL必知必会(刘晓霞 钟鸣)第6章 - order by
MySQL必知必会(刘晓霞 钟鸣)第5章 - 聚集函数
MySQL必知必会(刘晓霞 钟鸣)第12章 - group by
MySQL必知必会(刘晓霞 钟鸣)第13章
3.4.2 连接查询
MySQL必知必会(刘晓霞 钟鸣)第16章
3.4.3 嵌套查询
MySQL必知必会(刘晓霞 钟鸣)第14章
如果子查询的查询条件依赖于父查询,这类子查询称为相关子查询,整个查询语句称为相关嵌套查询。
- 带有in谓词的子查询
MySQL必知必会(刘晓霞 钟鸣)7.2
3.4.4 集合查询
MySQL必知必会(刘晓霞 钟鸣)第17章
3.4.5 基于派生表的查询
子查询不仅可以出现在where子句中,还可以出现在from子句中,这是的子查询生成的临时派生表称为主查询的查询对象。
通过from子句生成派生表时,as关键字可以省略,但必须为派生关系指定一个别名,而对于基本表,别名是可选项。
3.5 数据更新
3.5.1 插入数据
MySQL必知必会(刘晓霞 钟鸣)第19章
3.5.2 修改及删除数据
修改:MySQL必知必会(刘晓霞 钟鸣)第19章
删除:MySQL必知必会(刘晓霞 钟鸣)第20章
3.6 空值的处理
控制就是“不知道”、“不存在”、“无意义”的值。含有不确定性
- 空值的产生
插入某个行时,没有设置该列对应的值;
外连接产生(见3.4.2);
空值的关系运算。 - 空值的判断
判断一个值是否为空,用is null或is not null表示。 - 空值的约束条件
域定义中有 not null的约束条件的不能为null;
加了unique限制的属性不能为null;
码属性不能为null。 - 空值的算术运算、比较运算和逻辑运算
(1)空值与另一个值(包括空值)的算术运算为空;
(2)空值与另一个值(包括空值)的比较运算为unknown;此时(true和false)的二值逻辑扩展为三值逻辑。
(3)逻辑运算结果如下:
3.7 视图
MySQL必知必会(刘晓霞 钟鸣)第22章
数据库系统概论第五版(王珊)-基础篇(三)相关推荐
- 数据库系统概论(第五版 王珊 萨师煊 编著)
数据库系统概论知识点总结 学习目录 基础篇 第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统的结构 1.4 数据库系统的组成 1.5 小结 第二章 关系数据库 第三章 关系数 ...
- 数据库系统概论(第五版) 王珊 第三章课后习题答案
1 .试述 sQL 语言的特点. 答: (l)综合统一. sQL 语言集数据定义语言 DDL .数据操纵语言 DML .数据控制语言 DCL 的功能于一体. (2)高度非过程化.用 sQL 语言进行数 ...
- 数据库系统概论(第五版) 王珊 第二章课后习题答案
1 .试述关系模型的三个组成部分. 答:关系模型由关系数据结构.关系操作集合和关系完整性约束三部分组成. 2 .试述关系数据语言的特点和分类. 答:关系数据语言可以分为三类: 关系代数语言. 关系演算 ...
- 数据库系统概论(第五版) 王珊 第六章课后习题答案
1 .理解并给出下列术语的定义: 函数依赖.部分函数依赖.完全函数依赖.传递依赖.候选码.主码.外码.全码(All 一key ).1 NF .ZNF .3NF .BcNF .多值依赖.4NF . 定义 ...
- 《数据库系统概论(第五版)》学习资料
<数据库系统概论(第五版)>学习资料 一.第一章 1.数据:描述事物的符号记录 2.数据库:长期储存在计算机内.有组织.可共享的大量数据集合. (数据库中的数据按一定的数据模型组织.描述和 ...
- 数据库系统概论第五版第二章习题6
(SPJ数据库查询操作) 数据库系统概论第五版第二章习题6(SPJ数据库查询操作)_FunPony的博客-CSDN博客
- 数据库系统概论第五版课后习题
数据库系统概论第五版课后习题
- 数据库系统概论第五版知识大纲
数据库系统概论第五版知识大纲 第1章 绪论 1.1 数据库系统概述 基本概念 数据:描述事物的符号记录 数据库:数据库是长期储存在计算机内.有组织的.可共享的大量数据的集合 数据库系统:数据库系统是由 ...
- 数据库系统概论第五版(王珊)—重点知识总结
第一章 1.数据库的四个基本概念 数据库的四个基本概念:数据.数据库.数据库管理系统.数据库系统 数据,是信息的载体,是数据库中存储的基本对象,是描述事物的符号记录. 数据库,是长期储存在计算机内.有 ...
- 数据库系统概论第五版:考试预测_HUST_CSE
最终版本~(乱序) 祝考试顺利! 不知是否有愿意帮忙补充知识点的好心人hhh,评论区见! 填空+选择(概念为主 查询处理的基本步骤? 查询分析.查询检查.查询优化.查询执行 也可能考简答: 查询分析: ...
最新文章
- ASP.NET中的事务处理和异常处理
- P1083 借教室(标记永久化线段树/二分+前缀和)难度⭐⭐⭐★
- CVPR 2020 Oral 出炉!5篇 Oral 论文抢先看
- linux shell 中的sleep命令
- 为何要把你的SAP运行在Oracle数据库上?
- [SQL] Query mystore start [ERR] 1005 - Can't create table 'mystore.admin' (errno: 150)
- vivado常规操作之烧写bit文件_固化mcs文件_调试界面debug之ila与vio的操作
- ubuntu中怎么打开python_如何在Linux Ubuntu 16.04下安装及打开PyCharm
- 大端(Big Endian)、小端(Little Endian)
- Markdown编辑公式
- linux 报错:telnet Connection closed by foreign host
- java中虚拟机命令:jstack使用方法
- windows如何设定定时关机和取消定时
- JAVA|IO流的练习
- python下载pandas库_Python中的pandas库
- 周易六爻起卦排盘微信小程序
- 戴尔通过F12一次性引导菜单刷新BIOS
- htmL生日烟花如何加文字,朋友圈发烟花配文字文案
- SEO关键词(关键词策略连载1,2022更新)
- 佳佳的筷子 Chopsticks
热门文章
- 【开发工具】【i2c-tools】I2C总线调试工具(i2c-tools)的安装与使用
- linux系统 安装svn客户端下载,Linux安装svn客户端
- 银联在线支付、第三方快捷支付三种快捷支付模式有何区别?
- 推荐一款MD神器吧:重度MD用户必备神器
- SQL 获取本周日期
- 聚合影视大全android版,聚合影视App下载-聚合影视大全2021最新版 1.5.0 安卓版-我游网...
- SAP MM 顾问在实施项目工作中的苦逼和优势
- 第一次的数电作业-----数据选择,代码转换,译码
- 计算机思维导论第二讲答案,大学计算机计算思维导论第2讲习题及解析
- Spark开发入门与实践(一)