MySQL 语法小册

SELECT column 找什么?FROM table 从哪找?WHERE column 条件 条件是啥?

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

(0)
上一篇 2022-12-14 13:23
下一篇 2022-12-14 13:23

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信