首页 > 数据库技术 > 详细

oracle之回顾二

时间:2019-09-21 00:38:55      阅读:149      评论:0      收藏:0      [点我收藏+]

 

 

1.  事务(Transaction)

事务(Transaction)是一个操作序列。这些操作要么都做, 要么都不做, 是一个不可分割的工作单元, 是数据库环境中的最小工作单元。

1.1 事务的特性(ACID)

1.1.1 Atomicity(原子性)

原子性是指事务包含的所有操作要么全部成功, 要么全部失败回滚, 因此事务的操作如果成功就必须要完全应用到数据库, 如果操作失败则不能对数据库有任何影响.

1.1.2 Consistency(一致性)

一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态, 也就是说一个事务执行之前和执行之后都必须处于一致性状态.

1.1.3 Isolation(隔离性)

隔离性是当多个用户并发访问数据库时, 比如操作同一张表时, 数据库为每一个用户开启的事务, 不能被其他事务的操作所干扰, 多个并发事务之间要相互隔离.

1.1.4 Durability(持久性)

持久性是指一个事务一旦被提交了, 那么对数据库中的数据的改变就是永久性的, 即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作.

1.2 事务的提交和回滚

a) 提交在确保事务执行成功时应该将事务进行提交提交后数据被永久保存不能进行回滚.

commit;

b) 回滚当事务执行出现故障时应该进行事务的回滚操作本次事务的所有操作将被还原保证数据库的一致性.

rollback;

1.3设置回滚点

insert into emp values(2,‘dsfs‘,3000);

savepoint  A;

insert into emp values(3,‘oldu‘,4000);

savepoint B;

 delete from emp;

rollback to A;

commit;

 

2.创建表

   create table dept

      ( deptno number(2),

       dname varchar2(14),

      loc varchar2(2) );

2.1Oracle数据库中的表

  用户表:

      由用户创建和维护的表的集合。

      包含用户信息。

  数据字典:

      由oracle服务器创建和维护的表的集合

      包含数据库信息

2.1.1常见的数据字典表

    查看本用户所拥有的表的名称

      select table_name 

      from  user_tables;

    查看本用户所拥有的不同的对象类型

      select distinct object_type

      from user_objects;

    查看本用户所拥有的表、视图、同义词、和序列

      select * from

      from user_catalog;

2.1.2.根据查询创建表

 

    create table dept as select employee_id,last_name,salary,hire_date from employees e where  e.department_id=80;

3.alter table 语句

  alter table语句可以修改表的信息。

    添加一个新列

    修改一个已存在的列

    删除一个列

3.1添加一个新的列

  alter table table

  add ( column datatype [default expr][,column datatype]....);

 

 

     alter table dept add(salary number(8,2))

 

修改数据数据类型

  alter table dept modify(dname varchar2(40));

修改默认值

  alter table dept modify(salary number(8,2) default 1000);

  alter table dept80 modify location_id not null;

修改列名

  alter table emp rename   column  dname to name;

删除一个列

  alter table table 

  drop  colum  [ziduan];

 

4修改名称(Rename)

 

修改表如下

rename dept80 to dept90;

 

5.截断表(truncate table)

特点:

1.直接将所有的数据删除,但是表结构是留着的。

2.在截断表时不能指定条件。

3.截断表是隐式事务。

 truncate  table dept90

 

6.删除表(drop table)

 

 drop table dept90;

 

7.数据库中的约束

非空约束(NOT NULL)

唯一性约束(UNIQUE)

主键约束(PRIMARY KEY)

外键约束(FOREIGN KEY): 在列和引用表的一个列之间建立并且强制一个外键关系

用户自定义约束(CHECK)

 

7.1定义约束原则

  创建一个约束:在创建表的同时,或者在创建表之后都可以定义约束。可以给约束起名字,但是约束名不能相同,必须是唯一的。如果没有为约束起名字,oracle服务器会将默认格式SYS_Cn产生一个名字,这里n是一个唯一的整数,所以约束名是唯一的。

 

 

8.定义Not NULL约束

8.1实例

create table dept80(

id number,

name varchar2(20) not null,

salary number constraint dept_80_notn not null);

)

 

9.定义UNIQUE唯一性约束

 

create table(

  employee_id  number(6),

  last_name  varchar2(25) not null,

  email varchar2(25),

  salary  number(8,2),

  commission_pct   number(2,2)

  hire_date date not null,

....

  constraint emp_email_uk unique(email);

)

 

create table dept90(id number constraint dept90_uk  unique, name varchar2(20));

 

修改表定义unique约束

 

alter table dept90 modify(name unique);

 

10.定义primary key约束

  create table department(

  department_id    number(4),

  department_name   varchar2(30),

  CONSTRAINT  dept_name_nn not null,

  manager_id    number(6),

  location_id     number(4),

    CONSTRAINT dept_id_pk  primary key(department id);

);

 

    

create table dept70(id number constraint  dept70_pk primary key);

 

在修改表中定义一个约束

alert table dept60 modify(id constraint dept60_pk primary key);

 

两个列的主键定义方式

 

create table dept50(id number,name varchar2(20),constraint dept50_pk primary key(id,name));

 

oracle之回顾二

原文:https://www.cnblogs.com/wq-9/p/11561097.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!