ORACLE SQL 表对象的DDL操作
开发工具与关键技术:Oracle sql*plus PLSQL
作者:覃煜霖
撰写时间:2019年03月26日
创建表的过程中我们首先要定义表的名字,然后加入我们需要的字段以及它的数据类型
过程,如下:
CREATE TABLE WOYUFENGTIAN(
ROLE_ID NUMBER(5),
ROLE_NAME VARCHAR2(10),
FAN_MATH NUMBER(12),
BIRTHDAY_DATE DATE
)
创建表的过程中我们可以给字段添加各种约束
过程,如下
CREATE TABLE WOYUFENGTIAN(
ROLE_ID NUMBER(5) PRIMARY KEY,
ROLE_NAME VARCHAR2(10) NOT NULL,
FAN_MATH NUMBER(12),
BIRTHDAY_DATE DATE
)
PRIMARY KEY:主键约束;
NOT NULL:非空约束。
这里的主键约束包含了唯一性约束与非空约束,当然还有其他约束,这里就列举了两个常见约束,下面的操作中都将使用表WOYUFENGTIAN作为例子。
当表创建完成后我们可以给表手动添加索引、别名等操作。
添加索引:向表格中添加索引能提高对数据的操作效率,当然,在某些情况下添加索引可能不了效率,反而还会影响我们对数据的操作效率。
如果表不经常更新,数据量大的情况下我们可以为表创建索引,以提高效率,
手动创建索引如下
CREATE INDEX TEST_INDEX
ON WOYUFENGTIAN(ROLE_ID);
查询索引:添加索引后,我们可以查询出我们已经创建好的索引。
SELECT C.INDEX,C.COLUMN_NAME
FROM USER_INDEXES I,USER_IND_COLUMN C
WHERE C.INDEX_NAME = I,INDEX_NAME AND C.TABLE_NAME = ‘WOYUFENGTIAN’
输出,如下图:
删除索引:添加了索引后,我们可以对索引进行删除操作。
过程,如下
DROP INDEX TEST_INDEX
添加别名:给表添加别名以便于记忆与查询。添加别名后,我们可以直接使用别名进行一些可以使用别名进行操作的操作。
过程,如下:
CREATE SYNONYM TEST_TABLE
FOR WOYUFENGTIAN
删除别名:别名创建后,可以进行删除操作。
过程,如下
DROP SYNONYM TEST_TABLE
表创建完成后,我们如需向表中添加一个或多个新的列,操作如下:
首先我们查询出表的结构:
然后向表中添加新的列:
过程,如下
ALTER TABLE WOYUFENGTIAN
ADD (ROLE_FATHER VARCHAR2(10)
ROLE_MATHER VARCHAR2(10)
)
再次查询表的结构,输出结果如下:
这样,表就新加了两个列,我们需要注意的是,新加的列只会在表的最后列依次添加,无法指定在某一列添加新的列。
修改列的数据类型,此为需要对表中的列的数据类型或者数据类型中的字节长度进行调整时所做的操作。
只修改数据类型的字节长度:
过程,如下
ALTER TABLE WOYUFENGTIAN
MODIFY (ROLE_NAME VARCHAR(15)
)
查询表的结果如下:
上图为未做修改(虚线上的表的结构)的表与修改后(虚线下的表的结构)的表的对比,可以看出,该列的数据类型依然为VARCHAR2类型,但是括号中的字节长度已然发生了改变,这样只修改数据类型的字节长度操作就完成了。
修改列的数据类型:
过程,如下
ALTER TABLE WOYUFENGTIAN
MODIFY (ROLE_NAME CHAR(15)
)
把VARCHAR2类型改为char类型,输出结果如下图:
未做修改的表(虚线上的表的结构)与以作修改的表(虚线下的表的结构)对比,可以看到,该列的数据类型发生了改变,那么,我们的修改数据类型的操作就完成了。
删除与重命名列:
删除一个列:删除我们不需要的列,需要注意的是在删除列的时候,需要确保该列的数据是否为空或者是否为不需要的数据(建议执行该操作时对数据进行备份)。
过程,如下
ALTER TABLE WOYUFENGTIAN
DROP COLUMN ROLE_FATHER
输出与对比,如下图:
重命名一个列:将我们表中已有的某个列的列名进行修改,此操作不会影响该列的数据。
过程,如下
ALTER TABLE WOYUFENGTIAN
RENAME COLUMN ROLE_MATHER TO ROLE_MF
输出与对比,如下图:
清空表数据:
过程,如下
TRUNCATE TABLE 表名
删除表:将我们不需要的表的名称进行删除的操作。
过程,如下
DROP TABLE表名
注意:1、以上的DDL(Data Definition Language 数据定义语言)操作都是无法回滚的,就是说只要你执行了以上操作,那么这个操作就已经决定了,无法再恢复到操作前的状态;
2、以上所有操作都有一个前提,那就是你要操作的对象必须是你这个用户所拥有的或者其他用户赋予你拥有的操作的权限的情况下,你才可以对该对象进行操作。
常见得数据库对象有以下几种:
1、表(上文有提)
2、视图
3、序列
4索引(上文有提)
5、同义词(即上文中的表的别名)