SQL 高级语法(一)

演示数据库

mysql> SELECT * FROM Websites;
+----+---------------+---------------------------+-------+---------+
| id | name          | url                       | alexa | country |
+----+---------------+---------------------------+-------+---------+
|  1 | Google        | https://www.google.cm/    |     1 | USA     |
|  2 | 淘宝          | https://www.taobao.com/   |    13 | CN      |
|  3 | 菜鸟教程       | http://www.runoob.com/    |  5000 | USA     |
|  4 | 微博           | http://weibo.com/         |    20 | CN      |
|  5 | Facebook      | https://www.facebook.com/ |     3 | USA     |
|  7 | stackoverflow | http://stackoverflow.com/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+

SQL SELECT LIMIT 子句

定义:

SELECT LIMIT 子句用于规定要返回的记录数目。

语法:

SELECT column_name(s)

FROM table_name

LIMIT number;

示例:

SELECT * FROM Websites LIMIT 2;

SQL 通配符

定义:

在 SQL 中,通配符与 SQL LIKE 操作符一起使用。

通配符类型如下:

通配符描述
% 替代 0 个或多个字符
_ 替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]

[!charlist]
不在

使用 SQL % 通配符

选取所有以字母 ‘https’ 开头的所有网站

SELECT * FROM Websites WHERE url LIKE 'https%';

选取所有包含 ‘%oo%’ 的网站;

SELECT * FROM Websites WHERE url LIKE '%oo%';

使用 SQL _ 通配符

选取 name 以一个任意字符开始,然后是 ”oogle“ 的所有用户:

SELECT * FROM Websites WHERE name LIKE '_oogle';

使用 SQL [charlist] 通配符

MySQL 中使用 REGEXPNOT REGEXP 运算符(或 RLIKE 和 NOT RLIKE)来操作正则表达式。

选取 name 以 ”G“、”F“ 和 ”s“ 开始的所有网站:

SELECET * FROM Websites WHERE name RLIKE ‘^[GFs]‘;

SQL IN 操作符

定义:

IN 操作符允许在 WHERE 子句中规定多个值。

语法:

SELECT column_name (s)

FROM table_name

WHERE column_name IN (value1, value2, ...);

示例:

SELECT * FROM Websites WHERE name IN ('Google', '菜鸟教程');

SQL BETWEEN 操作符

定义:

BETWEEN 操作符用于选取介于两个值之间的数据范围的值。

语法:

SELECT column_name(s)

FROM table_name

WHERE column_name BETWEEN value1 AND value2;

示例:

BETEEN 操作符:

选取 alexa 介于 1 和 20 之间的所有网站:

SELECT * FROM Websites WHERE alexa BETEEN 1 AND 20;

带有 IN 的 BETWEEN 操作符:

选取 alexa 介于 1 和 20 之间但 country 不为 USA 和 IND 的所有网站:

SELECT * FROM Websites WHERE (alexa BETWEEN 1 AND 20) AND country NOT IN ('USA', 'IND');

带有文本值的 BETWEEN 操作符:

选取 name 以介于 'A' 和 'H' 之间字母开始的所有网站:

SELECT * FROM Websites WHERE  name BETWEEN 'A' AND 'H';

SQL 别名

定义:

通过使用 SQL ,可以为表名称或列名称指定别名。

语法:

列别名用法:

SELECT column_name AS alias_name

FROM table_name;

表别名用法:

SELECT column_name

FROM table_name AS alias_name;

示例:

把三个列(url、alexa 和 country)结合在一起,并创建一个名为 "site_info" 的别名:

SELECT name, CONCAT(url, ',', alexa ',', country) AS site_info FROM Websites;

参考链接:https://www.runoob.com/sql

原文地址:https://www.cnblogs.com/john1015/p/13646411.html