SELECT column 找什么?
FROM table 从哪找?
WHERE column 条件 条件是啥?
条件:数字(where)
当查找条件column是数字
select * from table where column = 1;
Operator |
Condition |
SQL Example |
解释 |
=, !=, < ,<=, >, >= |
标准数值运算符 |
column != 4 |
等于 大于 小于 |
BETWEEN … AND … |
数字在两个值范围内(包括) |
column BETWEEN 1.5 AND 10.5 |
在 X 和 X之间 |
NOT BETWEEN … AND … |
不在两个值范围内(包括两个值) |
co NOT BETWEEN 1 AND10 |
不在 X 和 X之间 |
IN (…) |
数字存在于列表中 |
column IN (2, 4, 6) |
在 X 集合 |
NOT IN (…) |
数字不存在于列表中 |
column NOT IN (1, 3, 5) |
不在 X 集合 |
条件:文本(where)
当查找条件column是文本
select * from table where column like ‘%to’;
Operator |
Condition |
SQL Example |
解释 |
= |
区分大小写的精确字符串比较(注意单个equals) |
column = “abc” |
等于 |
!= or <> |
区分大小写的精确字符串不等比较 |
column != “abcd” |
不等于 |
LIKE |
不区分大小写的精确字符串比较 |
column LIKE “ABC” |
等于 |
NOT LIKE |
不区分大小写的精确字符串不等比较 |
column NOT LIKE “ABCD” |
不等于 |
% |
用于字符串中的任意位置,以匹配由0或多个字符组成的序列(仅与LIKE或NOT LIKE匹配) |
column LIKE “%AT%” (matches “AT”, “ATTIC”, “CAT” or even “BATS”) |
模糊匹配 |
_ |
用于字符串中的任意位置,以匹配单个字符(仅与LIKE或NOT LIKE匹配) |
column LIKE “AN_” (matches “AND”, but not “AN”) |
模糊匹配单字符 |
IN (…) |
字符串存在于列表中 |
column IN (“A”, “B”, “C”) |
在集合 |
NOT IN (…) |
字符串不存在于列表中 |
co NOT IN (“D”, “E”, “F”) |
不在集合 |
排序(rows)
需要对结果rows排序和筛选部分rows
select * from table where column > 1 order by column asc limit 2 offset 2
Operator |
SQL Example |
解释 |
ORDER BY |
ORDER BY column ASC/DESC |
按column排序 |
ASC |
ORDER BY column ASC/DESC |
升序 |
DESC |
ORDER BY column ASC/DESC |
降序 |
LIMIT OFFSET |
LIMIT num_limit OFFSET num_offset |
从offset取limit |
ORDER BY |
ORDER BY column1 ASC,column2 DESC |
多列排序 |
join:连表(table)
当查找的数据在多张关联table里
select * from table1 left join table2 on table1.id = table2.id where column > 1
Operator |
SQL Example |
解释 |
JOIN .. ON .. |
t1 JOIN t2 ON t1.id = t2.id |
按ID连成1个表 |
INNER JOIN |
t1 INNER JOIN t2 ON t1.id = t2.id |
只保留id相等的row |
LEFT JOIN |
t1 LEFT JOIN t2 ON t1.id = t2.id |
保留t1的所有row |
RIGHT JOIN |
t1 RIGHT JOIN t2 ON t1.id = t2.id |
保留t2的所有row |
IS/IS NOT NULL |
column IS/IS NOT NULL |
column是不是为null |
算式(select / where)
当需要对select的column 或 where条件的column 经过一定计算后才能使用
select *,column*2 from table where column/2 > 1
Operator |
SQL Example |
解释 |
+ – * / % |
column1 + column2 |
column加减乘除 |
substr |
substr(column,0,4) |
字符串截取 |
AS |
column * 2 AS column_new |
column取别名 |
… |
还有很多 |
统计(select)
对查找的rows需要按column分组统计的情况
select count(*),avg(column),column from table where column > 1 group by column
Operator |
Condition |
SQL Example |
解释 |
COUNT(*), COUNT(columnumn) |
如果没有指定列名,则用于计算组中的行数的通用函数。 否则,计算组中指定列中具有非null值的行数。 |
count(column) |
计数 |
MIN(columnumn) |
为组中的所有行查找指定列中的最小数值。 |
min(column) |
最小 |
MAX(columnumn) |
为组中的所有行查找指定列中的最大数值。 |
max(column) |
最大 |
AVG(columnumn) |
为组中的所有行查找指定列中的平均值。 |
avg(column) |
平均 |
SUM(columnumn) |
为组中的行查找指定列中所有数值的和。 |
sum(column) |
求和 |
GROUP BY |
. |
group by column,column2 |
分组 |
HAVING |
. |
HAVING column>100 |
分组后条件 |
子表 (table)
一次select的结果rows作为下一次select的临时table才能得到最终结果
select * from (select * from table where column > 1) as tmp where column < 1
Operator |
SQL Example |
解释 |
(select -)as tmp |
(select -)as tmp |
select结果做子表 |
in(select -) |
in(select -) |
select结果做条件 |
avg(select -) |
avg(select -) |
select结果做条件 |
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/5928.html