sql必备语法(转载)

445次阅读
没有评论

共计 2328 个字符,预计需要花费 6 分钟才能阅读完成。

提醒:本文最后更新于 2024-07-08 13:29,文中所关联的信息可能已发生改变,请知悉!

SELECT col,col,col 找什么?

FROM table 从哪找?

WHERE col 条件 条件是啥?

条件:数字 (where)

当查找条件 col 是数字

select * from table where col = 1;

Operator Condition SQL Example 解释
=, !=, < ,<=, >, >= 标准数值运算符 col != 4 等于 大于 小于
BETWEEN … AND … 数字在两个值的范围内(包括两个值) col BETWEEN 1.5 AND 10.5 在 X 和 X 之间
NOT BETWEEN … AND … 数字不在两个值(包括两个值)的范围内 co NOT BETWEEN 1 AND10 不在 X 和 X 之间
IN (…) 列表中存在编号 col IN (2, 4, 6) 在 X 集合
NOT IN (…) 列表中不存在数字 col NOT IN (1, 3, 5) 不在 X 集合

条件:文本 (where)

当查找条件 col 是文本

select * from table where col like ‘%jin’;

Operator Condition SQL Example 解释
= 区分大小写的精确字符串比较(注意单个等于) col = “abc” 等于
!= or <> 区分大小写的精确字符串比较(请注意 si 区分大小写精确字符串不等式 comparisongle equals) col != “abcd” 不等于
LIKE 不区分大小写的精确字符串比较 col LIKE “ABC” 等于
NOT LIKE 不区分大小写的精确字符串不等式比较 col NOT LIKE “ABCD” 不等于
% 在字符串中的任何位置使用,以匹配零个或多个字符的序列(仅与 LIKE 或 NOT LIKE 一起使用) col LIKE “%AT%” (matches “AT”, “ATTIC”, “CAT” or even “BATS”) 模糊匹配
_ 用于字符串中的任何位置以匹配单个字符(仅与 LIKE 或 NOT LIKE 一起使用) col LIKE “AN_” (matches “AND”, but not “AN”) 模糊匹配单字符
IN (…) 列表中存在字符串 col IN (“A”, “B”, “C”) 在集合
NOT IN (…) 列表中不存在字符串 co NOT IN (“D”, “E”, “F”) 不在集合

排序 (rows)

需要对结果 rows 排序和筛选部分 rows

select * from table where col > 1 order by col asc limit 2 offset 2

Operator Condition SQL Example 解释
ORDER BY . ORDER BY col ASC/DESC 按 col 排序
ASC . ORDER BY col ASC/DESC 升序
DESC . ORDER BY col ASC/DESC 降序
LIMIT OFFSET . LIMIT num_limit OFFSET num_offset 从 offset 取 limit
ORDER BY . ORDER BY col1 ASC,col2 DESC 多列排序

join: 连表 (table)

当查找的数据在多张关联 table 里

select * from table1 left join table2 on table1.id = table2.id where col > 1

Operator Condition 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 . col IS/IS NOT NULL col 是不是为 null

算式 (select / where)

当需要对 select 的 col 或 where 条件的 col 经过一定计算后才能使用

select *,col*2 from table where col/2 > 1

Operator Condition SQL Example 解释
+ – * / % . col1 + col2 col 加减乘除
substr . substr(col,0,4) 字符串截取
AS . col * 2 AS col_new col 取别名
还有很多

统计(select)

对查找的 rows 需要按 col 分组统计的情况

select count(*),avg(col),col from table where col > 1 group by col

Operator Condition SQL Example 解释
COUNT(*), COUNT(column) 如果未指定列名,则用于对组中的行数进行计数的通用函数。否则,计算指定列中具有非 NULL 值的组中的行数。 count(col) 计数
MIN(column) 在指定列中查找组中所有行的最小数值。 min(col) 最小
MAX(column) 在指定列中查找组中所有行的最大数值。 max(col) 最大
AVG(column) 在指定列中查找组中所有行的平均数值。 avg(col) 平均
SUM(column) 查找组中各行的指定列中所有数值的总和。 sum(col) 求和
GROUP BY . group by col,col2 分组
HAVING . HAVING col>100 分组后条件

子表 (table)

一次 select 的结果 rows 作为下一次 select 的临时 table 才能得到最终结果

select * from (select * from table where col > 1) as tmp where col < 1

Operator Condition SQL Example 解释
(select -)as tmp (select -)as tmp select 结果做子表
in(select -) in(select -) select 结果做条件
avg(select -) avg(select -) select 结果做条件
正文完
 0
XSTPLAN
版权声明:本站原创文章,由 XSTPLAN 于2021-10-07发表,共计2328字。
转载说明:本站所有资源和文章版权归作者所有,未经授权禁止转载。如有转载或引用,请注明来源。
评论(没有评论)