Oracle学习——数据库定义语言(DDL)建表、删表、修改表
DDL语言主要是帮助我们创建数据库对象的。
- CREATE:创建数据库对象
- DROP:删除数据库对象
- ALTER:修改数据库对象
- RENAME:修改数据库对象名称
这要注意数据库对象不止包括有表,这些对象包括:用户,视图,索引,序列等等。
1、创建表(CREATE)
语法结构:
CREATE TABLE 表名
(列名1 列类型,
列名2 列类型,
...
);
其实所有的数据库对象的创建操作都是同样的语法:CREATE 对象类型 对象名....
1.1、数据库中表的种类(Oracle)
用户表:
- 由用户创建和维护的表的集合。
- 包含用户信息。
数据字典:
- 由Oracle服务器创建和维护的表的集合
- 包含数据库信息
查看本用户所拥有的表的名称:user_tables
SELECT table_name
FROM user_tables
查看本用户所拥有的不同的对象类型:user_objects
SELECT DISTINCT object_type
FROM user_objects
查看本用户所拥有的表、视图、同义词和序列:user_catalog
SELECT *
FROM user_catalog
1.2、使用查询创建表
类似于复制一张表的某些字段以及数据,新表的字段类型以及字段名与查询出来的字段类型一致,并且查询出来的数据也会直接插入进这个新表。
语法结构:
CREATE TABLE 新表名 AS (SELECT 列1 别名1, 列2 别名2, ...
FROM 表
[WHERE condition])
这里我们会先执行查询语句,将查询到的列在新表中创建同样的列(如果指定了别名则新表的列名就会是这个别名),并且会将查询到的数据插入到新表中。
2、修改列信息(ALTER)
ALTER TABLE语句可以修改表内数据的信息,包括:
- 添加一个新列
- 修改一个已存在的列(列名,列类型,默认值)
- 删除一个列
2.1、添加一个新列(ADD)
语法结构:
ALTER TABLE 表名
ADD (列名 类型 [DEFAULT expr],
列名2 类型 [DEFAULT expr], ...)
2.2、修改某一列属性(MODIFY)
语法结构:
ALTER TABLE 表名
MODIFY (列名 类型 [DEFAULT expr],
列名2 类型 [DEFAULT expr], ...)
2.3、修改某一列的列名 (RENAME)
语法结构:
ALTER TABLE 表名
RENAME COLUMN 旧列名 TO 新列名
使用RENAME COLUMN关键字来修改列名(批量修改还不知咋弄)。
2.4、删除某一列(DROP)
ALTER TABLE 表名
DROP COLUMN (列名1, 列名2,...)
3、修改表名称(RENAME TABLE)
注意这里是修改表的名称,而不是对表中列的信息进行操作。其实RENAME可以修改所有数据库对象(包括表,列,序列等等)的名称。
语法结构:
RENAME 旧表名 TO 新表名
4、截断表(TRUNCATE TABLE)
对表中的所有数据进行删除,但是会保留表结构。DELETE需要commit进行提交并且可以按条件删除,但TRUNCATE不能支持给定条件删除。
语法结构:
TRUNCATE TABLE 表名
5、删除表(DROP TABLE)
将整个表删除,并且会释放表的空间。其实DROP还可以删除其他的数据库对象。
语法结构:
DROP TABLE 表名
以上内容如有错误,恳请指正