MySQL常用语句
2021-03-23 本文已影响0人
下雨之後
- 添加
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...)
- 删除
DELETE FROM 表名 [WHERE 条件]
- 修改
UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2, ... [WHERE 条件]
- 查询
SELECT [DISTINCT] 列名1, 列名2, ... FROM 表名 [WHERE ...] [GROUP BY ...] [HAVING ...] [ORDER BY ...] [LIMIT ...]
SELECT * FROM 表名 # 查询所有记录
DISTINCT # 去除了重复的记录
ORDER BY 字段 [ASC | DESC] # 按字段排序,ASC升序,DESC降序
- 聚合函数
SELECT COUNT(*) FROM 表名 # 查询表中的记录总数
SELECT COUNT(p) FROM 表名 # 查询表中p的总数(不包括NULL)
SELECT COUNT(DISTINCT p) FROM 表名 # 查询表中p的总数(不包括NULL,去除重复记录)
SELECT MAX(p) FROM 表名 # 查询最大的p
SELECT MIN(p) FROM 表名 # 查询最小的p
SELECT SUM(p) FROM 表名 # 计算所有p的和
SELECT AVG(p) FROM 表名 # 计算所有p的平均值
- 子查询
SELECT * FROM 表1 WHERE 表2_id = (SELECT id FROM 表2 WHERE name = 'xxx')
- 多表查询
INNER JOIN:内连接
LEFT JOIN:左连接
RIGHT JOIN:右连接
JOINS
- WHERE子句
# 模糊查询
WHERE name LIKE '%数%' # name中包含'数'字
WHERE name LIKE '数%' # name以'数'字开头
# 逻辑运算
WHERE score > 60 AND score < 70 # score大于60且小于70
WHERE score IN (66, 77, 88) # score等于66或77或88
# 比较运算
WHERE score > 60 # score大于60
# NULL判断
WHERE score IS NULL # score的值为NULL
WHERE score IS NOT NULL # score的值不为NULL