SQL是宣告式的語法,不是過程化的,因此不提供過程控制。
SQL語法告訴Oracle要做啥,而不是該如何做。
SELECT name || ' ' || lastName FROM friendList ;
/* 得到姓名+空格+姓氏 */
NULL 連接 NULL 會得到NULL
兩張或多張表所共同擁有的column稱為key column,可以將兩張或多張表連接成單ㄧ結果集
DDL-Data Definition Language-通常由句權限的DBA使用
DML-Data Manipulation Language
GRANT-同意
REVOKE-廢除
DATABASE四種狀態
dismounted-未安裝的
mounted-安裝的
opened-開放的
closed-關閉的
ENABLE RESTRICTED SESSION-只允許具有限制權限的用戶登入
DISABLE RESTRICTED SESSION-停用此功能
AUDIT UPDATE ON scott.bonus;-對此表的UPDATE語句進行審核
AUDIT ALL ON scott.bonus WHENEVER NOT SUCCESSFUL;-審核此表未完成的操作
AUDIT SELECT scott.bonus NOT SUCCESSFUL;-對不成功的SELECT審核,常用在訪問者沒有權限時
SEQUENCE-創見序號產生器的關鍵字
ALTER SEQUENCE ord_seq
START WITH 101
MINVALUE 1
MAXVALUE 9999
CYCLE
ORDER;
INCREMENT BY-指定増量,不能為0,默認值為1
START WITH-指定被產生的第一個序列號
MAXVALUE-指定序列號到達的最大值,預設是不指定,也就是10^27
MINVALUE-指定序列號的最小值,預設值是不指定,也就是1
CYCLE-指定序列號到達最大值時,將從最小值開始
NOCYCLE-序列號到達最高值時,不產生另外的序列號
CACHE-指定緩存中的序列號,預設20,但資料庫重啟將遺失
NOCACHE
ORDER-指定序列號按要求的次序產生,預設是NOORDER
NOORDER
CREATE [PUBLIC] SYNONYM FOR XXX;-為XXX創造別名,PUBLIC沒寫表示僅架構擁有者可使用此別名
DROP [PUBLIC] SYNONYM XXX;-刪除別名
ALTER TABLE scott.emp ADD(bonus NUMBER(7,2));-為此TABLE增加一個bonus欄位
ALTER TABLE scott.emp MODIFY(bonus NUMBER(9,2))-將bonus欄位改為9位數
ALTER SESSION SET SQL_TRACE=TRUE;-開啟SQL追蹤功能會降低效能,平常應該關閉
DELETE FROM scott.emp WHERE sal>(SELECT AVG(sal) FROM scott.emp);-刪除薪水大於平均水的列
如果使用TABLE_ALIAS,在語句中引用ㄧ定要使用ALIAS
SCHEMA-架構名,如省略就為前用戶ID
@DBLINK-資料庫連接名
PARTITION-插入到TABLE的特定分區中
SUBPARTITION-插入到TABLE的特定子分區中
INSERT INTO emp(empno,empname,hiredate,mgr,sal) VALUES (7999,'JACK','10-JUN-00',7839,500);
/*ㄧ般插入用法*/
INSERT INTO newemp SELECT * FROM scott.emp WHERE comm>0;
/*使用子查詢,newemp每ㄧ列都接受子查詢的值,子查詢中不包含FOR, UPDATE*/
SELECT ename,dname,hiredate,sal,comm FROM scott.emp,scott.dept WHERE emp.deptno=dept.deptno;
/*由此可見SELECT也可以在FROM後面填入多個表單來取值*/
SELECT ename,dname,hiredate,sal comm FROM scott.emp a,scott.dept WHERE a.deptno=dept.deptno
AND sal>(SELECT AVG(sal) FROM scott.emp) ORDER BY sal;
/*列出同deptno且sal大於平均的,並且以sal由低到高排序*/
SELECT dname Department,MAX(sal) Maximum,MIN(sal) Minimum FROM scott.emp,scott.dept WHERE emp.deptno=dept.deptno GROUP BY dname;
/*每ㄧ個部門檢索最高最低的薪水*/
沒有留言:
張貼留言