程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> SQL:1999基本語法(學習筆記),基本語法學習筆記

SQL:1999基本語法(學習筆記),基本語法學習筆記

編輯:Oracle教程

SQL:1999基本語法(學習筆記),基本語法學習筆記


SQL:1999基本語法

SELECT [DISTINCT] * | 列名稱 [AS]別名,........
FROM 表名稱1 [別名1][CROSS JOIN表名稱2 別名2]|
[NATURAL JOIN表名稱2 別名2]
[ JOIN表名稱2 別名2 USING (關聯列名稱)]
[ JOIN表名稱2 別名2 on (關聯條件)]
[LEFT | RIGHT | FULL OUTER JOIN 表2 ON (關聯條件)]
[WHERE 條件(s)]
[ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 
  • 交叉連接(CROSS IN)

語法:

 

SELECT [DISTINCT] * | 列名稱 [AS]別名,........
FROM 表名稱1 [別名1][CROSS JOIN表名稱2 別名2]|
[WHERE 條件(s)]
[ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 

 

使用交叉連接門生笛卡爾積

SELECT * 
FROM emp e CROSS JOIN dept d; 

使用where消除

SELECT * 
FROM emp e CROSS JOIN dept d
WHERE e.deptno=d.deptno; 
  • 自然連接(NATURAL JOIN)

語法:

 

SELECT [DISTINCT] * | 列名稱 [AS]別名,........
FROM 表名稱1 [別名1]
[NATURAL JOIN表名稱2 別名2]
[WHERE 條件(s)]
[ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 

 

使用自然連接

SELECT * 
FROM emp  NATURAL JOIN dept;
--自然連接可以直接消除笛卡爾積
  • USING子句

 

語法:

 

SELECT [DISTINCT] * | 列名稱 [AS]別名,........
FROM 表名稱1 [別名1] [ JOIN表名稱2 別名2 USING (關聯列名稱)]
[WHERE 條件(s)]
[ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 

 

使用USING子句

SELECT * 
FROM emp JOIN dept USING (deptno);

--USING後字段要用()
  • ON子句

語法:

SELECT [DISTINCT] * | 列名稱 [AS]別名,........
FROM 表名稱1 [別名1] [ JOIN表名稱2 別名2 on (關聯條件)]
[WHERE 條件(s)]
[ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 

 使用ON子句:

 

SELECT * 
FROM emp e JOIN dept d ON (e.deptno=d.deptno) ;
--ON後是條件
--()可以省略
  • 外連接

語法:

SELECT [DISTINCT] * | 列名稱 [AS]別名,........
FROM 表名稱1 [別名1][LEFT | RIGHT | FULL OUTER JOIN 表2 ON (關聯條件)]
[WHERE 條件(s)]
[ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 

左外連接:

SELECT * 
FROM emp e LEFT OUTER JOIN dept d
ON(e.deptno=d.deptno);
--使用ON消除笛卡爾積
SELECT * 
FROM emp e LEFT OUTER JOIN dept d
USING (deptno);
--使用USING消除笛卡爾積

右外連接:

SELECT * 
FROM emp e RIGHT OUTER JOIN dept d
ON(e.deptno=d.deptno);
--使用ON消除笛卡爾積
SELECT * 
FROM emp e RIGHT OUTER JOIN dept d
USING (deptno);
--使用USING消除笛卡爾積

全外連接:

SELECT *
FROM emp e FULL OUTER JOIN dept d
ON(e.deptno=d.deptno);
--使用ON消除笛卡爾積
SELECT *
FROM emp e FULL OUTER JOIN dept d
USING (deptno);
--使用USING消除笛卡爾積

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved