数据库 chapter 3 关系数据库标准语言SQL

第三章 关系数据库标准语言SQL

SQL集数据查询,数据操纵,数据定义和数据控制功能于一体,主要特点包括:

综合统一(各个过程各个部分的语言风格统一)

高度非过程化

面向集合的操作方式

以同一种语法结构提供多种使用方式(既可独立使用,也可以嵌入到高级语言如C程序中)

语言简洁,易学易用(完成核心功能只用了9个动词)

SQL通常不提供修改模式定义、修改视图定义和修改索引定义的操作。用户如果想修改这些对象,只能将它们先删除掉,然后再重建。

SQL同样支持数据库三级模式结构(外模式,模式和内模式,模式和内模式为唯一,外模式可不唯一)

定义模式

基本表的定义、删除与修改

关系模型中的一个重要概念是域,每一个属性来自一个域,它的取值必须是域中的值。在SQL中域的概念用数据类型来实现。

每一个基本表都属于某一个模式,一个模式包含多个基本表。定义基本表时定义它所属的模式共有三种方法:

若用户创建基本表(其他数据库对象也相同)时没有指定模式,系统根据搜索路径来确定该对象所属的模式。

SHOW search_path;  此语句可以显示当前搜索路径。

搜索路径的当前默认值是:$user. PUBLIC. 含义为首先搜索与用户名相同的模式名,若不存在,则使用PUBLIC模式。

修改基本表

删除基本表

索引的建立与删除

建立索引是加快查询速度de有效手段。用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。

数据查询

SQL提供了SELECT语句进行数据库的查询,其一般格式为:

SELECT既可以完成简单的单表查询(仅涉及一个表的查询),也可以完成复杂的连接查询和嵌套查询。

最后形成一个结果关系作为输出。

取消取值重复的行使用DISTINCT

连接查询:一个查询同时涉及两个以上的表,则称之为连接查询。

自身连接:连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接,称为表的自身连接。

复合条件连接

WHERE子句中有多个连接条件。

嵌套查询

相关子查询是循环查询,就是先查询一个父查询元组,传入子查询,再进行父查询,然后再进行下一个元组(就是子查询的数值需要父查询传入);而不相关子查询是一次性检查完子查询,再进行父查询。

就是属性列名和值一一对应。

视图的作用:

视图能够简化用户的操作

视图使用户能以多种角度看待同一数据

视图对重构数据库提供了一定程度的逻辑独立性

视图能够对机密数据提供安全保护

适当的利用视图可以更清晰的表达查询

posted @ 2017-08-07 18:28  羡鱼06  阅读(343)  评论(0编辑  收藏  举报