SQL是结构化查询语言,是关系数据库的标准语言(通用的、功能极强的关系数据库语言)
SQL的特点:
1.管理统一
2.高度非过程化
3.灵活的使用方式(是独立的语言,又是嵌入式的语言)
4.面向集合
5.简洁、通用、功能强
SQL的基本组成
- 模式对应于基本表
- 内模式对应存储文件
-
外模式对应的视图
一张图看懂数据库的三级模式机构
数据库三级结构
SQL语句分类
1)数据定义语言
2)数据操纵语言
3)数据控制语言
SQL数据类型
1)预定义数据类型
2)构造数据类型
3)自定义数据类型
SQL中域的概念用数据类型来实现,定义表的属性时需要指明其数据类型及长度。
SQL数据库定义功能
1)模式定义
2)表定义
3)视图和索引的定义
那么接下来就来了解一下以上提到的数据库设计模式,深入理解一下数据库。
现代关系数据库管理系统提供了一个层次化的数据库对象命名机制。
- 一个关系数据库管理系统的实例(Instance)中可以建立多个数据库
- 一个数据库中可以建立多个模式
-
一个模式下通常包括多个表、视图和索引等数据库对象
数据库层次化命名
一、模式
1.定义
一个SQL模式定义了一个存储空间(命名空间),是所属基本表、视图的集合。再该存储空间的数据库对象全体,构成该模式对应的SQL数据库。
在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。
模式定义语句的语法格式:
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<表定义子句>|<视
图定义子句>|<授权定义子句>……](DBA)


2.删除模式
DROP SCHEMA <模式名><CASCADE|RESTRICT>

没有指定删除方式,默认删除方式是RESTRICT
3.表的建立(框架、数据字典)
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ]
…
[,<表级完整性约束条件> ] );
<表名>:所要定义的基本表的名字
<列名>:组成该表的各个属性(列)
<列级完整性约束条件>:涉及相应属性列的完整性约束条件
<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件
如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。



4.表的扩充和修改
其语法格式为:
ALTER TABLE <表名>
[ADD [COLUMN] <新列名><数据类型> [完整性约束条件]
[DROP [COLUMN]<列名>[RESTRICT |CASCADE ]
[ALTER COLUMN<列名><数据类型>
要修改的基本表由<表名>指定。



5.表的删除
其一般格式为:
DROP TABLE < 表名 >[RESTRICT|CACSADE]

二、索引的建立和删除
建立索引的目的:加快查询速度
关系数据库管理系统中常见索引:
- 顺序文件上的索引
- B+树索引
- 散列(hash)索引(只适合等值查询(包括= <> 和in),不适合模糊或范围查询)
- 位图索引
特点: - B+树索引具有动态平衡的优点
- HASH索引具有查找速度快的特点
1.索引的作用
⑴使用索引可以明显地加快数据查询的速度
(2)使用索引可保证数据的唯一性
索引的定义中包括定义数据唯一性的内容
(3)使用索引可以加快连接速度
在连接文件的连接字段上建有索引
2.建立索引的原则
(1)索引的建立和维护由DBA和DBMS完成
索引由数据库管理员DBA或表的属主(Owner)负责建立和删除;索引由系统自动选择和维护
(2)大表应当建索引,小表则不必建索引
(3)对于一个基本表,不要建立过多的索引
3.创建索引
语句格式
CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
ON <表名>(<列名1>[<次序>][,<列名2>[<次序>] ]…);

4.删除索引
格式为:
DROP INDEX [ON<表名>] <索引名>
该命令删除<索引名>指定的索引
[ON<表名>] 是任选项,可以确认该索引是否是这张表的索引


