博客 干货分享,MySQL常用语句汇总

干货分享,MySQL常用语句汇总

   数栈君   发表于 2023-05-30 16:48  191  0

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/1ac1d2059ffb72e98fda946b9f1ebdf6..jpg

一、背景



日常测试开发工作中会用到各类SQL语句,很多时候都是想用的时候才发现语句细节记不清楚了。临时网上搜索SQL语法,挺费时费力的,语法还不一定是对的。因此汇总整理了一下MySQL最常用的各类语句,以后就不用再到处去搜了。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/1ac1d2059ffb72e98fda946b9f1ebdf6..jpg

二、各类SQL语句



假设表结构如下:
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/96dc2dee19965b3c0b2ecbce7d3380c4..jpg


1. 创建表:




CREATE TABLE IF NOT EXISTS `mq_info` ( 	`id` INT(12) UNSIGNED AUTO_INCREMENT COMMENT 'mq信息数据库自增id',	`topic` VARCHAR ( 255 ) NOT NULL COMMENT 'mq_topic名称',   	`message` longtext NOT NULL COMMENT 'mq_message内容', 	`markinfo` VARCHAR ( 255 ) COMMENT '该MQ的标识字段', 	PRIMARY KEY ( `id` ) ) ENGINE = INNODB DEFAULT CHARSET = utf8;


2. 查询表中所有数据:




select * from mq_info;


3. 查询表中前20条数据:




select * from mq_info limit 20;


4. 表中新增一条数据:




insert into mq_info ( topic,message,markinfo) values('mq_test','{"testId":165,"operation":3}','testInfo001')


5. 修改表中某个字段的值:




//将id=1的数据的topic都改为'mqUpdate_test'update mq_info set topic='mqUpdate_test' where id='1'
//将id=1或topic='mq_test'的数据的topic都改为'mqUpdate_test',// markinfo都改为'testInfo_update'update mq_info set topic='mqUpdate_test',markinfo='testInfo_update' where id='1' or topic='mq_test'


6. 删除表中指定条件的某一条数据:




delete from mq_info where id = 1


7. 删除表中所有的数据:




delete from mq_info


8. 删除表中某一个字段:




//删除mq_info表中的markinfo字段alter table mq_info drop column markinfo


9. 修改表中某个字段的类型:




//修改mq_info表中的message字段类型为varchar类型alter table mq_info modify column message varchar(255);


10. 修改表中某个字段的备注信息:‍




//修改mq_info表中的markinfo字段的备注信息为'自定义该MQ的唯一标识'alter table mq_info modify markinfo varchar(255) comment '自定义该MQ的唯一标识'


11. 修改表中某个字段的名称:




//把mq_info表中的markinfo字段名改为description_Info,//类型是varchar(255)alter table mq_info change markinfo description_Info varchar(255)


12. 向已有的表中新增新的字段:




//向mq_info表新增insert_time字段,字段类型为datetime,//备注信息为'MQ落库时间'alter table mq_info add insert_time datetime comment 'MQ落库时间'


13. 修改已有表的表名:




alter table mq_info rename to cart_mq_info


14. 修改数据库中字段的顺序:




//将insert_time字段在表中的排列顺序//修改为显示在create_time字段后面alter table mq_info modify insert_time tinyint(4) after create_time//“FIRST”为可选参数,指的是将字段1修改为表的第一个字段,//“AFTER 字段名2”是将字段1插入到字段2的后面ALTER TABLE MODLFY 字段名1 数据类型 FIRST|AFTER 字段名2


15. 复制已有的表结构生成一张新表:




//复制mq_info表结构生成一张新表order_mq_infocreate table order_mq_info like mq_info


16. 某个字段模糊查询:




//查询mq_info表中topic字段包含test的所有数据SELECT * FROM mq_info where topic like '%test%';//优化写法:locate(‘substr’,str,pos), 提升查询效率SELECT * FROM mq_info where locate('test', topic)>0


17. 查询条件包含不等于:




//查询mq_info表中topic等于'order_info',并且markinfo不等于'test'的所有数据select * from mq_info where topic = 'order_info' and (markinfo != 'test' or markinfo is null)//注意加上条件markinfo is null,不然Markinfo为null的数据不会被查出来//注意()的作用,加括号是为了提高优先级先执行括号内的查询条件//在这个基础上再进行topic = 'order_info'的查询


18. 分组+条件查询:




student表数据如下:
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/1dca13b08cd8de11571a707ec89ae596..jpg

//查询每个老师带的学生的平均年龄(group by语法)//由于是查每个老师,因此要用TeacherID作为分组条件select TeacherID, avg(Age) as AGE from student group by TeacherID
//查询每个老师带的学生的平均年龄且平均年龄大于12(group by + having语法)//条件是带函数的,就必须用having,而不能用whereselect TeacherID, avg(Age) as AGEfrom student group by TeacherID having avg(Age) > 12


19. 连表查询,主表所有字段+从表部分字段:




//teacher表中没有存学生姓名,只存了学生id//需要将teacher表中create_time大于等于2022-10-28 00:00:00的所有数据以及学生的姓名查出来select teacher.*,student.studentName,from teacher_manage replay LEFT JOIN student_manage student on teacher.student_id=student.id where teacher.create_time >= '2022-10-28 00:00:00';

免责申明:

本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

免责申明:

本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群