3.3 数据定义
3.3.2 基本表的定义、删除和修改
2、数据类型
- SQL中域的概念用数据类型来实现
- 定义表的属性时 需要指明其数据类型及长度
- 选用哪种数据类型
(1)取值范围
(2)要做哪些运算
常用数据类型
3、模式与表
- 每一个基本表都属于某一个模式
- 一个模式包含多个基本表
- 定义基本表所属模式
(1)方法一:在表名中明显地给出模式名
Create table “S-T”.Student(…); /模式名为 S-T/
Create table “S-T”.Cource(…);
Create table “S-T”.SC(…);
(2)方法二:在创建模式语句中同时创建表
(3)方法三:设置所属的模式 - 创建基本表(其它数据库对象也一样)时,若没有指定模式,系统根据搜索路径来确定该对象所属的模式
- RDBMS会使用模式列表中第一个存在的模式作为数据库对象的模式名
- 若搜索路径中的模式名都不存在,系统将给出错误
- 显示当前的搜索路径: SHOW search_path;
- 搜索路径的当前默认值是:$user, PUBLIC
- DBA用户可以设置搜索路径,然后定义基本表
(1)SET search_path TO “S-T”,PUBLIC;
(2) Create table Student(…);
(3)结果建立了S-T.Student基本表。
(4)RDBMS发现搜索路径中第一个模式名S-T存在,就把该
模式作为基本表Student所属的模式。
3.3.3 索引的建立和删除
- 建立索引的目的:加快查询速度
- 谁可以建立索引
(1)DBA 或 表的属主(即建立表的人)
(2)DBMS一般会自动建立以下列上的索引 (1)PRIMARY(2) KEY UNIQUE - 谁维护索引: DBMS自动完成
- 使用索引:DBMS自动选择是否使用索引以及使用哪些索引,自动选择合适的索引作为存取路径,用户不必也不能显式地选择索引
- RDBMS中索引一般采用B+树、HASH索引来实现
(1)B+树索引具有动态平衡的优点
(2)HASH索引具有查找速度快的特点 - 采用B+树,还是HASH索引 则由具体的RDBMS来决定
- 索引是关系数据库的内部实现技术,属于内模式的范畴
- CREATE INDEX语句定义索引时,可以定义索引是唯一索引、非唯一索引或聚簇索引
建立索引
3.3.4 数据字典
- 数据字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有定义信息:
(1)模式和表定义
(2)视图定义
(3)索引定义
(4)完整性约束定义
(5)各类用户对数据库的操作权限
(6)统计信息等 - 关系数据库管理系统在执行SQL的数据定义语句时,实际上就是在更新数据字典表中的相应信息。
3.4 数据查询
3.4.1 单表查询
查询仅涉及一个表:
- 选择表中的若干列
2. 选择表中的若干元组
3. ORDER BY子句
4. 聚集函数
5. GROUP BY子句