首页 > 技术文章 > 【SQL】数据定义语言(DDL)

freebule 2020-08-17 12:09 原文

数据定义语言

所有语句都是基于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;

推荐阅读