Oracle_DDL数据定义语言

 

--SQL语句分为三种类型,这篇讲的DDL就是其中一种

DDL:Data Definition language 数据定义语言

DDL用于定义数据库的结构,比如:创建、修改或删除数据库对象,包括以下语句:

Create table:创建表

Alter table:更改表结构、添加、删除、修改列长度

Drop table:删除表

Create index:在表上建立索引

Drop index:删除索引

Create table 语句:创建表

创建表时要注意几点:第一必须以字母开头;第二要在1-30个字符之间;第三不能和用户定义的对象重名;第四不能是oracle的保留字;第五只能包含A-Z,a-z,0-9,_,$,#;第六创建表得有权限才能创建;

创建表必须具有创表的权限,存储的一个空间;创建的过程要列出它的表名,列名,数据类型还有它的尺寸

以下会有两种创表方式:第一是直接创建,第二使用子查询进行创建

第一:直接创建

create table emp_2 (emp_2 number(4),emp_name varchar2(10),hire_date date,salary number(8,2));

Oracle_DDL数据定义语言

Oracle_DDL数据定义语言

第二:通过子查询的方式创建(复制现有的表)

通过子查询的方式创建表时,使用as subquery,将创建表和插入数据结合起来;指定的列和子查询中的列要全部一一对应;下面会有两三个例子可以看到它的效果。

第一个例子:创建一张跟employees表一样结构还有数据的表

create table emp_1 as select * from  employees;

Oracle_DDL数据定义语言

第二个例子:创建一张插入employees表的employee_id是100的数据

注释:子查询中的列要根据创建表的列对应上

create table emp_1 as select employee_id,last_name,hire_date,salary

from employees where employee_id=100;

Oracle_DDL数据定义语言

 

第三个例子:创建一张结构和employees表一样的一张空表,可以根据employees表的结构直接创建,但是这样会很麻烦,所以使用一个子查询,给个空值的过滤条件,因为在子查询中空值不返回任何行,这样就创建了一张具有employees表结构的空表。

create table emp_1 as select * from employees where 1=2;

Oracle_DDL数据定义语言

alter table 语句:修改表

使用alter table 语句可以:

1、新增新的列 2、修改现有的列 3、删除不再需要的列 4、重命名表的一个列名

第一:add增加新列

添加新列时,是可以添加多个列。想要加多个列时,在列的后面加个逗号继续再加上需要的列

添加多个列:alter table emp_2 add(age number(2),sex varchar2(2));

alter table emp_2 add(age number(2));

Oracle_DDL数据定义语言   Oracle_DDL数据定义语言

第二:modify修改现有列

修改列可以修改列的数据类型,尺寸和默认值; 修改默认值只影响今后对表的修改;

还可以对多个列进行修改

alter table emp_2 modify(age number(3),salary number(8,2) default '1500');

alter table student_1 modify(student_name varchar2(10));

Oracle_DDL数据定义语言    Oracle_DDL数据定义语言

第三:rename column…to…重命名现有列

使用rename column.... to...子句重命名列

Alter table student_1 rename column student_name to name ;

Oracle_DDL数据定义语言    Oracle_DDL数据定义语言

第四:删除现有列

1、数据和结构都被删除 2、drop table语句不能回滚 3、使用drop column子句删除不再需要的列

alter table student_1 drop column brithday;

Oracle_DDL数据定义语言    Oracle_DDL数据定义语言

drop table语句:删除表

1、数据和结构都被删除 2、drop table 语句不能回滚

drop table emp_2;

Create index语句:创建索引

在这几种情况下可以创建索引:列中的数据值分布范围很广;列经常在where子句或连接条件中出现;

表经常被访问而且数据量很大,访问的数据大概占数据总量的2%到4%;

还有几种情况是不要创建索引的:表很小;列不经常作为连接条件或出现在where子句中;查询的数据大于2%和4%;表经常更新

create index emp_last_name_index on emp_3(last_name);

Oracle_DDL数据定义语言

Drop index语句:删除索引

使用Drop index命令删除索引,只有索引的所有者,还有拥有索引权限的用户才可以删除索引,删除索引是不能回滚的。所以谨慎删除。

drop index emp_last_name_index;

相关文章:

  • 2021-06-24
  • 2021-09-10
  • 2021-10-29
  • 2021-11-27
  • 2022-03-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-14
  • 2021-05-01
  • 2021-09-30
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案