SQL 常用语句总结

本文总结了MySQL中的基本用法,包括选择、连接、聚合、条件、窗口、日期、文本和其他函数,以及插入、更新、删除记录,创建、修改和删除表的操作。提供了学习资源和练习平台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL 常用语句总结(基于MySQL)

基本用法

SELECT a.column_name1, a.column_name2, … , b.column_name1, b.column_name2 …
FROM table_name1 a
(LEFT/RIGHT/OUTER/INNER(default)) JOIN table_name2 b
ON a.key = b.key
WHERE <some conditions>
GROUP BY <some columns>
HAVING <some conditions>
ORDER BY <some columns> (ASC(default)/DESC)

常用关键词

名称作用
DISTINCT去重
AS重命名
LIMIT a (OFFSET b)显示(第(b+1)个开始的)前a个
NOT取非
AND取交
OR取并
NULL空值
IN范围筛选
UNION (ALL)合并查询结果(不去重)
WITH构建临时表
EXISTS判断是否存在
LIKE配合%进行通配符匹配
REGEX_LIKE正则表达式筛选

聚合函数

名称作用
AVG平均
COUNT求和
MAX最大
MIN最小
SUM汇总

条件函数

形式说明
IF(test,a,b)如果test成立,执行a,否则执行b
CASE WHEN a THEN b END当a成立时执行b

窗口函数

形式说明
ROW_NUMBER() OVER(PARTITION BY col_name ORDER BY col_name)获取每类按某项指标的排名
RANK() OVER(PARTITION BY col_name ORDER BY col_name)获取每类按某项指标的排名(可并列)
DENSE_RANK() OVER(PARTITION BY col_name ORDER BY col_name)获取每类按某项指标的排名(相同记录属于同一排名)
PERCENT_RANK() OVER(PARTITION BY col_name ORDER BY col_name)获取每类按某项指标的百分位数
LEAD/LAG (col_name ) OVER(PARTITION BY col_name ORDER BY col_name)获得超前/滞后记录

日期函数

形式作用
YEAR(date)获取date的年份
MONTH(date)获取date的月份
DAY(date)获取date的天
DATEDIFF(date1, date2)计算date1-date2的天数
DATE_ADD(date, INTERVAL num DAY)计算date过num天后的日期
DATE_FORMAT(date, “%Y%m”)将date转化为 yyyymm的形式
TIMESTAMPDIFF(unit,date1,date2)计算(date2-date1)/unit

文本函数

形式作用
CHARACTER_LENGTH(s)返回字符串a的长度
CONCAT(s1,s2,s3, ⋯ \cdots )拼接字符串s1, s2, s3 …
SUBSTRING_INDEX(s,t,a)将字符串s按分隔符t划分,返回前a个元素
SUBSTRING(s,a,b)从字符串s中提取子串(从位置 a 开始,提取 b 个字符)
REPLACE(str, find_string, replace_with)替换

其他函数

形式作用
ROUND(value, k)保留k位小数
FLOOR(x) ⌊ x ⌋ \lfloor x\rfloor x
CEIL(x) ⌈ x ⌉ \lceil x \rceil x

插入记录

INSERT INTO table_name(column_name1, column_name2, …)
VALUES(value1, value2…), (…),(…)…

INSERT INTO table_name(column_name1, column_name2, …)
SELECTFROM

更新记录

UPDATE table_name SET <some conditions> WHERE <some conditions>

删除记录

DELETE FROM table_name WHERE <some conditions>

TRUNCATE TABLE table_name 删除表中所有记录,并重置自增主键

创建表

CREATE TABLE table_name (
field_name1 type_1 null_or_not_1 key_or_not_1 default_value_1 extra_1 comment_1,
field_name2 type_2 null_or_not_2 key_or_not_2 default_value_2 extra_2 comment_2,
…)

修改表

ALTER TABLE table_name ADD field_name_1 type AFTER field_name_2
在某列之后添加新的列

ALTER TABLE table_name CHANGE field_name_1 field_name_2 type
更改表中field_name_1的名字为field_name_2

ALTER TABLE table_name MODIFY field_name type DEFAULT value
更改某列的默认值

删除表

DROP TABLE table_name

附录

教程:

廖雪峰SQL教程
W3schools SQL教程

书籍:

《SQL 必知必会》

Cheat sheet

Cheat_sheet_1
Cheat_sheet_2
Cheat_sheet_3

练习:

牛客网
Leetcode

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值