SELECT TOP 子句用于规定要返回的记录的数目。对于数千条的大型表来说是非常好用的。

除此之外 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。

limit 就是限制,limit 2就是从数据库里找出来两个

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

WHERE column_name LIKE pattern; 就是包含,指定

比如说:WHERE name LIKE '%oo%'; 就是找出所有包含oo的 WHERE name LIKE '%k';

在 SQL 中,可使用以下通配符:

'%a' //以a结尾的数据

'a%' //以a开头的数据

'%a%' //含有a的数据

‘_a_’ //三位且中间字母是a的

'_a' //两位且结尾字母是a的

'a_' //两位且开头字母是a的

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

下面的 SQL 语句选取 name 以 "G"、"F" 或 "s" 开始的所有网站:

SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';

总结

% 替代一个或多个字符

_ 仅替代一个字符

[charlist] 字符列中的任何单一字符

[^charlist]或者[!charlist] 不在字符列中的任何单一字符

其中搭配以上通配符可以让LIKE命令实现多种技巧:

1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。

2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。

3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。

4、LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。

5、LIKE'[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。

6、LIKE'[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。

7、LIKE'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。

IN 操作符

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

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

in 与 = 的转换

select * from Websites where name in ('Google','菜鸟教程');

可以转换成 = 的表达:

select * from Websites where name='Google' or name='菜鸟教程';

BETWEEN 操作符

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

WHERE column_name BETWEEN value1 AND value2;

连接(JOIN)

SQL join 用于把来自两个或多个表的行结合起来。

INNER JOIN:如果表中有至少一个匹配,则返回行

LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行

RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行

FULL JOIN:只要其中一个表中存在匹配,则返回行         

这四个就是上面图里所展示的东西 

INNER JOIN:通俗来理解就是匹配至少一个值可以返回多个表内容,详细看 1.17

LEFT JOIN 返回左表的所有行,也就是即使右表中无法找到对应左表记录的数据,也会返回数据。

RIGHT JOIN 类似。

而FULL JOIN就是LEFT 和 RIGHT 的并集,只要存在匹配就返回行。详细看图

 

更多推荐

1.16 SQL高级