SQLite 教程
1. SQLite 教程 2. SQLite 简介 3. SQLite 安装 4. SQLite 命令 5. SQLite 语法 6. SQLite 数据类型 7. SQLite 创建数据库 8. SQLite 附加数据库 9. SQLite 分离数据库 10. SQLite 创建表 11. SQLite 删除表 12. SQLite Insert 语句 13. SQLite Select 语句 14. SQLite 运算符 15. SQLite 表达式 16. SQLite Where 子句 17. SQLite AND/OR 运算符 18. SQLite Update 语句 19. SQLite Delete 语句 20. SQLite Like 子句 21. SQLite Glob 子句 22. SQLite Limit 子句 23. SQLite Order By 24. SQLite Group By 25. SQLite Having 子句 26. SQLite Distinct 关键字 27. SQLite PRAGMA 28. SQLite 约束 29. SQLite Join 30. SQLite Unions 子句 31. SQLite NULL 值 32. SQLite 别名 33. SQLite 触发器 34. SQLite 索引 35. SQLite Indexed By 36. SQLite Alter 命令 37. SQLite Truncate Table 38. SQLite 视图 39. SQLite 事务 40. SQLite 子查询 41. SQLite Autoincrement 42. SQLite 注入 43. SQLite Explain 44. SQLite Vacuum 45. SQLite 日期 & 时间 46. SQLite 常用函数 47. SQLite – C/C++ 48. SQLite – Java 49. SQLite – PHP 50. SQLite – Perl 51. SQLite – Python

SQLite Unions 子句

SQLite Unions 子句

SQLite的 UNION 子句/运算符用于合并两个或多个 SELECT 语句的结果,不返回任何重复的行。

为了使用 UNION,每个 SELECT 被选择的列数必须是相同的,相同数目的列表达式,相同的数据类型,并确保它们有相同的顺序,但它们不必具有相同的长度。

语法

UNION 的基本语法如下:


SELECT column1 [, column2 ]

FROM table1 [, table2 ]

[WHERE condition]



UNION



SELECT column1 [, column2 ]

FROM table1 [, table2 ]

[WHERE condition]

这里给定的条件根据需要可以是任何表达式。

实例

假设有下面两个表,(1)COMPANY 表如下所示:


sqlite> select * from COMPANY;

ID          NAME                  AGE         ADDRESS     SALARY

----------  --------------------  ----------  ----------  ----------

1           Paul                  32          California  20000.0

2           Allen                 25          Texas       15000.0

3           Teddy                 23          Norway      20000.0

4           Mark                  25          Rich-Mond   65000.0

5           David                 27          Texas       85000.0

6           Kim                   22          South-Hall  45000.0

7           James                 24          Houston     10000.0

(2)另一个表是 DEPARTMENT,如下所示:


ID          DEPT                  EMP_ID

----------  --------------------  ----------

1           IT Billing            1

2           Engineering           2

3           Finance               7

4           Engineering           3

5           Finance               4

6           Engineering           5

7           Finance               6

现在,让我们使用 SELECT 语句及 UNION 子句来连接两个表,如下所示:


sqlite> SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT

        ON COMPANY.ID = DEPARTMENT.EMP_ID

   UNION

     SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT

        ON COMPANY.ID = DEPARTMENT.EMP_ID;

这将产生以下结果:


EMP_ID      NAME                  DEPT

----------  --------------------  ----------

1           Paul                  IT Billing

2           Allen                 Engineerin

3           Teddy                 Engineerin

4           Mark                  Finance

5           David                 Engineerin

6           Kim                   Finance

7           James                 Finance

UNION ALL 子句

UNION ALL 运算符用于结合两个 SELECT 语句的结果,包括重复行。

适用于 UNION 的规则同样适用于 UNION ALL 运算符。

语法

UNION ALL 的基本语法如下:


SELECT column1 [, column2 ]

FROM table1 [, table2 ]

[WHERE condition]



UNION ALL



SELECT column1 [, column2 ]

FROM table1 [, table2 ]

[WHERE condition]

这里给定的条件根据需要可以是任何表达式。

实例

现在,让我们使用 SELECT 语句及 UNION ALL 子句来连接两个表,如下所示:


sqlite> SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT

        ON COMPANY.ID = DEPARTMENT.EMP_ID

   UNION ALL

     SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT

        ON COMPANY.ID = DEPARTMENT.EMP_ID;

这将产生以下结果:


EMP_ID      NAME                  DEPT

----------  --------------------  ----------

1           Paul                  IT Billing

2           Allen                 Engineerin

3           Teddy                 Engineerin

4           Mark                  Finance

5           David                 Engineerin

6           Kim                   Finance

7           James                 Finance

1           Paul                  IT Billing

2           Allen                 Engineerin

3           Teddy                 Engineerin

4           Mark                  Finance

5           David                 Engineerin

6           Kim                   Finance

7           James                 Finance