oracle-DDL对表的操作

在对表操作之前,一定要先了解基本数据类型:
常用的数据类型
Varchar2():表示字符串,一般保存长度比较小的内容(200以内建议使用,oracle独有,其他数据库为varchar)
number(n):整数,长度不能超过n
**number(n,m)**小数占m位,整数占n-m个 如果不想细分,写个number就可以,既可以表示整数,也可以表示小数
date:保存日期时间数据,日期加时间,有的数据库只表示日期
clob:大文本数据,最多可以表示4g的文字
blob:二进制数据,最多可以保存4g内容,可以保存文字,图片,电影,音乐(已经很少用到了,尽量不要用blob保存数据)

创建数据表
在oracle之中,我们把数据表称为oracle的对象
语法:

create table 表(
					列         数据类型          default  默认值,
					列         数据类型          default  默认值,
					列         数据类型          default  默认值,
					列         数据类型          default  默认值,
					列         数据类型          default  默认值
				);//列用逗号分开,最后一列不用,结尾括号用分号结尾
				//在插入数据的时候,如果设置了default,如果没有写上指定的内容,那么他会使用默认值

数据表的重命名

对于数据库来说,每一张数据表对oracle而言是一个对象,在oracle中,对象是个重要的概念,所有的oracle对象必须由oracle统一管理(以下内容敲重点)
在oracle中,为了记录下所有对象的信息,提供了数据字典的概念,在数据库中一共提供了三个级别的数据字典
1、用户级别:user_*开头,指一个用户可以使用的字典
例:查询一个用户下的所有表:select* from user_tables;
这个时候就列出了数据库表对象的全部信息,包括名称,存储情况等,,,
2、管理员级别:dba_开头,由数据库管理员使用的数据字典
3、全部级别:all_
,不管用户还是管理员都可以使用
//系统级别:

所以,对表的重命名本质上就是更新一下数据字典的相应信息,实际上数据字典是oracle自己维护的那么就表示对此信息的修改必须使用特定的oracle命令完成:

rename 旧表名称  to  新表名称 

在oracle中一旦执行了DDL操作,所有的未提交的事务一定会自动提交

截断表
如果我们想要删除一张表中的数据,一定会首先想到delete操作,但是在使用delete的时候,delete之后,严格来讲,表所占有的资源(约束,索引)并不会被立刻释放掉
若想将全部资源全部清空,就需要使用截断操作了:

truncate table 表名;

一旦被截断之后所占用的空间立刻被释放,无法还原。(oracle独有,不属于标准SQL)

复制表
语法:create table 表 as 子查询
严格来说,这只是将根据子查询返回的数据创建表,并将子查询(子查询里面可以在嵌套子查询)中的数据保存到新的数据表里面去
但是如果只是想复制表的表结构,但是不需要复制表里面的数据:

create table newcaozyxx as select * from caozyxx where 1<0

删除表:
语法:drop table 表名称;
但是这种删除,删除之后数据表回留下痕迹,进入到回收站(flashback)之中,可以进行还原;

删除表是比删除数据更可怕的数据,任何数据库都不可能提供全部删除表的命令

利用闪回技术还原:
在oracle 10g之前,如果用户执行了drop table 命令,就意味着表被删除。从oracle 10g开始,有了闪回(flash back)技术,此技术本质上与Windows的回收站是非常类似的;
当执行数据表删除后,并不会立刻被删除,而是将数据表保存在回收站之中,并且标记出回收站不是空的,就在表的数据字典上提供有了一系列的“BIN。。。”开头的内容;
在这里插入图片描述

查看回收站:(通过数据字典)

select * from user_recyclebin
//里面有删除后留在数据字典里的标识,别删除的表名,被删除的时间

在这里插入图片描述
通过回收站恢复一张被删除的表:

flashback table 表名 to before drop;

如果不想经过回收站,直接删除,可以在删除表的语句后面加上(purge)
强制删除数据表(重点记忆):

drop table mycaozy purge;

删除回收站里面的数据:

purge table mycaozy;

清空回收站(重点记忆):

purge recyclebin;

注:闪回技术也是oracle自己的技术,为了使用方便,建议记住强制删除表,和清空回收站

修改表结构操作:
对已经存在的表进行数据列的结构变更,增加数据列,删除数据列等。。。

脚本:在项目开发中,需要编写数据库的脚本文件,一般此类文件要求:
1、脚本文件后缀名要为:’
.sql‘
2、要编写删除数据表的语法;
drop table member purge;
3、要编写创建表的语法;
create table member (
mid number,
name varchar2(50)
);
3、测试数据;
insert into member (mid,name) values (10,‘张三’);
insert into member (mid,name) values (20,‘李四’);
4、执行事务提交;
commit;*

增加数据列

alter table member add( email varchar2(50),
					sex   varchar2(5)  default '男'
					);
					//增加列之后,如果没有设置default,则新增列的数据都是null,如果有则都为设置的默认值;

修改表中的列

alter table  member  modify (
				name varchar2(20) default '无名氏'
					);

删除列

alter table member drop column sex;

在实际的开发之中,尽量不去使用对表的操作,如果真的要进行表结构修改,建议:将表删除,重新创建;

表属于数据库对象的操作,对数据库的对象操作只有三类语法:
创建对象::create 对象类型 对象名称 ,,,,,;
删除对象:drop 对象类型 对象名称,,,,,,;
修改对象:alter 对象类型 对象名称,,,,,,;

猜你喜欢

转载自blog.csdn.net/enbaoIT/article/details/88046075