资源描述
SQL语言概述
SQL语言是一个十分重要的标准数据库语言。SQL语言包括查询、数据操纵、定义、控制和管理等功能。SQL语言是一个综合的、通用的、功能极强的关系数据库语言。SQL功能强,简单易学,是一种交互式的查询语言,允许用户直接使用查询语句查询存储的数据。
1.SQL语言的几个特点:
①语言一体化:
关系数据语言集DDL,DML和DCL于一体,称为一体化语言。SQL能完成定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库安全控制等一系列操作要求。具有定义、查询、更新、控制等多种功能。
②非过程化特点:
关系数据语言是非过程化语言。在程序设计时,只要求用户表明“干什么”就行了。至于怎么干,则由系统去解决。也就是说SQL语句的操作过程有系统自动完成。所以关系数据语言操作简单,易学易用。此外,关系数据库的存取方式是面向集合的,它的操作对象是一个或多个关系,得到的结果也是一个关系,这导致SQL语言的结构简单、使用灵活,高度的非过程化。
③两种使用方式,统一的语法结构。
SQL通常有两种使用方式:一种是联机交互使用方式;另一种是嵌入某种高级程序设计语言的程序中,以实现数据库操作。尽管这两种使用方式不同,SQL语言的语法结构基本是一致的。既可独立使用又可以与主语言嵌套使用。关系数据库的这种具有自含和嵌入的双重特性,使得它既可以不依赖于宿主语言而独立使用,又可与宿主语言嵌套使用,给用户带来了方便。
SQL语言之所以具有上述特点,其主要原因有两个:
o 关系模型采用了最简单、最规范的数据结构,这使得DML大大简化。
o 关系数据语言是建立在关系运算的数学基础上的。
总而言之,SQL语言是关系数据库统一的界面语言,它可以用于所有用户的数据库活动类型,其中包括数据库系统管理员和程序员等。
2.SQL 语言基础
(1)三个概念
o 基本表:本身独立存在的表,是关系数据库中最基本的对象,主要用于存储各种数据(包括系统数据)。每个基本表对应于一个存储文件。一个表可以带有多个索引。
o 视图:是用户看到的数据内容,是由一个或几个基本表重构的虚表。它本身不独立存在于数据库中,只有对数据的定义,没有实际存储的对应的数据,它的所有数据都在与其相关的数据基本表中,因此对视图的所有操作都将被最终转换为对相关基本表数据的操作。视图所包含的属性可以来自多个不同的基本表,应该是多个基本表的部分属性的综合。既然如此,定义视图的表可以是基本表也可以是已定义好的视图。只是如果在视图的基础上再定义视图将会降低查询的效率。
SQL语言:数据定义DDL
从用户的角度而言,基本的数据定义语句有:
o 基本表的创建(CREATE TABLE)、修改(ALTER TABLE)和删除(DROP TABLE)。
o 视图的创建(CREATE VIEW)和删除(DROP VIEW)。
o 索引的创建(CREATE INDEX)和删除(DROP INDEX)。
1.基本表
(1)创建基本表
作用:建立一个用以存放用户数据的表。建立表时要给出信息的定义:表名(关系名)、列名(属性名)、列的数据类型(包括数据的最大长度)、列的完整性约束。
语句格式:
CREATE TABLE 表名(列名1 数据类型[NOT NULL]
[,列名2 数据类型[完整性约束]
...
,列名n 数据类型[NOT NULL])
注意:NOT NULL表示该(列)的属性值不能为“空”,即必须对该数据类型的属性有一个具体的值; NULL表示该列的值可以为“空”,为“空”只是表示可以不填写这一项。[ ] 表示其中的部分可以省略。此外,表名一次只能有一个。
(2)修改和扩充基本表
作用:增加一列、增加一个完整性约束条件,修改一个列以及表的重命名等。
语句格式:
ALTER TABLE 表名 ADD 列名 数据类型
注意:对于增加或修改的新字段的值必须是“空”值(NULL),NOT NULL是不允许的。
(3)删除基本表
作用:删除一个包括所有保存的数据在内的表。
语句格式:
DROP TABLE 表名
注意:当删除一个已存在的基本表时,在该基本表中建立的所有的视图和索引也将被同时删除。
2.视图
(1)建立视图
语句格式:
CREATE VIEW 视图名[(列名1[,列名2,...])] AS <SELECT 语句>
注意:
o CREATE VIEW只是定义了一个视图,该语句执行后有关对视图的定义被存储在数据字典中,只有对视图进行操作时才根据数据字典中对该视图的定义描述,从基本表中形成实际的数据提供给用户使用。
o 在视图既可以从列(属性)的方向对基本表进行选择,也可以从行(元组)的方向进行选择,列方向选择的是关系的部分属性,而行方向选择的是关系中的部分记录。如何选择则要依据SELECT 语句所提供的条件。
o 列名可以省略,这时列名由SELECT语句确定。
SQL语言:数据操纵语言DML
SQL的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE,主要完成数据的检索(查询)和更新(插入、修改、删除)两大功能。
1.数据的检索(查询)语句SELECT
查询语言是用来对已建立好的基本表和视图中的数据按照某种指定的方式(条件表达式、次序等)进行检索查询。虽然SQL的查询语句只有一条,但是它却是SQL语言中使用最多、最重要、最灵活的语句,可以表达出各种复杂的查询要求,进行几乎全部的查询操作。
语句格式:
SELECT [ALL/DISTINCT] * / 列表
FROM 基本表(或视图) [WHERE 条件表达式]
[GROUP BY 列名 [HAVING条件表达式] ]
[ORDER BY 列名 [ASC/DESC] ]
该语句的含义是:根据WHERE提出的查询条件表达式,在FROM后面给出的基本表(或视图)中找出满足上述条件的元组,按照SELECT后面的列名,选出元组中的分量形成结果表。
说明:
o ALL:检索所有符合条件的元组。
o DISTINCT:检索时去掉重复的所有元组。缺省时为ALL。
o *:检索结果为整个元组,既包括所有的列。
o 列表:由指定的列名组成表,可以是由“,”(逗号)分隔的多个列。
一般格式:
列名[,列名,...,列名]。
o GROUP BY:如果有GROUP BY,则将结果按照GROUP BY 指定的列名分组,每个组产生结果表中的一个元组。分组的附加条件是由HAVING指定的条件表达式给出。
o ORDER BY:如果有ORDER BY,则结果表将根据ORDER BY指定的列名按升序(ASC)或降序(DESC)排序。
对于数据库的各种形式的查询操作,SQL语言体现在SELECT语句的多样化上。
主要有:基本查询、多表查询和嵌套查询。
展开阅读全文