MySQL常用语句汇总

news2025/7/29 6:29:46

一、背景

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

二、各类SQL语句

假设想要的表结构如下:
在这里插入图片描述

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','{"demands":1,"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_info
create 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表数据如下:
在这里插入图片描述

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

==============================================================================
以上就是本次的全部内容,都看到这里了,如果对你有帮助,麻烦点个赞+收藏+关注,一键三连啦~

欢迎关注我的vx公众号:程序员杨叔,各类文章都会第一时间在上面发布,持续分享全栈测试知识干货,你的支持就是作者更新最大的动力~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux环境安装

学习Linux首先要准备一个Linux环境。环境的安装有两种途径:买一个云服务器,安装虚拟机。 推荐使用云服务器,较虚拟机方便很多。 云服务器具体来说是Centos 7.6 64位——我也不知道为啥用这个 步骤一: 购买云服务器的主要方式…

“向美好女人致敬”粉红丝带主题活动,谈水果养生之道

传递粉红正能量,践行粉红关爱,“向美好女人致敬”粉红丝带关爱月公益线下活动于11月13日顺利收尾,帮助广大女性更加深入地了解、认识乳腺癌预防和康复治疗,推进乳腺癌防治意识。此次活动邀请到了云南省肿瘤医院乳腺三科科主任、副…

Android通过jni调用本地c/c++接口方法总结

网上有网友问android的原生应用,上层java代码如何通过jni调用本地的c/c++接口或第三方动态库 ?之前搞过android应用开发和底层c/c++接口开发都是一个人搞定,觉得还是蛮简单的。其实没啥难度,如果觉得难只是因为你没有经历过,只要搞过一遍基本就记住了。这里总结下方法留作…

李嘉诚人生最大的错误,并非错过阿里华为,而是套现中国投资欧洲

李嘉诚是很多人心中的生意之神,很多人认为李嘉诚一生从来都没有失败过,他是生意场的常胜将军。可是事实上真的是如此么? 很多人可能不知道,李嘉诚其实也曾经犯下了很大的错误,比如说2003年前后,李嘉诚先后错…

【设计模式】2.工厂模式

文章目录1. 工厂模式概述2. 简单工厂模式3. 工厂方法模式4. 抽象工厂模式1. 工厂模式概述 工厂模式属于创建型模式的一种。 在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重&#xf…

图神经网络学习笔记

1 图神经网络应用 芯片设计、场景分析问题推理、推荐系统、欺诈检测风控相关、道路交通动态流量预测、自动驾驶、无人机等、化学医疗等场景 2 图神经网络基本组成 点(vertex)、边(edge)、全局图(global),图神经网络(GNN,Graph Neural Netw…

Java 集合知识点总结

Java 集合知识点总结总览Collection 接口ListArrayList源码&扩容机制SetQueueMap接口HashMapHashMap源码&底层数据结构HashMap 的遍历LinkedHashMapTreeMapHashtableConcurrentHashMap 源码&底层数据结构本文是个人阅读学习JavaGuide的集合知识的总结笔记。总览 C…

【计算机毕业设计】个人交友网站源码

一、系统截图(需要演示视频可以私聊) 摘 要 本论文主要论述了如何使用JAVA语言开发一个个人交友网站,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中&#xff0…

【最强最全车牌识别算法】支持13种中文车牌识别的云端API部署(可直接获取源码使用)

项目简介 在城市交通管理、视频监控、车辆识别和停车场管理中车辆检测与车牌识别是一项富有挑战而重要的任务。利用深度学习识别不同条件下的车辆及其车牌信息。更具体地说,实时目标检测网络(Yolov5)用于从车辆图像中提取特征并且通过训练对…

[附源码]java毕业设计面试刷题系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

基于分组码的消息验证码的程序实现

目 录 摘 要 I 1 绪论 1 1.1 课题研究背景和意义 1 1.2 课题研究现状 1 2 CBC MAC的特征和基本工作原理 2 2.1 CBC MAC的特征和码集选择的原则 2 2.2 CBC MAC生成原理 2 2.3 CBC MAC模块结构图 3 3 FPGA和VHDL语言 4 3.1 概述 4 3.2 VHDL语言特点 5 3.2.1 常用硬件描述语言简介…

GUI编程--PyQt5--QAbstractButton

文章目录绘制事件设置文本设置快捷键设置自动重复按钮状态排他性按钮的点击按钮点击有效区域按钮的信号QAbstractButton是一个抽象类,无法直接使用。绘制事件 from PyQt5.QtWidgets import QAbstractButton from PyQt5.QtGui import QPainter, QPen, QColor # 定义…

loki单机对接minio

安装minio 请参考minio官方文档部署 创建Buckets 配置Policy策略 创建一个loki的policy,授权内容如下 (权限配置请参考aws的s3权限配置) { "Version": "2012-10-17", "Statement": [ { …

部署安装yapi

配置环境 部署安装yapi 前提是配置环境,需要 nodejs(7.6)mongodb(2.6) 这里我使用docker 安装上面的nodejs 或 mongodb docker 安装 mongodb 教程: 使用docker 安装MongoDB数据库_小周sir的码农的博客-CSDN博客Doc…

删除pip下载的所有第三方库,最快的方法,没有之一

1、问题描述 初学Python的朋友,经常会使用pip下载各种各样的第三方库,例如自动化办公的专用库:python-office。 下载了很多库会占用电脑空间,而且互相之间有很多依赖关系,也不知道怎么样才能卸载干净。 虽然卸载的方法…

一起学习集合框架之 TreeSet

什么是 TreeSet TreeSet 是一个具有唯一元素的二叉树的集合,又被翻译为 树集。Java 中的 TreeSet 类是 Java 集合框架的一部分,从 Java 6 开始,它实现了 NavigableSet 接口(这个接口增加了几个查找元素以及反向遍历的便利方法&am…

【快速上手系列】使用MD5加密对密码进行加密

【快速上手系列】使用MD5加密对密码进行加密 介绍 MD5加密 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)应用程序的密码通常不会明文保存,会使用各种各样的加密算法对密码进行加密MD5算法相对来说较为安全。初始的MD5算法是…

开发微信小程序的流程_微信小程序开发的作用

小程序的快速发展和围绕其诞生的产业链逐步完善,更多的平台和流量开始参与到小程序的开发领域,推出属于平台的小程序接口。相较于传统的线下广告宣传模式,小程序的传播和推广拥有互联网便捷高效的属性。用户扫描二维码就能关注公众号&#xf…

【安全测试学习】自动化注入攻击之 FuzzDB和Burp 组合拳

一、FuzzDB 开源的应用程序模糊测试数据库,包含了各种攻击 payload 的测试用例集合。 主要功能: OS 命令注入 目录遍历 文件上传绕过 身份验证绕过 XSS SQL 注入 HTTP 头注入 CRLF 注入 NoSQL 注入等 还包含了一些用不同语言写成的 webshell 与常用的账…

什么是 MQ

MQ的概念 MQ (Message Queue)消息队列,是在消息传输过程中存储消息的容器。多用于分布式系统之间的通信。 队列是基础数据结构中 “先进先出” 的一种数据结构。 消息对列,指把要传输的数据消息放在队列中,用队列机制…