数据库对象
数据库对象是数据库的组成部分,数据库对象主要主要包含:表,索引,视图,存储过程,缺省值,规则,触发器,用户,函数等。
对象 | 作用 |
---|---|
表 | 表示数据库中的一种特殊的数据结构,用于储存数据对象与对象间的关系,由行和列组成。 |
索引 | 索引是对数据库表中一列或者多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。 |
视图 | 视图是从一个或几个基本表中导出的虚表,可用于控制用户对数据访问。 |
储存过程 | 存储过程是一组为了完成特定功能的SQL语句的集合。一般用于报表统计、数据迁移等。 |
缺省值 | 缺省值是当在表中创建列或插入数据时,对没有指定其具体值的列或列数据项赋予事先设定好的值。 |
规则 | 规则是对数据库表中数据信息的限制。它限定的是表的列。 |
触发器 | 触发器是一种特殊类型的存储过程,通过指定的事件触发执行。一般用于数据审计、数据备份等。 |
函数 | 函数是对一些业务逻辑的封装,以完成特定的功能。函数执行完成后会返回执行结果。 |
DDL分类
DDL(Data Definition Language数据定义语言),用于定义或修改数据库中的对象,主要分为三种类型语句:CREATE、ALTER和DROP。
语句 | 作用 |
---|---|
CREATE | 用来创建数据库对象; |
ALTER | 用来修改数据库对象的属性; |
DROP | 用来删除数据库对象; |
创建表
语法格式:
注意:
创建当前用户的表,用户需要被授予CREATE TABLE系统权限;如果是创建其他用户的表,用户需要被授予CREATE ANY TABLE系统权限,普通用户不可以创建系统用户对象。
其中,表名、列名(数据类型、 size)在创建表时必须指定。
修改表属性
ALTER TABLE功能指通过更改、添加、删除列和约束来更改表的定义功能包括:
1、列的添加、删除、修改、重命名。
2、约束的添加、删除。
3、约束的启动和禁用。
4、修改分区的名称。
5、修改分区的表空间。
语法格式:
注意:
执行该语句的用户需要有ALTER ANY TABLE系统权限,普通用户不可以修改系统用户对象。
增加表中列属性时,保证表中无记录。
修改表中列属性时,保证表中所有记录该列为NULL。
删除表
语法格式:
注意
用户能删除自己的表;删除其他用户下的表,需要DROP ANY TABLE权限,普通用户不可以删除系统用户对象。
删除表并不会立即把表中记录删除,将表重命名置recycle标记,并放入回收站。可以通过flashback命令回退。
创建索引
在指定的表上创建一个索引。索引可以用来提高数据库查询性能,但是不恰当的使用将导致性能下降。
语法格式:
注意
执行该语句的用户需要有CREATE INDEX、 CREATE ANY INDEX系统权限,普通用户不可以创建系统用户对象。
修改索引属性
语法格式:
删除索引
语法格式:
创建视图
语法格式:
删除视图
创建序列
向当前数据库中增加一个新的序列生成器。当前用户为该生成器的所有者。
语法格式:
修改序列属性
删除序列
数据控制
事务控制
事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务控制提供了事务的启动、提交、两阶段提交准备、回滚、设置隔离级别操作,并支持在事务中创建保存点。
功能 | 相关SQL |
---|---|
提交事务 | COMMIT |
回滚事务 | ROLLBACK |
GaussDB 100没有提供显式定义事务开始的语句,第一个可执行SQL(除登录语句外)隐含事务的开始。
GaussDB 200支持此事务显示定义语句,通过START TRANSACTION启动事务。非显示定义情况下,默认一条SQL语句是一个事务。
提交事务
该语句使当前事务工作单元中的所有操作“永久化”,并结束该事务。
语法格式:
回滚事务
该语句回滚(废除)当前事务工作单元中的所有操作,并结束该事务。
语法格式:
事务保存点
SAVEPOINT语句用于在事务中设置保存点。保存点提供了一种灵活的回滚,事务在执行中可以回滚到某个保存点。在该保存点以前的操作有效,而以后的操作被回滚掉。一个事务中可以设置多个保存点。
语法格式: