ORACLE 创建和管理表
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Oracle sql * plus PLSQL Developer
作者:叶
撰写时间:2019年01月01日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
创建和管理(DDL): CREATE TABLE /TRUNCATE TABLE / ALTER TABLE /
ENAME...TO /DROP TABLE ...操作以后,自动COMMIT;
所以, ROLLBACK对其操作,没有效果。
表: 是由基本的数据存储集合,由行和列组成。
SELECT TABLE_NAME FROM USER_TABLES;
- 直接创建
必须指定: 表名,列名,数据类型, 尺寸。
VARCHAR2 () 可变长字符数据
CHAR () 定长字符数据
NUMBER () 可变长数值数据
DATE 日期型数据
BLOB 二进制数据,最大可达到4G
ROWID 行地址
CREATE TABLE EMP1 (
NAME VARCHAR2 (15),
SALARY NUMBER (8, 2) DEFAULT 1220,
ID NUMBER (4),
BIRTHDAY DATE
);
SELECT * FROM EMP1;
2、通过子查询的方式创建
CREATE TABLE EMP2 AS SELECT LAST_NAME, SALARY, HIRE_DATE FROM EMPLOYEES
---或
CREATE TABLE EMP2 AS SELECT LAST_NAME, SALARY, HIRE_DATE FROM EMPLOYEES WHERE DEPARTMENT_ID = 100;
---或
CREATE TABLE EMP2 AS SELECT LAST_ANEM, SALARY, HIRE_DATE FROM EMPLOYEES
WHERE 1 = 2;
直接通过子查询的方式创建,如果不加过滤条件则复制其子查询的全部数据,
如果加了过滤条件则通过过滤条件筛选出对应的数据,如果想要子查询中的
表结构而不想要其中的数据则可以加过滤条件不等于它本身即可。如(WHERE 1=2)
SELECT * FROM EMP2;
ALTER TABLE 语句:
- 追加新的列。
- 修改现有的列。
- 为新追加的列定义默认值。
- 删除一个列。
- 重命名表的一个列名
- 修改表
(1)、增加新的列
ALTER TABLE EMP1
ADD (HIRE_DATE DATE)
SELECT * FROM EMP1;
(2)修改现有的列
ALTER TABLE EMP1
MODIFY (SALARY MUNBER DEFAULT 10000);
(3)、重命名现有的列
ALTER TABLE EMP1
RENAME COLUMN NAME TO FIRST_NAME
SELECT * FROM EMP1;
(4)、删除现有的列
ALTER TABLE EMP1
DROP COLUMN NAME TO HIRE_DATE;
SELECT * FROM EMP1;
- 清空表中的数据(与 DELETE FROM TABLE_NAME 区分开)
TRUNCATE 是删除表中的所有数据,释放标的存储空间,不能回滚,
而 DELETE 语句删除数据,可以回滚
TRUNCATE TABLE EMP3;
- 重命名表:
RENAME EMP001 FROM EMP5;
重命名表 只是改变表名, 数据不变,可以使用SQL 命令窗口打开。
- 删除表:
DROP TABLE EMP5;
查询数据字典:
SELECT * FROM USER_TABLE;
CREATE TABLE 创建表
ALTER TABLE 修改表结构
DROP TABLE 删除表
RENAEM TO 重命名表
TRUNCATE TABLE 删除表中的所有数据,并释放存储空间
注意: 以上这些DDL 的命令,操作后,皆不可回滚。