oracle表管理(建表,改表,删表,表数据增删改查)

1建表

--语法:

Create table 表名(

字段1 数据类型 [default 默认值],

字段2 数据类型 [default 默认值],
...

字段n 数据类型 [default 默认值]

);

--范例:创建person表

create table person(

       pid      number(10),

       name     varchar2(10),

       gender   number(1)  default 1,

       birthday date

);

 

insert into person(pid, name, gender, birthday)

values(1, '张三', 1, to_date('1999-12-22', 'yyyy-MM-dd'));

2.表删除

语法:DROP TABLE 表名

3.表的修改

sql中使用alter可以修改表

  • 添加语法:ALTER TABLE 表名称 ADD(列名1 类型 [DEFAULT 默认值],列名1 类型 [DEFAULT 默认值]...)
  • 修改语法:ALTER TABLE 表名称 MODIFY(列名1 类型 [DEFAULT 默认值],列名1 类型 [DEFAULT 默认值]...)
  • 修改列名: ALTER TABLE 表名称 RENAME COLUMN 列名1 TO 列名2

范例:在person表中增加列address

alter table person add(address varchar2(10));

范例:把person表的address列的长度修改成20长度

alter table person modify(address varchar2(20));

4.截断表

person表中使用delete语句删除数据,则可以使用rollback来回滚,如果想要清空一张表的数据,同时不想回滚可以立即释放资源需要使用截断表的语法

语法:TRUNCATE TABLE 表名

范例:截断person

truncate table person;

5.数据库表数据的更新

1. INSERT(增加)

语法:

INSERT  INTO表名[(列名1,列名2...)]VALUES(1,值2...)

标准写法

 

简单写法(不建议)

INSERT  INTO 表名VALUES(1,值2...)

insert into person

values(1,'张三',1,'9-5-1981','北京北七家');

注意:使用简单的写法必须按照表中的字段的顺序来插入值,而且如果有为空的字段使用null

insert into person

values(2,'李四',1,null,'北京育新');

2.事务

这是因为oracle的事务对数据库的变更的处理,我们必须做提交事务才能让数据真正的插入到数据库中,在同样在执行完数据库变更的操作后还可以把事务进行回滚,这样就不会插入到数据库。如果事务提交后则不可以再回滚。

提交:commit

回滚:rollback

1.事务保存点与回滚:

语法:

savepoint  保存点名字

示例:

savepoint a1;    --设置一个保存点 a1;

update person set name='张三' where pid='101'  --修改一条数据

savepoint a2;   --设置一个保存点 a1;

update tmp set name='李四' where id='102  --再修改一条数据

 

rollback to a2;   --回滚到a2 保存点。 此时在 a2 保存点之后的所有数据修改视为无效。

rollback to a1;   --这里可以再从a2保存点再回滚到a1 保存点。 此时在 a1 保存点之后的所有数据修改视为无效。

rollback;           --回滚全部。即撤消至上一次提交事务后的所有数据修改。

commit;  --提交事务 将回滚后的事务提交,并会删除所有保存点。

注意:我们可以从a2向前再回滚到a1 ,但无法从a1回滚到a2。也就是只能向前回滚,不能从前面的点再向后回滚! 

2.事务的隔离级别:

事务的隔离性是什么?

https://www.cnblogs.com/luzhanshi/p/13339119.html

事务隔离级别有哪些?

https://www.cnblogs.com/luzhanshi/p/13339119.html

Oracle支持的隔离级别是什么?

Oracle 支持三种事务隔离级别:

1、读已提交;(默认)

2、串行化;

3、只读模式

3.UPDATE(修改)

全部修改:UPDATE 表名 SET 列名1=1,列名2=2....

局部修改:UPDATE 表名 SET 列名1=1,列名2=2....WHERE 修改条件;

4. DELETE(删除)

语法 : DELETE FROM 表名 WHERE 删除条件;

在删除语句中如果不指定删除条件的话就会删除所有的数据

Truncate table实现数据删除

比较truncatdelete实现数据删除?

  1. delete删除的数据可以rollback,也可以闪回
  2. delete删除可能产生碎片,并且不释放空间
  3. truncate是先摧毁表结构,再重构表结构

4.通过闪回实现数据恢复

1.闪回的原理

2.闪回的实现方式

3.闪回的注意事项

5. 碎片问题的思考

1.什么是碎片

2.碎片的产生

3.碎片问题的避免与解决

原文地址:https://www.cnblogs.com/luzhanshi/p/13551534.html