无论开发还是测试人员,在工作中经常涉及数据库交互,需要去操作数据库,这里简单的讲下,并记录一些常用的mysql命令,不足之处还恳请大家多多包涵和指出!!!
1:表备份 (不要随意的去删除某些表,要习惯性的去做一些备份)
备份
命令: create table backup_table as select * from table;
实践操作:CREATE TABLE `tb_goods_backup20181125` AS SELECT * FROM `tb_goods`;
还原:
create table table as select * from backup_table;
2:去重查询
关键字: DISTINCT
SELECT DISTINCT(msisdn) FROM a5_monopoly_shake a WHERE a.`point_type`='1’AND a.`create_Time`
3:INSERT INTO 语句遇到的问题案例,这种情况要想到 update 语句
4:Update 语句
update 语句注意点,如何处理 set 后面 多个列表字段值。注意使用 ,(英文状态逗号) 不要用 AND ,不然语法不报错,但实际没有 update 成功。update set后面的 字段值 要用 一对单引号 引起来 ‘’ ,不然会报语法错误
set 后面多个 要修改的列表字段 用AND 连接,有时候语法没报错,但语法没报错,但结果不是我们要update 应该得到的结果
上面的是语法没报错,但实际结果也update到对应想要的结果
但为什么name值就变成了 0 ,而且就只有放在语句前面的name字段有变更,后面number没有变更呢??问题点应该在:mysql 存在运算符,and 在set 这里可能 充当了运算符的作用,更新操作set之后使用and 只会执行name = xx; 数据库经过运算结果为false 返回 0
----- 看下用and 有时候 会报语法错误
name后字符串里是数字没报错,试下 字母字符串
问题来了,为什么 name列表字段 set成 ‘test123’ 时就报错了??
Truncated incorrect DOUBLE value:
把set 后面的 AND number=1502813695500去掉又不报这错 ,说明问题还在这个and 这里数据库执行语句,在解析语句执行语句的时候报了错,正确的操作是set 里有多个要修改字段时,用 英文状态 逗号,不要用AND去连接
5:DELETE 语句,要删除整表数据,横向比较 整表数据 truncate
---- 清空全部数据,不写日志,不可恢复,速度极快
truncate table 表名;
6: DROP 语句
删除索引
删表
删数据库
7:对数据排序 – ORDER BY 语句
升序和降序的同时处理
8:善于利用给表赋予别名,需要的时候可以1张表赋予2次别名
(承接刚才的问题及描述)
9:时间格式转换
1.Date ——> String
2.String ——>Date
STR_TO_DATE(str,format) str:字符形式的日期 format:格式化样式
10:HAVING 语句
首先
where、聚合函数、having 在from后面的执行顺序
12:手动更新表不锁表 (oracle)
13:数据库表大数据 增加表字段
ALGORITHM=inplace
往期
精彩回顾
没有前辈带领,只靠自己满满摸索成长缓慢;
缺少系统全面的学习路径,迟迟无法突破瓶颈;
只懂理论知识没有太多实操经验,没办法造轮子;
一个人钻研Bug的时候,感到孤独无助,无从下手;
如果你也遇到了以上不止一种情况,不妨登陆松勤网(www.songqinnet.com),在这里你将获得【行业最新资讯】、【免费测试工具安装包】【技术干货分享】、【求职面试技巧】等。遇见松勤,高薪终会不期而遇!期待与您一起成长!