SQL語法

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 條件的記錄 .

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章