码迷,mamicode.com
首页 > 数据库 > 详细

SQL:1999基本语法(学习笔记)

时间:2015-01-10 06:37:14      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

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消除笛卡尔积

 

 

 

SQL:1999基本语法(学习笔记)

标签:

原文地址:http://www.cnblogs.com/liunanjava/p/4214449.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!