SQL语言概述
结构化查询语言SQL作为关系型数据库管理系统的标准语言,强调的是语言结构化和对以二维表为基础的关系数据库的操作能力。
1.SQL语言的分类
S
Q
L
语
句
{
数
据
定
义
语
句
实
现
对
基
本
表
、
视
图
、
索
引
的
定
义
修
改
与
删
除
数
据
操
纵
语
句
数
据
查
询
和
数
据
更
新
数
据
控
制
语
句
操
作
权
限
控
制
SQL语句 \begin{cases}数据定义语句&实现对基本表、视图、索引的定义修改与删除\\数据操纵语句&数据查询和数据更新\\数据控制语句&操作权限控制\end{cases}
SQL语句⎩⎪⎨⎪⎧数据定义语句数据操纵语句数据控制语句实现对基本表、视图、索引的定义修改与删除数据查询和数据更新操作权限控制
2.T-SQL的特点
- 一体化的特点
- 具有交互式和嵌入式两种使用方式
- 高度非过程化、采用集合的操作方式
- 语言简洁易学
- 支持三级数据模式结构
3.T-SQL的语法格式约定
(1)运算符类型
数据定义
SQL的数据定义功能:定义各种数据库的“对象”
- 模式定义
- 标定义
- 视图定义
- 索引定义
现代关系数据库管理系统提供了一个层次化的数据库对象命名机制 - 一个数据库可以建立多个模式
- 一个模式下通常包括多个表、视图和索引等数据库对象
数据字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有对象的定义信息以及一些统计信息: - 关系模式、表、视图、索引的定义
- 完整性约束的定义
- 各类用户对数据库的操作权限
- 统计信息等
关系数据库管理系统在执行SQL的数据定义语句时,实际上就是在更新数据字典表中的相应信息。
定义模式
- 定义模式类似于定义了一个命名空间(目录)
- 这个空间中可以定义该模式包含的数据库对象,如基本表、视图、索引等
- CREATE SCHEMA “模式名” AUTHORIZATION 用户名[表定义字句|视图定义字句|授权定义字句]
eg:为用户定义一个学生-课程模式S-T
CREATE SCHEMA “S-T” AUTHORIZATION WANG;(该模式授权给WANG)
eg:CREATE SCHEMA AUTHORIZATION WANG;(该语句没有指定<模式名>,模式名隐含为用户名)
删除模式
- DROP SCHEMA 模式名 <CASCADE|RESTRICT>
- CASCADE(级联)
- 删除模式的同时将该模式中所有数据库对象全部删除
- RESTRICT(限制)
- 若该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行,仅当没有任何下属对象才可执行
- CASCADE(级联)
基本表的定义
例题:
数据类型
- 关系模型中“域”的概念用数据模型来实现
- 定义表的属性时需要指明其数据类型及长度
- 选用哪种数据类型
- 取值范围
- 要做哪些运算
模式与表
- 每一个基本表需属于某个模式
- 定义基本表所属模式的方式:
- 1.在表中明显得给出模式名
- 2.在创建模式的同时创建表
- 3.定义基本表所属模式的方式
- 创建基本表(其他数据库对象也一样)时,若没有指定模式,系统根据
搜索路径
来确定该对象所属模式 - 关系数据库管理系统会以“搜索路径”指向的模式作为数据库对象的模式名
- 设置搜索路径的方式:SET search_path TO “S-T”,PUBLIC;
索引的定义
-
数据库管理员或建立表的人建立索引
-
关系数据库管理系统自动维护索引
-
关系数据库管理系统自动选择合适的索引作为存储路径,用户不必也不能显式地选择索引
-
建立索引的目的:加快查询速度
-
关系数据库管理系统中常见索引:
- 顺序文件上的索引
- B+数索引
- 散列(hash)索引
- 位图索引
-
特点
- B+树索引具有动态平衡的优点
- HASH索引具有查找速度快的特点
建立索引
- 修改索引:ALTER INDEX <旧索引名>RENAME TO <新索引名>
- 删除索引:DROP INDEX <索引名>;系统会从数据字典中删去有关该索引的描述