数据库(SQL语言)

1. SQL语言的组成

数据定义语言(data definition language,DDL )主要用于定义数据库的逻辑构包括数据库、基本表视图和索引等,扩展DDL还支持存储过程,函数、对象、触发器等定义。DDL包括3类语言,即定义、修改和删除。
2)据操纵语( data manipulation language ,DML):主要用干对数据库的数据进行检索和更新,其中更新操作包括插入、删除和修改数据。
(3)数据控制语言 data control language, DCL):主要用于对数据库的对象进行授权、用户维护(包括创建、修改和删除)完整性规则定义和事务定义等。
(4)其他:主要是嵌入式SQL语言和动态SQL语言的定义,规定了SQL语言在宿主语言中使用的规则。扩展SQL还包括数据库数据的重新组织、备份与恢复等功能。

2. SQL 特点

(1)综合统一
(2) 高度非过程化
(3) 面向集合的操作方式
(4) 同一种语法结构提供两种使用方式
(自含式语言、嵌入式语言)
(5) 语言简单,易学易用。

数据查询:SELECT
数据定义:CREATE、DROP、ALTER
数据操作:INSERT、UPDATE、DELETE
数据控制:GRANT、REVOKE

3. SQL查询的基本概念

外模式->视图和部分基本表
模式-> 基本表
内模式-> 存储文件

基本表:数据库中独立存在的表称为基本表。在SQL中一个关系对应一个基本表,一个或多个基本表对应一个存储文件。一个表可以带若干个索引,索引也存放在存储文件中。
视图:从一个或多个基本表中导出的表,是虚表,只存放视图的定义不存放对应数据。
查询表:查询结果对应的表。
存储文件:存储文件是指存放关系的物理文件,起逻辑结构组成关系数据库的内模式,起物理结构对用户是透明的。

4.简单查询

(1) 投影运算

消除重复元组:DISTINCT
取别名 AS

(2) 选择运算

比较运算:>,>=,<,<=,<>(或!=)
范围查询:[NOT] BETWEEN ... ADN
集合查询:[NOT]IN
空值查询:Is [not] null
字符匹配查询:LIKE

符号% 表示任意长度的字符串。
符号(下滑线)表示任意一个字符。
如果用户的查询字符串中本身要包含通配符% 和
,必须使用ESCAPE<换码字符>,对通配符进行处理。

逻辑查询:AND,OR,NOT。

在逻辑运算中不可以对同一属性进行逻辑“与”的等值运算。例如在选课score表中查询同时选修了001和002课程的同学的选课信息。得不到结果。

(3) 排序运算

升序(ASC)、降序(DESC)
ORDER BY <表达式1> [ASC|DESC][,<表达式2> [ASC|DESC]]

(4)查询表

SQL 语句中FROM子句后面可以是基本表、视图还可以是查询表。

FROM子句后是一个查询表,表示对该查询的查询结果(查询表)进行查询,必须为查询表取一个名称

5. 连接查询

等值与非等值连接运算在WHERE子句中加入连接多个关系的连接条件,其格式
WHERE [表1.]<属性名 1><比较运算符>[表2.]<属性名 2> [<逻辑运算符>[表3.]<属性名 3><比较运算符>[表4.]<属性名 4>]
比较运算符包括:>,>=,<,<=,=,<>(或!=)。
当比较运算符为=时,表示等值连接,其他运算符为非等值连接。

自表连接:若某个表与自己进行连接,称为自表连接。

外连接
(1)左外连接:结果中包含左关系中的所有元组,对于左关系中没有连接上的元组,其右关系中相应的属性用空值替代。
FROM class a LEFT OUTER JOIN Student b ON a.classNo = b.classNo
(2)右外连接
(3)全外连接:包含左右关系中的所有元组。
FROM class a FULL OUTER JOIN Student b ON a.classNo = b.classNo

6.聚合查询

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容