INSERT INTO 表名(欄位1, 欄位2, ...) VALUES (值1, 值2, ...);
INSERT INTO 表名(欄位1, 欄位2, ...) SELECT 欄位1, 欄位2, ... FROM 其他表;
''。SYSDATE 或 TO_DATE('2001-08-01','YYYY-MM-DD')。DBMS_LOB 套件。CREATE SEQUENCE seq_name INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;,插入用 seq_name.NEXTVAL。DELETE FROM 表名 WHERE 條件;
注意:DELETE 不釋放空間,僅標記區塊為 unused。大量清表請用:
TRUNCATE TABLE 表名; -- 釋放空間、不可回滾
UPDATE 表名 SET 欄位1=值1, 欄位2=值2, ... WHERE 條件;
COMMIT 生效,ROLLBACK 可回滾。COMMIT,避免回滾段爆滿導致效能下降。| 型別 | 說明 |
|---|---|
| CHAR | 定長字串 |
| VARCHAR2 | 變長字串 |
| NUMBER(M,N) | M 總位數,N 小數位 |
| DATE | 日期時間 |
DEFAULT SYSDATE 自動記錄操作時間。UNIQUE、PRIMARY KEY。ALTER TABLE 表名1 RENAME TO 表名2; -- 改表名
ALTER TABLE 表名 ADD 欄位名 型別; -- 加欄位
ALTER TABLE 表名 MODIFY 欄位名 新型別; -- 改型別
ALTER TABLE 表名 ADD CONSTRAINT 名稱 PRIMARY KEY (欄位); -- 加主鍵
ALTER TABLE 表名 ADD CONSTRAINT 名稱 UNIQUE (欄位); -- 加唯一
ALTER TABLE 表名 CACHE | NOCACHE; -- 置入/移出記憶體
DROP TABLE 表名 CASCADE CONSTRAINTS; -- 連同約束刪除
TRUNCATE TABLE 表名; -- 清空資料、保留結構
SELECT 欄位1, 欄位2, ... FROM 表1, 表2 ... WHERE 條件;
COUNT(*), MIN, MAX, AVG, DISTINCTTO_CHAR(date, 'YYYY-MM-DD HH24:MI:SS')NVL(expr1, expr2):expr1 為 NULL 回傳 expr2DECODE(a, v1, r1, v2, r2, ...):類似 switch-caseLPAD(str, n, pad):左補齊SELECT ... FROM (SELECT ... FROM ... WHERE ...) WHERE ...UNION(去重), UNION ALL, MINUS(差集), INTERSECT(交集)GROUP BY 欄位 [HAVING 條件]t1.col = t2.col,外連接 t1.col = t2.col(+)(Oracle 舊語法)ORDER BY 欄位1, 欄位2 DESCINSTR(col, 'str')>0 或 col LIKE 'str%'ROWID 標識唯一性。CREATE INDEX 索引名 ON 表名 (欄位1, 欄位2...);
ALTER INDEX 索引名 REBUILD;
db_block_size * 40%。CREATE VIEW 視圖名 AS SELECT ... FROM ...;
ALTER VIEW 視圖名 COMPILE;
視圖本質是儲存的查詢,簡化複雜關聯。
CREATE SYNONYM 同義詞名 FOR 表名;
CREATE SYNONYM 同義詞名 FOR 表名@DB_LINK;
CREATE DATABASE LINK 連結名
CONNECT TO 使用者 IDENTIFIED BY 密碼
USING '連線字串';
-- 查詢遠端表
SELECT ... FROM 表名@連結名;
GLOBAL_NAMES=TRUE 時連結名必須等於遠端 DB 名。查詢全域名:SELECT * FROM GLOBAL_NAME;
CONNECT:基本連線RESOURCE:開發物件DBA:管理員ALL, SELECT, UPDATE, DELETE, INSERT, ALTER ON 物件名GRANT CONNECT, RESOURCE TO 用戶;
GRANT SELECT ON 表名 TO 用戶;
GRANT SELECT, INSERT, DELETE ON 表名 TO 用戶1, 用戶2;
REVOKE CONNECT, RESOURCE FROM 用戶;
REVOKE SELECT ON 表名 FROM 用戶;
REVOKE SELECT, INSERT, DELETE ON 表名 FROM 用戶1, 用戶2;