Oracle表操作详解使用
在 Oracle 中,表结构的操作包括创建、修改、删除以及查看表的结构。以下是常见的表结构操作及其使用。
1. 创建表 (CREATE TABLE
)
语法
CREATE TABLE 表名 (
列名1 数据类型 [约束],
列名2 数据类型 [约束],
...
);
常用数据类型
VARCHAR2(size)
:可变长度字符串。NUMBER(p, s)
:数值类型,p
为精度,s
为标度。DATE
:日期类型。CLOB
:大文本数据类型。
实例
创建一个名为 employees
的表,包含员工的 ID、姓名、职位、入职日期和工资:
CREATE TABLE employees (
emp_id NUMBER(5) PRIMARY KEY,
emp_name VARCHAR2(50) NOT NULL,
job_title VARCHAR2(30),
hire_date DATE,
salary NUMBER(10, 2)
);
2. 查看表结构 (DESC
或 DESCRIBE
)
语法
DESC 表名;
实例
查看表 employees
的结构:
DESC employees;
这会输出表的列名、数据类型和是否允许 NULL
等信息。
3. 修改表结构 (ALTER TABLE
)
语法
ALTER TABLE 表名 操作;
常见操作
- 添加列:
ADD
- 修改列:
MODIFY
- 删除列:
DROP COLUMN
- 重命名列:
RENAME COLUMN
- 添加约束:
ADD CONSTRAINT
- 删除约束:
DROP CONSTRAINT
实例
-
添加列:
ALTER TABLE employees ADD email VARCHAR2(100);
-
修改列的数据类型或约束:
ALTER TABLE employees MODIFY salary NUMBER(12, 2);
-
删除列:
ALTER TABLE employees DROP COLUMN job_title;
-
重命名列:
ALTER TABLE employees RENAME COLUMN emp_name TO employee_name;
-
添加约束(如外键):
ALTER TABLE employees ADD CONSTRAINT fk_dept FOREIGN KEY (dept_id) REFERENCES departments(dept_id);
-
删除约束:
ALTER TABLE employees DROP CONSTRAINT fk_dept;
4. 删除表 (DROP TABLE
)
语法
DROP TABLE 表名 [CASCADE CONSTRAINTS];
CASCADE CONSTRAINTS
选项用于强制删除表时同时删除表上定义的约束(如外键约束)。
实例
删除表 employees
:
DROP TABLE employees CASCADE CONSTRAINTS;
5. 重命名表 (ALTER TABLE RENAME TO
)
语法
ALTER TABLE 旧表名 RENAME TO 新表名;
实例
将表 employees
重命名为 staff
:
ALTER TABLE employees RENAME TO staff;
6. 复制表结构 (CREATE TABLE AS SELECT
)
可以使用现有表的数据和结构来创建新表。
语法
CREATE TABLE 新表名 AS
SELECT * FROM 旧表名 WHERE 1=0;
实例
创建表 employees_backup
,结构与 employees
相同,但不复制数据:
CREATE TABLE employees_backup AS
SELECT * FROM employees WHERE 1=0;
7. 添加和删除主键 (ALTER TABLE
)
添加主键
ALTER TABLE 表名 ADD CONSTRAINT 主键名称 PRIMARY KEY (列名);
删除主键
ALTER TABLE 表名 DROP PRIMARY KEY;
实例
-
添加主键:
ALTER TABLE employees ADD CONSTRAINT pk_emp_id PRIMARY KEY (emp_id);
-
删除主键:
ALTER TABLE employees DROP PRIMARY KEY;
8. 添加和删除外键 (ALTER TABLE
)
添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (列名) REFERENCES 其他表(列名);
删除外键
ALTER TABLE 表名 DROP CONSTRAINT 外键名称;
实例
-
添加外键:
ALTER TABLE employees ADD CONSTRAINT fk_dept_id FOREIGN KEY (dept_id) REFERENCES departments(dept_id);
-
删除外键:
ALTER TABLE employees DROP CONSTRAINT fk_dept_id;
总结
Oracle 提供了丰富的表结构操作命令,能够方便地创建、修改、删除和管理数据库表结构。使用这些命令时,需确保对表的依赖关系有充分的了解,以避免误操作影响数据完整性。