Oracle之快速入门(一)

文章目录

  • 前言
  • 一、对于表的操作
    • 1.1.创建表
    • 1.2.删除表
      • 1.2.1.彻底删除表
      • 1.2.2.drop之后的数据放到了recyclebin回收站中
      • 1.2.3. 闪回
    • 1.3.修改表
      • 1.3.1.修改表中的列
      • 1.3.2.增加表中的列
      • 1.3.3.删除表中的列
      • 1.3.4.重新命名表中列名
      • 1.3.5.重新命名表名
  • 二.对表中数据进行操作
    • 2.1.插入数据
    • 2.2.修改数据
    • 2.3.删除数据
    • 2.4.额外操作
  • 三、简单讲讲事务
    • 3.1.事务是什么
    • 3.2.oracle和mysql事务区别
    • 3.3.Oracle的事务类型
    • 3.4.设置事务
    • 3.5.事务之保存点
    • 3.6.事务的四个特性


前言

话不多说,直接开始。


一、对于表的操作

1.1.创建表

//基本的创建表的语句
     create table myemp( 
		  id number(10) primary key,     
		  name varchar2(10) not null,    
		  gender varchar2(4) check(gender in('男','女'))
		  ---constraint myemp1_id_pk primary key(id)
		)
//使用子查询创建表, 由于1=2为假,该语句只拷贝myemp表的结构,没有拷贝数据;
 create table myemp2 as select * from myemp where 1=2;

1.2.删除表

1.2.1.彻底删除表

drop table myemp purge;

注:不加purge是暂时放到回收站中了

1.2.2.drop之后的数据放到了recyclebin回收站中

查看回收站:show recyclebin;
彻底清除回收站: purge recyclebin;
彻底删除表: drop table myemp purge;
查看回收站表数据: select * from 回收站的文件名

1.2.3. 闪回

flashback table myemp to before drop;----返回到表删除前   

1.3.修改表

1.3.1.修改表中的列

  oracle: alter table myemp3 modify ename vachar2(20); //不能带column
  mysql : alter table myemp3 modify (column) ename varchar(20);

1.3.2.增加表中的列

  oracle: alter table myemp3 add gender varchar2(4);
  mysql : alter table myemp3 add (column) gender varchar2(4);

1.3.3.删除表中的列

  oracle: alter table myemp3 drop column gender; //必须带column
  mysql : alter table myemp3 drop (column) gender;

1.3.4.重新命名表中列名

  oracle: alter table myemp3 rename column ename to myname; //必须带column
  mysql : alter table myemp3 change (column) ename myname varchar(20);

1.3.5.重新命名表名

  oracle: rename myemp3 to myemp4;
  mysql : rename table mysqltname3 to mysqltname4; //必须带table  

二.对表中数据进行操作

2.1.插入数据

单条插入:

insert into myemp(empno,ename) values(1111,'张三');

批量插入:

insert into myemp select * from emp where deptnp=10;

2.2.修改数据

修改列:

update myemp set ename='小李' where deptno=10;

2.3.删除数据

使用delete删除数据

delete from myemp where empno=7369;

使用truncate删除整张表数据

 truncate table myemp; 

小贴士:
delete和truncate 删除数据的区别
1.delete逐条删除;truncate先摧毁表,再重建。
2.delete是DML(可以回滚) truncate是DDL(不可以回滚)。
3.delete不会释放空间 truncate会。
4.delete可以闪回(flashback)truncate不可以。

2.4.额外操作

开始对sql语句执行的计时

set timing on(off)

开启或关闭数据库的反馈(例如传入很多条信息,关闭这个让他不会每条都告诉你插入成功)

set feedback on(off)

三、简单讲讲事务

3.1.事务是什么

新手可以简单理解为每次sql提交就是一次事务(后面会讲事务的类型,新手先简单知道一下)。

3.2.oracle和mysql事务区别

oracle中事务: 在insert/update/delete 中默认操作之后需要commit才能改变真正改变数据;
mysql中事务: 直接执行insert/update/delete 就已经改变了数据

3.3.Oracle的事务类型

oracle中支持3种事务:
read commited 读已提交;(默认),
read only 只读模式,
serializable 串行化。

注意:oracle默认的事务是read commited(读取已经提交的数据),另外还自己支持read only (只读,对于其他操作不支持)事务

3.4.设置事务

可以设置当前事务为上述的某个类型。

set transaction read only; --修改当前事务为只读模式

3.5.事务之保存点

方便遇到问题回滚,类似游戏里的存档。
创建保存点:

savepoint a;

回滚保存点:

rollback  to savepoint a;

3.6.事务的四个特性

事务的4大特性:原子性(Atomicity),一致性(Consistemcy),隔离性(Isolation),持久性(Durability),简称ACID。

A:原子性(Atomicity)
事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。

C:一致性(Consistency)
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。

I:隔离性(Isolation)
一个事务的执行不能被其他事务干扰。

D:持续性/永久性(Durability)
一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

你可能感兴趣的:(oracle,数据库)