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 条件的记录 .