Select
SELECT "欄位" FROM "表格名";
Distinct
SELECT DISTINCT "欄位"
FROM "表格名";
Where
SELECT "欄位"
FROM "表格名"
WHERE "條件";
And/Or
SELECT "欄位"
FROM "表格名"
WHERE "簡單條件"
{[AND|OR] "簡單條件"}+;
In
SELECT "欄位"
FROM "表格名"
WHERE "欄位" IN ('值1', '值2', ...);
Between
SELECT "欄位"
FROM "表格名"
WHERE "欄位" BETWEEN '值1' AND '值2';
Like
SELECT "欄位"
FROM "表格名"
WHERE "欄位" LIKE {模式};
Order By
SELECT "欄位"
FROM "表格名"
[WHERE "條件"]
ORDER BY "欄位" [ASC, DESC];
Count
SELECT COUNT("欄位")
FROM "表格名";
Group By
SELECT "欄位1", SUM("欄位2")
FROM "表格名"
GROUP BY "欄位1";
Having
SELECT "欄位1", SUM("欄位2")
FROM "表格名"
GROUP BY "欄位1"
HAVING (欄位);
Create Table
CREATE TABLE "表格名"
("欄位 1" "欄位 1 資料種類",
"欄位 2" "欄位 2 資料種類",
... );
Drop Table
DROP TABLE "表格名";
Truncate Table
TRUNCATE TABLE "表格名";
Insert Into
INSERT INTO "表格名" ("欄位1", "欄位2", ...)
VALUES ("值1", "值2", ...);
Update
UPDATE "表格名"
SET "欄位1" = [新值]
WHERE "條件";
Delete From
DELETE FROM "表格名"
WHERE "條件";
遞歸語法和主要使用函數:
select * from 表 start with 條件入口 connect by prior id = parent_id(向下)
select * from 表 start with 條件入口 connect by prior parent_id = id(向上)
如果不寫prior,表明前序遍歷 未指明遍歷方向,所以不進行遞歸,習慣上會在語句後面加上order by排序和group by分組
connect_by_root(列名) 查詢根節點
connect_by_isleaf 查詢是否葉子節點,0是,1不是
sys_connect_by_path 查詢遞歸路徑
ps:
oracle遞歸查詢也有叫樹查詢的,語法結構爲: select * from tb start with id=1 connect by prior id=id2 (prior也可以放在等號後面:id=prior id2 ,這樣查詢的結果等同於交換變量的位置:prior id2=id).
之所以叫遞歸查詢是因爲後一次的查詢條件是依賴前一次的記錄進行的,如prior id2=id 意思就是當前要查詢的id等於前一條記錄的id2 即以此類推進行遞歸查詢
connect by 是遞歸查詢的標誌 若省去prior 則僅查詢滿足start with 條件的記錄 .