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消除笛卡爾積

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM