数据定义语言
所有语句都是基于oracle的HR用户
create 创建对象,drop 删除对象,alter 修改对象,rename 修改数据库对象名称
创建表
语法格式:create table 表名(列名 列数据类型)
创建示例:列与列中间用,隔开
create table dept(deptno number(2),dname varchar2(14),loc varchar2(13));
Oracle数据库中的表
用户表
由用户创建和维护的表的集合,包含用户信息
数据字典表
由oracle服务器创建和维护的表,包含数据库信息。如:HR用户就是oracle用来使用者练习的表。
常见的数据库字典表
- 查询本用户下所拥有的表名称
select table_name from user_tables;
- 查看本用户所拥有的不同对象类型
select distinct object_type from user_objects;
使用distinct 是由于有一些重复的列进行祛除
- 查看本用户所拥有的表、视图及序列
select * from user_catelog;
用查询创建表
- 表名之后使用 as 连接查询进行创建,投影的列名就是创建的表
create table dept80 as select employee_id,last_name,salary,hire_date from employees where department_id =80;
alter table语句
添加一个新列
语法:alter table 表名 add(具体的列名,类型);
示例:
alter table dept add(salary number(8,2));
修改一个已经存在的类型
语法:alter table 表名 modify 具体的列名 类型;
修改默认值
- 添加默认值
alter table dept modify salary number(8,2) default 1000;
- 删除默认值
alter table dept modify salary number(8,2) default null;
修改数据类型
alter table dept modify name vchar2(40);
修改列名(rename column)
语法:alter table 表名 rename column 原列名 to 新列名;
alter table dept rename column name to dname;
删除一个列(drop column)
语法:alter table 表名 drop column 列名;
alter table dept drop column salary;
需要注意的是在修改列名和删除列的时候 需要加column
修改名称(rename)
语法:rename原表名 to 新表名;
rename dept to dept40;
截断表(truncate table)
语法:truncate table 表名;
truncate table dept;
需要注意:
在截断表中不需要给定条件,而delete需要给定条件;turntable 属于隐式事务,不支持rollback,而delete支持回滚
删除表(drop table)
语法:drop table 表名; 不支持回滚
drop table dept;