实例
插入几条数据:
查询 author 表 name 字段中以星为结尾的的所有记录:
mysql> select * from author where name like '%星'; +----+--------+---------+-------------+ | id | name | qq | phone | +----+--------+---------+-------------+ | 5 | 李天星 | 5678911 | 13345607861 | | 6 | 王星 | 5678912 | 13345607862 | | 7 | 张星星 | 5678913 | 13345607863 | +----+--------+---------+-------------+ 3 rows in set (0.01 sec)9. UNION 操作符
MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
语法
MySQL UNION 操作符语法格式:
参数
expression1, expression2, ... expression_n: 要检索的列。
tables: 要检索的数据表。
WHERE conditions: 可选, 检索条件。
DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
ALL: 可选,返回所有结果集,包含重复数据。
articles表
mysql> select * from articles; +----+--------------+----------------------------+---------+ | id | title | content | user_id | +----+--------------+----------------------------+---------+ | 1 | 中国有嘻哈 | 哈哈哈 | 1 | | 2 | 星光大道 | 成名之路 | 2 | | 3 | 平凡的真谛 | 开心即完美 | 3 | | 4 | python进阶 | Python高级用法 | 1 | | 5 | 流畅的python | 就问你流畅不流畅 | 1 | | 6 | 严肃 | 你这辈子就是吃了太严肃的亏 | 3 | +----+--------------+----------------------------+---------+ 6 rows in set (0.00 sec)article表
mysql> select * from article; +----+--------------+----------------------------+-----------+---------------------+ | id | title | content | author_id | create_time | +----+--------------+----------------------------+-----------+---------------------+ | 1 | 流畅的python | Python各种拽 | 1 | 2017-09-12 16:36:43 | | 2 | 嘻哈 | 中国有嘻哈 | 2 | 2017-09-12 16:36:43 | | 3 | 严肃 | 你这辈子就是吃了太严肃的亏 | 3 | 2017-09-12 16:36:43 | +----+--------------+----------------------------+-----------+---------------------+ 3 rows in set (0.00 sec)SQL UNION 实例
下面的 SQL 语句从 article 和 articles 表中选取所有不同的title(只有不同的值):
注释:UNION 不能用于列出两个表中所有的title。如果出现重复的数据,只会列出一次。UNION 只会选取不同的值。请使用 UNION ALL 来选取重复的值!
SQL UNION ALL 实例
下面的 SQL 语句使用 UNION ALL 从 "article" 和 "articles" 表中选取所有的title(也有重复的值):
带有 WHERE 的 SQL UNION ALL
下面的 SQL 语句使用 UNION ALL 从 "article" 和 "articles" 表中选取所标题(title)为流畅的python的书籍(也有重复的值):
10. 排序
我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。
如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。
语法
以下是 SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:
你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
你可以设定多个字段来排序。
你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
你可以添加 WHERE...LIKE 子句来设置条件。