# 1.WHERE子句:多表查询
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
# 2.REPLACE :修改特定字符串
UPDATE table_name SET field=REPLACE(field, 'old-string', 'new-string')
[WHERE Clause]
# 4.UNION 操作符
# 连接两个以上的 SELECT 语句的结果组合到一个结果集合中
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
# DISTINCT: 删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
# ALL: 返回所有结果集,包含重复数据。
# 5. ORDER BY 排序
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
# ASC:升序 , DESC:降序
# 6. GROUP BY 根据一个或多个列对结果集进行分组
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
[WITH ROLLUP];
# WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计
参考连接:https://www.runoob.com/mysql/mysql-group-by-statement.html
# 7.JOIN 连接两个或多个表
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
# 8.NULL 值处理
IFNULL(a, b) : 如果字段a不是NULL,返回a的值;否则字段a是NULL,返回b的值
# 例如: select * , columnName1+ifnull(columnName2,0) from tableName;
# columnName1,columnName2 为 int 型,当 columnName2 中,有值为 null 时,columnName1+columnName2=null, ifnull(columnName2,0) 把 columnName2 中 null 值转为 0。
COALESCE(a,b,c):如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。
# 9.LIKE模糊匹配:%表示任意字符
'%a' # 以a结尾的数据
'a%' # 以a开头的数据
'%a%' # 含有a的数据
'_a_' # 三位且中间字母是a的
'_a' # 两位且结尾字母是a的
'a_' # 两位且开头字母是a的
# 10.REGEXP 正则表达式
^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置
. 匹配除 "\n" 之外的任何单个字符
[...] 字符集合。匹配所包含的任意一个字符。
[^...] 负值字符集合。匹配未包含的任意字符。
p1|p2|p3 匹配 p1 或 p2 或 p3。
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。
# 11. ALTER 修改数据表名或者修改数据表字段
(1)删除,新增字段
ALTER TABLE testalter_tbl DROP i; # 删除表的 i 字段
ALTER TABLE testalter_tbl ADD i INT; # 添加 i 字段,并定义数据类型
(2)修改字段类型及名称
ALTER TABLE testalter_tbl MODIFY c CHAR(10) [NOT NULL DEFAULT 100]; # 修改字段类型,[可选,设置默认值]
ALTER TABLE testalter_tbl CHANGE i j BIGINT; # 修改字段类型及名称
(3)修改表名
ALTER TABLE testalter_tbl RENAME TO alter_tbl;