欢迎光临散文网 会员登陆 & 注册

Oracle知识总结PPT:NVL函数,DECODE函数的使用 ,死锁,自联接等【诗书画唱】

2021-03-03 19:00 作者:诗书画唱  | 我要投稿

可搜索内容(这里含PPT的部分内容的索引词条)


02_Oracle的对象操作.ppt


表的创建

表的修改

表的删除

约束的类型

NVL函数的使用 

DECODE函数的使用

自联接

行级锁

表级锁

死锁





02_Oracle的对象操作.ppt START

ORACLE网络配置(包括三个配置文件)

ORACLE企业管理其中创建用户

ORACLE9i中的三个默认用户

ORACLE中的权限分配

ORACLE数据类型





ORACLE中的表的创建、修改和删除及其相关约束

ORACLE中的系统函数

ORACLE中的查询、集合操作

ORACLE中的事务

ORACLE中锁的概念

ORACLE中视图、索引、序列、同义词


表的命名规范

  

可以包含1 到 128 个字符,包括字母、符号和数字

第一个字符必须是字母

首字符之后的字符可以包括字母、数字或 #、$ 符号及 _

除非在引号内定义对象名称,否则不允许有空格



02_Oracle的对象操作.ppt END

表的创建 START

 CREATE TABLE [schema.]表名 

(字段名1 数据类型 [DEFAULT expression] [constraint],

字段名2 数据类型 [DEFAULT expression] [constraint],

……)

[STORAGE子句]

[其他子句…]; 

例如:

CREATE TABLE NEW_STU 

     ( STUNO     NUMBER(4,2),

       STUNAME VARCHAR2(6) not null,

       ADDRESS  VARCHAR2(20));

比较:

CREATE TABLE EMP_BAK AS SELECT * FROM EMP;

CREATE TABLE EMP_BAK1 AS SELECT * FROM EMP WHERE 1=2;




表的创建 END

表的修改 START

ALTER TABLE [schema.]表名

   [ADD { column datatype [DEFAULT expr]

                [column_constraint] ... | table_constraint

             } |

             { column datatype [DEFAULT expr]

               [column_constraint] ... | table_constraint

             } 

   ] 添加表的属性

   [MODIFY    column [datatype] [DEFAULT expr]        [column_constraint] ... 

            |  (column [datatype] [DEFAULT expr] [column_constraint] ... 

    ]修改表的属性 

    [DROP COLUMN] 列名 删除表中的属性


例如:ALTER TABLE NEW_STU ADD SEXY CHAR(2);

                      


表的修改 END

表的删除 START

DROP TABLE [schema.]表名

[CASCADE CONSTRAINTS]

其中CASCADE CONSTRAINTS代表级联删除所有约束

例如:

   DROP TABLE  NEW_STU  CASCADE CONSTRAINTS;


表的删除 END

约束的类型 START

主键约束 primary key 

              确保字段值不重复不为NULL

外键约束 foreign key 

              确保字段值必须来自于指定表

非空约束 NOT NULL    

              确保字段值不为NULL

检查约束 check       

              确保字段值的取值范围

唯一约束 unique      

               确保字段值不重复

 

约束的类型 END

NVL函数的使用 START



SQL> SELECT ename, salary, (salary*12)+NVL(subsidy,0)

  2  FROM   emp;


ENAME          SALARY     (SALARY*12)+NVL(SUBSIDY,0)

---------- --------- --------- ---------------KING   60000    5000

BLAKE  34200    2850

CLARK  29400    2450

...

14 rows selected.

NVL函数的使用 END

DECODE函数的使用 START



SQL> SELECT job, salary,

  2         DECODE(job, 'ANALYST', SAL*1.1,

  3                     'CLERK',   SAL*1.15,

  4                     'MANAGER', SAL*1.20,

  5                                SAL)

  6                REVISED_SALARY

  7  FROM   emp;





JOB             SAL REVISED_SALARY

--------- --------- --------------

PRESIDENT      5000           5000

MANAGER        2850           3420

MANAGER        2450           2940

...

14 rows selected.

DECODE函数的使用 END

自联接 START


自连接就是把某一张表中的行同该表中另外一些行连接起来。自连接主要用于查询比较相同的信息,所比较的列必须有相同的或兼容的数据类型。

为了连接同一个表,需要为该表指定两个不同的别名,只有这样才能把该表逻辑上作为两个不同的表使用。


例如

select a.ename,a.sal,b.ename 

from emp a,emp b 

where a.deptno=b.deptno;


自联接 END

行级锁 START


SELECT … FOR UPDATE语法:

  SELECT … FOR UPDATE [OF columns] [WAIT n | NOWAIT];



SQL> SELECT * FROM order_master WHERE vencode=’V002’

           FOR UPDATE OF odate, del_date;

SQL> UPDATE order_master SET del_date=’28-8月-05’

           WHERE vencode=’V002’;

SQL> COMMIT;


SQL> SELECT * FROM order_master WHERE vencode=’V002’

           FOR UPDATE WAIT 5;




SQL> SELECT * FROM order_master WHERE vencode=’V002’

           FOR UPDATE NOWAIT;

行级锁 END

表级锁 START

行共享 (ROW SHARE) – 禁止排他锁定表(EXCLUSIVE),但是可以进行DML语句操作

行排他(ROW EXCLUSIVE) – 禁止使用排他锁和共享锁

共享锁(SHARE)--目的就是对表只读 

锁定表,仅允许其他用户查询表中的行

禁止其他用户插入、更新和删除行

多个用户可以同时在同一个表上应用此锁

共享  行排他(SHARE ROW EXCLUSIVE) – 比共享锁更多的限制,禁止使用共享锁及更高的锁

排他(EXCLUSIVE) – 限制最强的表锁,仅允许其他用户查询该表的行。禁止修改和锁定表



表级锁 END

死锁 START

当两个事务相互等待对方释放资源时,就会形成死锁

Oracle会自动检测死锁,并通过结束其中的一个事务来解决死锁

右边是一个死锁的例子




死锁 END


Oracle知识总结PPT:NVL函数,DECODE函数的使用 ,死锁,自联接等【诗书画唱】的评论 (共 条)

分享到微博请遵守国家法律