设为首页 加入收藏

TOP

关系数据库SQL语言简介(一)
2015-11-21 03:26:29 来源: 作者: 【 】 浏览:21
Tags:关系 数据库 SQL 语言 简介
SQL(structrued query language)是1974年由Boyce和Chamberlin提出的,主要包括:数据查询(query)、数据操纵(manipulation)、数据定义(definition)和数据控制(control)功能,是一种通用的、功能强大的关系 数据库的标准语言。
?
SQL的特点
?
综合统一:SQL是集数据定义、数据操纵和数据控制功能于一体,语言风格统一,可独立完成数据库生命周期的所有活动。
?
高度非过程化:SQL语言是高度非过程化的,当进行数据操作时,存储路径对用户来说是透明的,提高了数据的独立性。
?
面向集合的操作方式:操作对象、查找结果可以是记录的集合。
?
两种使用方式:既可以在终端键盘上输入SQL命令,对数据库进行操作,也可以将SQL语言嵌入到高级语言程序中。
?
语言简洁,易学易用:SQL语言功能极强,完成核心功能只用了9个动词,包括以下4类。
?
数据查询:SELECT
?
数据定义:CREATEDROPALTER
?
数据操纵:INSERTUPDATEDELETE
?
数据控制:GRANTREVOKE
?
SQL数据定义
?
1.创建表(CREATE TABLE)
语句格式:
?
CREATE TABLE <表名>(<列名><数据类型>[列级完整性约束条件]
? ?[,<列名><数据类型>[列级完整性约束条件]]...
? ?[,<表级完整性约束条件>]);
?
列级完整性约束条件有:NULL(空)、UNIQUE(取值唯一)等。
?
2.修改表(ALTER TABLE)
?
语句格式:
?
ALTER TABLE <表名>[ADD<新列名><数据结构>[完整性约束条件]]
? [DROP<完整性约束名>]
? [MODIFY<列名><数据类型>];
?
3.删除表(DROP TABLE)
?
语句格式:
?
DROP TABLE <表名>;
?
4.建立索引
?
语句格式:
?
CREATE [UNIQUE][CLUSTER] INDEX <索引名>
?ON <表名>(<列名>[<次序>][,<列名>[<次序>]]...);
?
参数说明:
?
次序。可选ASC(升序)或者DSC(降序),默认值为ASC。
?
UNIQUE。表明此索引的每一个索引值只对应唯一的数据记录。
?
CLUSTER。表明要建立的索引是聚集索引,意为索引项的顺序是与表中记录的物理顺序一致的索引组织。
?
5.删除索引
?
语句格式:
?
DROP INDEX <索引名>;
?
6.定义视图
?
视图是从一个或者多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。视图不是真实存在的基础表而是一个虚拟表,视图所对应的数据并不真实存在以视图结构存储的数据库中,而是存储在视图所引用的表中。
?
语句格式:
?
CREATE VIEW 视图名 [(列名)[,<列名>]]
? ?AS <子查询>
? ?[WITH CHECK OPTION];
?
注意:
?
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 [ALL | DISTINCT] <目标列表达式> [,<目标列表达式>]...
FROM <表名或视图名>[,<表名或视图名>]
[WHERE <条件表达式>]
[GROUP BY <列名1>[HAVING<条件表达式>]]
[ORDER BY <列名2>[ASC | DESC]...];
?
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 不在集合中 >= 大于等于
< 小于
字符串匹配运算符 LIKE 与_和%进行单个多个字符匹配 <= 小于等于
= 等于
!= 不等于
空值比较运算符 IS NULL 为空 逻辑运算符 AND
IS NOT NULL 不能为空 OR
NOT
2.简单查询
?
简单查询只需要使用3个保留字 SELECT、FROM 和 WHERE。
?
3.连接查询
?
若查询涉及两个以上的表,则成为连接查询。
?
4.子查询
?
子查询也称嵌套查询。嵌套查询是指一个SELECT-FROM-WHERE 查询块可以嵌入另一个查询块之中。在SQL中允许多重嵌套。
?
5.聚集函数
?
聚集函数是一个值得集合为输入,返回单个值的函数。SQL提供了5个预定义集函数:平均值 AVG、最小值 MIN、最大值 MAX、求和 SUM 以及计数 COUNT。如表2所示。
?

表2 集函数的功能

集函数名 功能
COUNT ([DISTINCT|ALL]*) 统计元组个数
COUNT ([DISTINCT|ALL]<列名>) 统计一列中值得个数
SUM ([DISTINCT|ALL]<列名>) 计算一列(该列应为数值型)中值得总和
AVG?([DISTINCT|ALL]<列名>) 计算一列(该列应为数值型)中值的平均值
MAX?([DISTINCT|ALL]<列名>) 求一列值的最大值
MIN?([DISTINCT|ALL]<列名>) 求一列值的最小值
?
使用 ANY 和 ALL 谓词必须同时使用比较运算符,其含义及等价的转换关系见表3.用集函数实现子查询通常要比直接用ALL 或 ANY 查询效率要高。
?

表3 ANY、ALL 谓词含义及

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇CentOSOracle报Environmentvariab.. 下一篇由最近修改的一个报表想到的

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: