BETWEEN 操作符
介绍
sql操作符用于选取介于两个值之间的数据范围内的值。
这些值可以是数值、文本或者日期。
语法
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
实例1 BRTWEEN
下面的 SQL 语句选取 价格(price) 介于 1 和 20 之间的所有商品
SELECT *
FROM Store
WHERE price BETWEEN 1 AND 49;
实例2 NOT BETWEEN
下面的 SQL 语句选取 价格(price) 不在 1 和 20 之间的所有商品
SELECT *
FROM Store
WHERE price NOT BETWEEN 1 AND 49;
实例3 混合使用
下面的SQL语句选取价格peice在1 和 20 之间并且产地country不是中国也不是印度的所有商品
SELECT * FROM Store
WHERE (price BETWEEN 1 AND 20)
AND country NOT IN ('China', 'India');
带有文本值的 BETWEEN 操作符实例
下面的 SQL 语句选取 name 以介于 'A' 和 'H' 之间字母作为起始字母的所有商品
SELECT * FROM Store
WHERE name BETWEEN 'A' AND 'H';
带有日期值的 BETWEEN 操作符实例
下面的 SQL 语句选取 入库日期 介于 '2020-07-08' 和 '2020-07-27' 之间的所有商品
SELECT * FROM Store
WHERE date BETWEEN '2020-07-08' AND '2020-07-27';
AS(别名)
介绍
通过使用AS,可以为表名称或列名称指定别名。使用别名是为了增强列名的可读性。
语法
表名:
SELECT column_name(s)
FROM table_name AS alias_name;
列名
SELECT column_name AS alias_name
FROM table_name;
note:如果列名称包含空格,要求使用双引号或方括号
表的别名实例1
下面的 SQL 语句选取 "电子商城" 的所访问记录。我们使用 "Store" 和 "access_log" 表,并分别为它们指定表别名 "s" 和 "a"
SELECT s.name, s.url, a.count, a.date
FROM Store AS s, access_log AS a
WHERE a.site_id=s.id and s.name="牛轧糖";
通过使用别名,可以使 SQL 语句更简短
对比:
不带别名的相同的 SQL 语句
SELECT Websites.name, Websites.url, access_log.count, access_log.date
FROM Websites, access_log
WHERE Websites.id=access_log.site_id and Websites.name="牛轧糖";
列的别名实例1
下面的 SQL 语句指定了两个别名,一个是 name 列的别名 n,一个是 proce 列的别名p
SELECT name AS n, price AS p
FROM store;
列的别名实例2
在下面的 SQL 语句中,把三个列(购买链接url、价格price 和 产地country)结合在一起,并创建一个名为 "gools_info" 的别名
SELECT name, CONCAT(url, ', ', price, ', ', country) AS site_info
FROM Store;
在下面的情况下,使用别名很有用:
- 在查询中涉及超过一个表
- 在查询中使用了函数
- 列名称很长或者可读性差
- 需要把两个列或者多个列结合在一起
UNION
介绍
用于合并两个或多个SELECT 语句的结果集。
UNION 内部的每个 SELECT语句必须拥有相同数量的列。
列也必须拥有相似的数据类型。
同时,每个 SELECT 语句中的列的顺序必须相同。
语法(UNION)
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
注释:UNION 操作符默认选取不同的值。如果允许重复的值,需要使用 UNION ALL。
语法(UNION ALL)
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
注释:UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
实例(UNION)
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
实例(UNION ALL)
SELECT country FROM Websites
UNION ALL
SELECT country FROM apps
ORDER BY country;
注释:UNION ALL可以筛选出重复的值
实例(带有 WHERE 的 SQL UNION ALL)
下面的 SQL 语句使用 UNION ALL 从 “Websites” 和 “apps” 表中选取所有的中国(CN)的数据(包含重复的值)
SELECT country, name FROM Websites
WHERE country='China'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='China'
ORDER BY country;
本文作者:
whtli
本文链接: https://hexo.whtli.cn/archives/ceb130af.html
版权声明: 遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
本文链接: https://hexo.whtli.cn/archives/ceb130af.html
版权声明: 遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。