首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Oracle SQL 語法與常用物件速查手冊 (DML/DDL/SELECT/權限)

     編輯:關於SqlServer

一、資料操作語言 (DML)

INSERT

-- 明確欄位
INSERT INTO tbl (col1, col2) VALUES (val1, val2);
-- 子查詢複製
INSERT INTO tbl (col1, col2) SELECT col1, col2 FROM other_tbl;
  • 字串值用單引號 'GOOD DAY';單引號轉義寫兩個 ''。
  • 日期可用 SYSDATE 或 TO_DATE('2001-08-01','YYYY-MM-DD')。
  • 超過 4000 字元請用 CLOB + DBMS_LOB。
  • 自增序列:CREATE SEQUENCE seq_tbl INCREMENT BY 1 START WITH 1 MAXVALUE 999999 NOCACHE; 取值 seq_tbl.NEXTVAL。

DELETE / TRUNCATE

DELETE FROM tbl WHERE cond;
TRUNCATE TABLE tbl;  -- 釋放空間、不可回滾、不觸發觸發器

UPDATE

UPDATE tbl SET col1=val1, col2=val2 WHERE cond;
  • 未賦值欄位變 NULL,建議先非空檢核。
  • 大量 DML 建議分批 COMMIT,避免回滾段爆滿。

二、資料定義語言 (DDL)

操作語法範例
建表CREATE TABLE t (id NUMBER(6) PRIMARY KEY, name VARCHAR2(50) NOT NULL, dt DATE DEFAULT SYSDATE);
改表名ALTER TABLE old RENAME TO new;
加欄位ALTER TABLE t ADD (col3 NUMBER);
改欄位ALTER TABLE t MODIFY (col3 NUMBER(10,2));
加主鍵ALTER TABLE t ADD CONSTRAINT pk_t PRIMARY KEY (id);
加唯一ALTER TABLE t ADD CONSTRAINT uk_t_name UNIQUE (name);
緩存控制ALTER TABLE t CACHE | NOCACHE;
刪表含約束DROP TABLE t CASCADE CONSTRAINTS;
清空表TRUNCATE TABLE t;

三、查詢語句 (SELECT) 精華

  • 常用函數:NVL(expr1,expr2)、DECODE(a,v1,r1,v2,r2,...,default)、LPAD(str,n,pad)、TO_CHAR(dt,'YYYY-MM-DD HH24:MI:SS')。
  • 集合運算:UNION(去重)、UNION ALL、MINUS、INTERSECT。
  • 分組:GROUP BY col HAVING cond。
  • 外連接:WHERE t1.col = t2.col(+) → 推薦改用 LEFT JOIN t2 ON t1.col = t2.col。
  • 模糊查詢:INSTR(col,'str')>0 或 col LIKE '%str%'。
  • ROWID:每列隱含唯一物理地址,可用於快速定位/去重。

四、常用 Schema 物件

物件建立語法備註
索引CREATE INDEX idx_t_col ON t(col); ALTER INDEX idx_t_col REBUILD;單表 ≤3 個單欄索引為宜;組合索引依查詢條件順序建立
視圖CREATE VIEW v AS SELECT ...; ALTER VIEW v COMPILE;僅儲存查詢文本,簡化複雜關聯
同義詞CREATE SYNONYM syn FOR t[@dblink];隱藏物件真實位置,便於遷移
DB LinkCREATE DATABASE LINK lnk CONNECT TO usr IDENTIFIED BY pwd USING 'tns_str';跨庫查詢 SELECT * FROM t@lnk;

五、權限控制 (DCL)

-- 系統權限
GRANT CONNECT, RESOURCE TO usr;
-- 物件權限
GRANT SELECT, INSERT, UPDATE ON t TO usr1, usr2;
-- 回收
REVOKE SELECT ON t FROM usr;

常用角色:CONNECT、RESOURCE、DBA。

實戰提醒

  • 大量 DML 前評估影響行數,分批提交。
  • 索引過多反拖慢寫入,定期 ANALYZE INDEX ... VALIDATE STRUCTURE 檢查使用率。
  • 視圖嵌套增加解析開銷,必要時建立 MATERIALIZED VIEW。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved