oracle实用知识(三)

来源:互联网 发布:信息图制作软件 编辑:程序博客网 时间:2024/06/06 09:16

----截断表


TRUNCATE TABLE 用来删除表中所有的数据,表的结构不发生变化,并且数据不能回退。

----序列


SEQUENCE:产生一个数字,自动生成主键,例如自动添加编号时,就可以用这个,为数据依次排序,1,2,3,4,5.......

创建序列:CREATE SEQUENCE  序列名。 CREATE SEQUENCR  ID_SEQ;

序列的属性:NEXTVAL:序列下一个值, 每次调用序列的值都发生改变 ;

CURRVAL:序列当前值, 每次调用序列的值不发生改变 

例如向一条数据中添加序列:

INSERT INTO TEST(ID,NAME) VALUES(ID_SEQ.NEXTVAL,'SA');

多次执行此语句会发现 TEST表中的主键ID 的值是依次递增的。

----查询当前用户中所有的表名:


SELECT  TNAME FROM TAB;

----视图


视图的作用:简化SQL语句,提高安全性。但是视图不会提高查询效率,索引会提高查询效率。

创建视图:CREATE OR REPLACE VIEW V1 AS  这里是一大顿SELECT 语句;

这样 SELECT * FROM V1;的作用就和上面那一大堆SELECT 语句的作用是一样的。

----内连接与外连接

内连接只能查询到满足连接条件的查询,而外连接可以查询到不满足连接条件的查询。

外连接分为 左连接、右连接和全连接。

左连接:SELECT LAST_NAME,DEPARTMENT_NAME 

FROM EMPLOYEES  E LEFT  [OUTER]  JOIN  DEPARTMENTS   D  ON  E.DEPARTMENT_ID=D.DEPARTMENT_ID;

右连接:SELECT LAST_NAME,DEPARTMENT_NAME

FROM EMPLOYEES E  RIGHT JOIN DEPARTMENTS  D  ON E.DEPARTMENT_ID=D.DEPARTMENT_ID; 

全连接:SELECT LAST_NAME,DEPARTMENT_NAME

FROM EMPLOYEES E  FULL JOIN DEPARTMENTS  D  ON E.DEPARTMENT_ID=D.DEPARTMENT_ID; 

oracle中特有的外连接符号     (+)

左连接:SELECT LAST_NAME,DEPARTMENT_NAME  FROM  EMPLOYEES E,DEPARTMENTS D

WHERE E.DEPARTMENT_ID=D.DEPARTMENT_ID(+);     / /  注意 左连接是放在等号右边的。

右连接:SELECT LAST_NAME,DEPARTMENT_NAME  FROM  EMPLOYEES E,DEPARTMENTS D

WHERE E.DEPARTMENT_ID(+)=D.DEPARTMENT_ID;     / /  注意 左连接是放在等号左边的。

----常用的聚合函数(组函数)

----SUM

求和函数:SELECT SUM(SALARY)  FROM EMPLOYEES;

----AVG

求平均函数:SELECT AVG(SALARY) FROM EMPLOYEES;

注意:当所求平均数的数据中有NULL时,oracle会自动跳过,也就是说 如果有四条数据,其中有一个为空值,在求平均数时除以的不是4 而是3,

    为了解决这个问题可以使用  第一篇中的NVL函数:SELECT  AVG ( NVL ( SALARY,0 ) );

----MIN、MAX

求最小、最大值:SELECT MIN[MAX] (SALARY ) FROM EMPLOYEES;

----COUNT

求当前查询返回的行数:SELECT  COUNT(SALARY) FROM  EMPLOYEES; 查询SALARY 不为空的人的个数。


原创粉丝点击