关系数据库标准语言SQL(.doc
文本预览下载声明
关系数据库标准语言SQL
【本章综述】SQL语言是关系数据库操作的标准语言。主要包括数据定义、数据操作和数据控制三类。
【本章重点】sql语句的编写和执行。
【本章难点】嵌套查询。
前言:SQL(Structured Query Language)语言1974年提出,1975~1979年IBM公司研制了著名的关系数据库管理系统原形System R 并实现了这种语言。特点:功能丰富、语言简捷。经过不断修改,最终发展成为关系数据库的标准语言。
3.1 SQL概述
本节综述
SQL 是一种介于关系代数与关系演算之间的结构化查询语言,但其功能不仅仅是查询,SQL是一个通用的、功能极强的关系数据库语言。
1.1 SQL的特点
SQL 语言集数据查询(Data Query))))
基本表:本身独立存在的表,在SQL中一个关系对应一个表。一个(多个)基本表对应一个存储文件。
存储文件:其逻辑结构组成了关系数据库的内模式。
视图:从一个或几个基本表导出的表,本身不独立存储在数据库中,数据库只存放视图的定义而不存放视图对应的数据。
3.2 数据定义(详讲的一节)
操作对象 操作方式 创 建 删 除 修 改 表 CREATE TABLE DROP TABLE ALTER TABLE 视 图 CREATE VIEW DROP VIEW 索 引 CREATE INDEX DROP INDEX
SQL的数据定义语句
3.2.1 定义、删除与修改基本表
定义基本表
CREATE TABLE 表名 (列名 数据类型[列级完整性约束条件]
[,列名 数据类型[列级完整性约束条件]]
[,表级完整性约束条件]]);
重点讲述P88 例1(讲清完整性约束条件)
修改基本表
ALTER TABLE 表名
[ADD 新列名数据类型[完整性约束]]
[DROP完整性约束名]
[MODIFY列名数据类型];
重点讲述P89 例2、3、4
删除基本表
DROP TABLE 表名
注意:基本表定义一旦删除,表中的数据、此表上建立的索引和视图都将自动被删除,因此执行此操作要格外当心。
3.2.2 建立与删除索引
建立索引的意义:加快查询速度的有效手段。(可以讲查字典的例子)
建立索引
CREATE [UNIQUE][CLUSTER]INDEX索引名
ON 表名(列名[次序][,列名[次序]]…);
次序:ASC(升序,缺省)、DESC(降序)
UNIQUE:表明此索引的每一个索引值只对应唯一的数据记录。
CLUSTER:表示建立聚簇索引。
聚簇索引:指索引项的顺序与表中记录的物理顺序一致的索引组织。其目的用户可以在最常查询的列上建立聚簇索引提高查询效率。缺点:索引更新时,物理顺序的变更代价过大。
重点讲述P91 例6
删除索引
DROP INDEX索引名
3.3 查 询
数据库查询是数据库的核心操作。SELECT 语句的一般格式:
SELECT [all |distinct]目标列表达式]…
FROM 表名或视图名[,表名或视图名]…
[WHERE 条件表达式]
[GROUP BY列名1[HAVING条件表达式]]
[ORDER BY列名2[ASC|DESC]];
含义:整个SELECT语句的含义是,根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式选出元组中属性值形成的结果表。
附:GROUP 子句按列名1分组,属性相等的为一个组。
HAVING :满足条件的组才能输出。
ORDER:排序。
3.3.1 单表查询(重点是若干例子)
单表查询是指仅涉及一个表的查询。
选择表中的若干列(P92~93 例1~例5)
查询指定列
查询全部列(注意“*”的用法)
查询经过计算的值
选择表中的若干元组(P94~99 例6~例23)
消除取值重复的行(DISTINCT的用法)
查询满足条件的元组(WHERE的用法)
比较大小(=、、、=、=、!=或)
确定范围(BETWEEN。。。AND 的用法)
确定集合(IN、NOT IN 的用法)
字符匹配(LIKE 的用法)
[NOT]LIKE’匹配串’[ESCAPE‘换码字符’]
匹配串可以是完整的字符,亦可是如下两种通配符:
%(表任意长度) -(表单个字符)
涉及空值的查询(NULL)
多重条件查询(AND OR的使用)
对查询结果排序(P99 例24,25)
使用集函数(P100 例26~例29)
COUNT ([DISTINCT|ALL]
显示全部