----截斷表
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 不為空白的人的個數。