程序员必知必会的40条SQL语句

2 篇文章 0 订阅

以下是一些程序员需要掌握的 SQL 查询语句:

  1. SELECT:选择数据表中的数据

`SELECT column_name1, column_name2 FROM table_name;` 
  1. FROM:指定数据表

`SELECT column_name FROM table_name;` 
  1. WHERE:筛选符合条件的数据

`SELECT column_name FROM table_name WHERE column_name = 'value';` 
  1. AND:用于连接 WHERE 子句中的多个条件

`SELECT column_name FROM table_name
 WHERE column_name1 = 'value1' AND column_name2 = 'value2';` 
  1. OR:用于连接 WHERE 子句中的多个条件,其中至少一个条件必须成立

`SELECT column_name FROM table_name
 WHERE column_name1 = 'value1' OR column_name2 = 'value2';` 
  1. IN:筛选符合指定值中任意一个的数据

`SELECT column_name FROM table_name
 WHERE column_name IN ('value1', 'value2', 'value3');` 
  1. NOT IN:筛选不符合指定值中任意一个的数据

`SELECT column_name FROM table_name
 WHERE column_name NOT IN ('value1', 'value2', 'value3');` 
  1. LIKE:筛选符合指定模式的数据

`SELECT column_name FROM table_name WHERE column_name LIKE 'pattern';` 
  1. NOT LIKE:筛选不符合指定模式的数据

`SELECT column_name FROM table_name WHERE column_name NOT LIKE 'pattern';` 
  1. BETWEEN:筛选在指定范围内的数据

`SELECT column_name FROM table_name
 WHERE column_name BETWEEN 'value1' AND 'value2';` 
  1. NOT BETWEEN:筛选不在指定范围内的数据

`SELECT column_name FROM table_name 
WHERE column_name NOT BETWEEN 'value1' AND 'value2';` 
  1. ORDER BY:按指定列进行排序

`SELECT column_name FROM table_name ORDER BY column_name ASC;` 
  1. DESC:按指定列进行降序排序

`SELECT column_name FROM table_name ORDER BY column_name DESC;` 
  1. ASC:按指定列进行升序排序

`SELECT column_name FROM table_name ORDER BY column_name ASC;` 
  1. GROUP BY:按指定列进行分组

`SELECT column_name1, SUM(column_name2) FROM table_name GROUP BY column_name1;` 
  1. HAVING:筛选分组后符合指定条件的数据

`SELECT column_name1, SUM(column_name2) FROM table_name
 GROUP BY column_name1 HAVING SUM(column_name2) > 100;` 
  1. JOIN:连接多个数据表

`SELECT table1.column_name1, table2.column_name2 FROM table1 
JOIN table2 ON table1.column_name1 = table2.column_name1;` 
  1. LEFT JOIN:连接左侧数据表,并包括右侧数据表中与左侧数据表中没有匹配项的行

`SELECT table1.column_name1, table2.column_name2 FROM table1 
LEFT JOIN table2 ON table1.column_name1 = table2.column_name1;` 
  1. RIGHT JOIN:右联接

`SELECT * FROM table1
 RIGHT JOIN table2 ON table1.column_name = table2.column_name;` 
  1. FULL OUTER JOIN:全外联接

`SELECT * FROM table1
 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;` 
  1. UNION:合并多个查询结果

`SELECT column_name FROM table1 
UNION SELECT column_name FROM table2;` 
  1. EXISTS:检查子查询结果是否存在

`SELECT column_name FROM table1
 WHERE EXISTS (SELECT column_name FROM table2 WHERE column_name = 'value');` 
  1. NOT EXISTS:检查子查询结果是否不存在

`SELECT column_name FROM table1
 WHERE NOT EXISTS (SELECT column_name FROM table2 WHERE column_name = 'value');` 
  1. IN:在一系列值中匹配

`SELECT column_name FROM table_name
 WHERE column_name IN ('value1', 'value2', 'value3');` 
  1. NOT IN:不在一系列值中匹配

`SELECT column_name FROM table_name
 WHERE column_name NOT IN ('value1', 'value2', 'value3');` 
  1. BETWEEN:在一定范围内匹配

`SELECT column_name FROM table_name WHERE column_name BETWEEN 'value1' AND 'value2';` 
  1. LIKE:根据通配符匹配

`SELECT column_name FROM table_name WHERE column_name LIKE '%value%';` 
  1. NOT LIKE:根据通配符不匹配

`SELECT column_name FROM table_name WHERE column_name NOT LIKE '%value%';` 
  1. AVG:计算平均值

`SELECT AVG(column_name) FROM table_name;` 
  1. COUNT:计算数据行数

`SELECT COUNT(*) FROM table_name;` 
  1. MAX:计算最大值

`SELECT MAX(column_name) FROM table_name;` 
  1. MIN:计算最小值

`SELECT MIN(column_name) FROM table_name;` 
  1. SUM:计算总和

`SELECT SUM(column_name) FROM table_name;` 
  1. DISTINCT ON:基于指定列的唯一值去重

`SELECT DISTINCT ON (column_name) column_name, column_name2, column_name3 FROM table_name;` 
  1. CASE:根据条件返回不同的结果

`SELECT column_name, 
       CASE 
           WHEN column_name = 'value1' THEN 'result1' 
           WHEN column_name = 'value2' THEN 'result2' 
           ELSE 'result3' 
       END AS new_column_name 
FROM table_name;` 
  1. COALESCE:返回第一个非空值

`SELECT COALESCE(column_name1, column_name2, column_name3) AS new_column_name FROM table_name;` 
  1. ROW_NUMBER:按照指定列进行分组并排序

`SELECT column_name, ROW_NUMBER() OVER (PARTITION BY column_name ORDER BY column_name2 DESC) FROM table_name;` 
  1. RANK:按照指定列进行分组并排序,相同值的行具有相同的排名,跳过下一个排名

`SELECT column_name, RANK() OVER (PARTITION BY column_name ORDER BY column_name2 DESC) FROM table_name;` 
  1. DENSE_RANK:按照指定列进行分组并排序,相同值的行具有相同的排名,不跳过下一个排名

`SELECT column_name, DENSE_RANK() OVER (PARTITION BY column_name ORDER BY column_name2 DESC) FROM table_name;` 
  1. NTILE:将分组分成指定数量的桶

`SELECT column_name, NTILE(4) OVER (ORDER BY column_name2 DESC) FROM table_name;` 
  1. LAG:返回当前行之前的指定偏移量的行的列值

`SELECT column_name, LAG(column_name2, 1) OVER (ORDER BY column_name2) FROM table_name;` 
  1. LEAD:返回当前行之后的指定偏移量的行的列值

`SELECT column_name, LEAD(column_name2, 1) OVER (ORDER BY column_name2) FROM table_name;` 
  1. FIRST_VALUE:返回分组中第一个行的列值

`SELECT column_name, FIRST_VALUE(column_name2) OVER (PARTITION BY column_name ORDER BY column_name2) FROM table_name;` 
  1. LAST_VALUE:返回分组中最后一个行的列值

`SELECT column_name, LAST_VALUE(column_name2) OVER (PARTITION BY column_name ORDER BY column_name2 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM table_name;` 
  1. PERCENT_RANK:计算每行的百分位排名

`SELECT column_name, PERCENT_RANK() OVER (ORDER BY column_name2 DESC) FROM table_name;` 
  1. CONCAT:连接多个字符串值为一个字符串

`SELECT CONCAT(column_name1, ' ', column_name2) FROM table_n
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值