赞
踩
1. 基本语法:
- -- 1. 字段和表中的顺序一致 ,DEFAULT代表使用该列的默认值
- INSERT INTO tbl_name VALUES (值1), (值2), (DEFAULT);
- -- 2. 字段顺序打乱,字段与值一一对应
- INSERT INTO tbl_name (字段3, 字段2, 字段1) VALUES (值3, 值2, 值1);
- -- 3. set实现
- INSERT INTO tbl_name set 字段1=值1,字段2=值2,字段3=值3
2. 实用操作:
- -- 如果主键冲突,则更新后面的字段
- INSERT INTO tbl_name VALUES (值1), (值2), (值3) DUPLICATE KEY UPDATE 字段=值, …;
- -- 如果主键冲突,则跳过该行插入
- INSERT IGNORE INTO tbl_name ...
1. 基本语法:
UPDATE tab_name SET 字段=值, 字段=值 WHERE 字段=值;
1. 基本语法:
- DELETE FROM tab_name WHERE 字段=值;
- -- 删除表中某一列值重复的项,只保留最小id的
- DELETE a FROM tab_name a, tab_name b where a.id > b.id and a.字段=b.字段
1. 基本语法:
执行顺序为:FROM > WHERE > GROUP BY > HAVING > ORDER BY > SELECT
- SELECT 查询的内容 FROM tab_name WHERE 查询条件 GROUP BY 分组字段 HAVING 分组后的条件 ORDER BY 字段;
-
- -- 连接查询
- -- 拼接结果
- union -- 对两个集合(结果)进行并集操作
- union all -- 可以有重复的并集
2. 子查询:一个select查询的结果作为另一个查询的条件
SELECT * FROM tab_name1 where tid IN (SELECT id from tab_name2 WHERE xxx > x)
3. 连接查询:通过某一字段将两表连接,通过不同的连接方式展示查询结果
- -- 内连接:取两表交集
- SELECT * FROM tab_name1 a [INNER] JOIN tab_name2 b ON a.aid = b.bid
- -- 其实等同于
- SELECT * FROM tab_name1 a ,tab_name2 b WHERE a.aid = b.bid
- -- 外连接-左连接:以左表为主取值,查出的结果条数=左表的总条数
- SELECT * FROM tab_name1 a LEFT JOIN tab_name2 b ON a.aid = b.bid
- -- 外连接-右连接:以右表为主取值,查出的结果条数=右表的总条数
- SELECT * FROM tab_name1 a RIGHT JOIN tab_name2 b ON a.aid = b.bid
常用的内置函数、聚合函数和一些公式总结
- -- 内置函数
- abs(x) -- 绝对值
- format(x, d) -- 格式化千分位数值 format(1234567.456, 2) = 1,234,567.46
- ceil(x) -- 向上取整
- floor(x) -- 向下取整
- round(x) -- 四舍五入去整
- mod(m, n) -- m%n 求余
- pi() -- 获得圆周率
- pow(m, n) -- m^n
- sqrt(x) -- 算术平方根
- rand() -- 随机数
- -- 时间相关
- now(), current_timestamp(); -- 当前日期时间
- current_date(); -- 当前日期
- current_time(); -- 当前时间
- date( yyyy-mm-dd hh:ii:ss ); -- 获取日期部分
- time( yyyy-mm-dd hh:ii:ss ); -- 获取时间部分
- -- 双分支 类似java的三元 expr为表达式
- if(expr1,expr2,expr3) -- expr1成立则返回expr2的值,反之返回expr3的值
- -- 聚合函数
- count() -- 计数
- sum() -- 求和
- max() -- 最大值
- min() -- 最小值
- avg() -- 平均值
- -- 分组 类似于java中stream的groupingby
- group_concat([DISTINCT] column1 [ORDER BY column2 ASC\DESC] [SEPARATOR seq]);-- 将分组中column1这一列对应的多行的值 [去重] 按照column2 升序或者降序进行连接,其中分隔符为seq
逻辑控制语句if
- if 条件 then xxx
- elseif 条件 then xxx
- else xxx
- end if;
最后,测试过程中,最常用到的就是查询语句,主要是看接口调用的数据传输是否正常,其中多表关联查询和子查询是用的比较多的;这些只是初级的使用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。