一、背景 日常测试开发工作中会用到各类SQL语句,很多时候都是想用的时候才发现语句细节记不清楚了,临时网上搜索SQL语法,挺费时费力的,语法还不一定是对的。 因此汇总整理了一下MySQL最常用的各类语句,以后就不用再到处去搜了。二、各类SQL语句 假设想要的表结构如下: 1。创建表:CREATETABLEIFNOTEXISTSmqinfo(idINT(12)UNSIGNEDAUTOINCREMENTCOMMENTmq信息数据库自增id,topicVARCHAR(255)NOTNULLCOMMENTmqtopic名称,messagelongtextNOTNULLCOMMENTmqmessage内容,markinfoVARCHAR(255)COMMENT该MQ的标识字段,PRIMARYKEY(id))ENGINEINNODBDEFAULTCHARSETutf8;2。查询表中所有数据:3。查询表中前20条数据:selectfrommqinfolimit20;4。表中新增一条数据:insertintomqinfo(topic,message,markinfo)values(mqtest,{demands:1,testId:165,operation:3},testInfo001)5。修改表中某个字段的值:将id1的数据的topic都改为mqUpdatetestupdatemqinfosettopicmqUpdatetestwhereid1将id1或topicmqtest的数据的topic都改为mqUpdatetest,markinfo都改为testInfoupdateupdatemqinfosettopicmqUpdatetest,markinfotestInfoupdatewhereid1ortopicmqtest6。删除表中指定条件的某一条数据:deletefrommqinfowhereid17。删除表中所有的数据:deletefrommqinfo8。删除表中某一个字段:删除mqinfo表中的markinfo字段altertablemqinfodropcolumnmarkinfo9。修改表中某个字段的类型:修改mqinfo表中的message字段类型为varchar类型altertablemqinfomodifycolumnmessagevarchar(255);10。修改表中某个字段的备注信息:修改mqinfo表中的markinfo字段的备注信息为自定义该MQ的唯一标识altertablemqinfomodifymarkinfovarchar(255)comment自定义该MQ的唯一标识11。修改表中某个字段的名称:把mqinfo表中的markinfo字段名改为descriptionInfo,类型是varchar(255)altertablemqinfochangemarkinfodescriptionInfovarchar(255)12。向已有的表中新增新的字段:向mqinfo表新增inserttime字段,字段类型为datetime,备注信息为MQ落库时间altertablemqinfoaddinserttimedatetimecommentMQ落库时间13。修改已有表的表名:altertablemqinforenametocartmqinfo14。修改数据库中字段的顺序:将inserttime字段在表中的排列顺序,修改为显示在createtime字段后面altertablemqinfomodifyinserttimetinyint(4)aftercreatetimeFIRST为可选参数,指的是将字段1修改为表的第一个字段,AFTER字段名2是将字段1插入到字段2的后面ALTERTABLEMODLFY字段名1数据类型FIRSTAFTER字段名215。复制已有的表结构生成一张新表:复制mqinfo表结构生成一张新表ordermqinfocreatetableordermqinfolikemqinfo16。某个字段模糊查询:查询mqinfo表中topic字段包含test的所有数据SELECTFROM优化写法:locate(‘substr’,str,pos),提升查询效率SELECTFROMmqinfowherelocate(test,topic)017。查询条件包含不等于:查询mqinfo表中topic等于orderinfo,并且markinfo不等于test的所有数据selectfrommqinfowheretopicorderinfoand(markinfo!testormarkinfoisnull)注意加上条件markinfoisnull,不然Markinfo为null的数据不会被查出来注意()的作用,加括号是为了提高优先级先执行括号内的查询条件在这个基础上再进行topicorderinfo的查询18。分组条件查询: student表数据如下: 查询每个老师带的学生的平均年龄(groupby语法)由于是查每个老师,因此要用TeacherID作为分组条件selectTeacherID,avg(Age)asAGEfromstudentgroupbyTeacherID查询每个老师带的学生的平均年龄且平均年龄大于12(groupbyhaving语法)条件是带函数的,就必须用having,而不能用whereselectTeacherID,avg(Age)asAGEfromstudentgroupbyTeacherIDhavingavg(Age)1219。连表查询,主表所有字段从表部分字段:teacher表中没有存学生姓名,只存了学生id需要将teacher表中createtime大于等于2022102800:00:00的所有数据以及学生的姓名查出来selectteacher。,student。studentName,fromteachermanagereplayLEFTJOINstudentmanagestudentonteacher。studentidstudent。idwhereteacher。createtime2022102800:00:00; 以上就是本次的全部内容,都看到这里了,如果对你有帮助,麻烦点个赞收藏关注,一键三连啦 欢迎关注我的微信公众号:程序员杨叔,各类文章都会第一时间在上面发布,持续分享全栈测试知识干货,你的支持就是作者更新最大的动力