关系数据库SQL语言简介
SQL(structrued query language)是1974年由Boyce和Chamberlin提出的,主要包括:数据查询(query)、数据操纵(manipulation)、数据定义(definition)和数据控制(control)功能,是一种通用的、功能强大的关系数据库的标准语言。SQL的特点
[*] 综合统一:SQL是集数据定义、数据操纵和数据控制功能于一体,语言风格统一,可独立完成数据库生命周期的所有活动。
[*] 高度非过程化:SQL语言是高度非过程化的,当进行数据操作时,存储路径对用户来说是透明的,提高了数据的独立性。
[*] 面向集合的操作方式:操作对象、查找结果可以是记录的集合。
[*] 两种使用方式:既可以在终端键盘上输入SQL命令,对数据库进行操作,也可以将SQL语言嵌入到高级语言程序中。
[*] 语言简洁,易学易用:SQL语言功能极强,完成核心功能只用了9个动词,包括以下4类。
数据查询:SELECT
数据定义:CREATE DROP ALTER
数据操纵:INSERT UPDATE DELETE
数据控制:GRANT REVOKE
SQL数据定义
1.创建表(CREATE TABLE)
语句格式:
CREATE TABLE ([列级完整性约束条件]
[,[列级完整性约束条件]]...
[,]);
列级完整性约束条件有:NULL(空)、UNIQUE(取值唯一)等。
2.修改表(ALTER TABLE)
语句格式:
ALTER TABLE ]
;
3.删除表(DROP TABLE)
语句格式:
DROP TABLE ; 4.建立索引
语句格式:
CREATE INDEX
ON ([][,[]]...);
参数说明:
次序。可选ASC(升序)或者DSC(降序),默认值为ASC。
UNIQUE。表明此索引的每一个索引值只对应唯一的数据记录。
CLUSTER。表明要建立的索引是聚集索引,意为索引项的顺序是与表中记录的物理顺序一致的索引组织。
5.删除索引
语句格式:
DROP INDEX ; 6.定义视图
视图是从一个或者多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。视图不是真实存在的基础表而是一个虚拟表,视图所对应的数据并不真实存在以视图结构存储的数据库中,而是存储在视图所引用的表中。
语句格式:
CREATE VIEW 视图名 [(列名)[,]]
AS
;
注意:
a.子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDER BY 子句和 DISTINCT 短语。
b.WITH CHECK OPTION 表示对 UPDATE, INSERT, DELETE 操作时保证更新、插入或删除的行满足视图定义中的谓语条件(即子查询中的条件表达式)。
c.组成视图的属性列名或者全部省略或者全部指定。如果省略属性列名,则隐含该视图由 SELECT 子查询目标列的诸属性组成。
7.删除视图
语句格式:
DROP VIEW ; SQL数据查询
SQL的数据操纵功能包括SELECT(查询)、INSERT(插入)、DELETE(删除)和UPDATE(修改)4条语句。SQL语言对数据库的操作十分灵活方便,原因在于SELECT语句中的成分丰富多样的元组,有许多可选形式,尤其是目标列和条件表达式。
1.SELECT基本结构
语句格式
SELECT [,]...
FROM [,]
]
...];
SQL查询中的字句顺序:SELECT、FROM、WHERE、GROUP BY、HAVING 和 ORDER BY。但是 SELECT、FROM 是必须的,而且,HAVING 子句只能与 GROUP BY 搭配起来使用。
SELECT 子句对应的是关系代数中的投影运算,用来列出查询结果中的属性。其输出可以是:列名、表达式、集函数(AVG、COUNT、MAX、MIN、SUM),DISTINCT 选项可以保证查询的结果集中不存在重复元组。
FROM 子句对应的是关系代数中的笛卡尔积,它列出的是表达式求值过程中需扫描的关系,即在FROM 子句中出现多个基本表或视图时,系统首先执行笛卡尔积操作。
WHERE 子句对应的是关系代数中的选择谓词。WHERE 子句的条件表达式中可以使用的运算符如表1所示。
表1 WHERE 子句的条件表达式中可以使用的运算符
运算符含义运算符含义集合成员运算符IN在集合中算术运算符>大于NOT IN不在集合中>=大于等于MIN>ALL大于子查询结果中的所有值>MAX=MAX
页:
[1]