MySQL 常用 SQL 语句大全
1. 基本查询
查询所有记录和字段
SELECT * FROM table_name;
查询特定字段
SELECT column1, column2 FROM table_name;
查询并限制结果
SELECT column1, column2 FROM table_name LIMIT 10;
条件查询
SELECT column1, column2 FROM table_name WHERE condition;
模糊匹配
SELECT column1 FROM table_name WHERE column2 LIKE 'pattern%';
匹配多个值
SELECT column1 FROM table_name WHERE column2 IN (value1, value2);
不匹配某些值
SELECT column1 FROM table_name WHERE column2 NOT IN (value1, value2);
2. 数据插入
插入单条记录
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
插入多条记录
INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, value4);
从另一个表插入数据
INSERT INTO table1 (column1, column2)
SELECT column1, column2 FROM table2 WHERE condition;
3. 数据更新
更新单条记录
UPDATE table_name SET column1 = value1 WHERE condition;
批量更新
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
基于其他表的更新(关联更新)
UPDATE table1
JOIN table2 ON table1.common_column = table2.common_columnSET table1.column1 = table2.column2
WHERE table2.condition;
4. 数据删除
删除单条记录
DELETE FROM table_name WHERE condition;
批量删除
DELETE FROM table_name WHERE condition;
删除表中的所有记录(也叫截断表)
TRUNCATE TABLE table_name;
5. 表操作
创建表
CREATE TABLE table_name (id INT AUTO_INCREMENT PRIMARY KEY,column1 VARCHAR(255) NOT NULL,column2 INT DEFAULT 0,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
修改表结构
添加列
ALTER TABLE table_name ADD column_name VARCHAR(255);
删除列
ALTER TABLE table_name DROP COLUMN column_name;
修改列类型
ALTER TABLE table_name MODIFY column_name INT;
重命名列
ALTER TABLE table_name CHANGE old_column_name new_column_name VARCHAR(255);
删除表
DROP TABLE table_name;
删除数据库
DROP DATABASE database_name;
6. 索引管理
创建索引
CREATE INDEX index_name ON table_name (column_name);
创建唯一索引
CREATE UNIQUE INDEX index_name ON table_name (column_name);
删除索引
DROP INDEX index_name ON table_name;
7. 表连接
内连接(INNER JOIN)
SELECT * FROM table1
INNER JOIN table2 ON table1.common_column = table2.common_column;
左连接(LEFT JOIN)
SELECT * FROM table1
LEFT JOIN table2 ON table1.common_column = table2.common_column;
右连接(RIGHT JOIN)
SELECT * FROM table1
RIGHT JOIN table2 ON table1.common_column = table2.common_column;
全连接(FULL JOIN)
SELECT * FROM table1
LEFT JOIN table2 ON table1.common_column = table2.common_column
UNION
SELECT * FROM table1
RIGHT JOIN table2 ON table1.common_column = table2.common_column;
8. 聚合函数
计数
SELECT COUNT(*) FROM table_name;
平均值
SELECT AVG(column_name) FROM table_name;
总和
SELECT SUM(column_name) FROM table_name;
最大值
SELECT MAX(column_name) FROM table_name;
最小值
SELECT MIN(column_name) FROM table_name;
9. 分组与排序
分组
SELECT column1, COUNT(*) FROM table_name
GROUP BY column1;
排序
SELECT * FROM table_name
ORDER BY column1 ASC;SELECT * FROM table_name
ORDER BY column1 DESC;
分页
SELECT * FROM table_name
LIMIT 10 OFFSET 20;
10. 子查询
在 WHERE 子句中
SELECT * FROM table_name
WHERE column1 = (SELECT MAX(column1) FROM table_name);
在 FROM 子句中
SELECT * FROM (SELECT column1, column2 FROM table_name) AS subquery
WHERE condition;
11. 条件表达式
使用 CASE
SELECT column1,CASEWHEN condition1 THEN 'result1'WHEN condition2 THEN 'result2'ELSE 'default'END AS new_column
FROM table_name;
12. 事务管理
开始事务
START TRANSACTION;
提交事务
COMMIT;
回滚事务
ROLLBACK;
13. 备份与恢复
备份
mysqldump -u username -p database_name > backup_file.sql
恢复
mysql -u username -p database_name < backup_file.sql
14. 用户管理
创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
授予权限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';
撤销权限
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';
删除用户
DROP USER 'username'@'host';
15. 表和数据库信息
查看表结构
DESCRIBE table_name;
查看数据库列表
SHOW DATABASES;
查看表列表
SHOW TABLES;
查看表的索引
SHOW INDEX FROM table_name;
查看表的创建语句
SHOW CREATE TABLE table_name;
16. 查询优化
查看查询计划
EXPLAIN SELECT * FROM table_name WHERE condition;
查看慢查询日志
SHOW VARIABLES LIKE 'slow_query_log';
启用慢查询日志:
SET GLOBAL slow_query_log = 'ON';
查看当前的数据库状态
SHOW STATUS;
17. 其他实用操作
计算字段的平均值和总和
SELECT column1, AVG(column2), SUM(column2) FROM table_name GROUP BY column1;
使用 GROUP_CONCAT 函数
SELECT column1, GROUP_CONCAT(column2) FROM table_name GROUP BY column1;
这些 SQL 语句和技巧覆盖了数据库操作的广泛领域,从基础查询到高级管理和优化。掌握这些可以帮助你更高效地管理和操作 MySQL 数据库。
相关文章:
MySQL 常用 SQL 语句大全
1. 基本查询 查询所有记录和字段 SELECT * FROM table_name; 查询特定字段 SELECT column1, column2 FROM table_name; 查询并限制结果 SELECT column1, column2 FROM table_name LIMIT 10; 条件查询 SELECT column1, column2 FROM table_name WHERE condition; 模糊匹…...
[Spring] Spring事务与事务的传播
🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...
Java 网络编程练习
InternetExercise1 package InternetExercise20240815;public class InternetExercise1 {public static void main(String[] args) {// 网络编程// 在网络通信协议下,不同计算机上面运行的程序,可以实现不同计算机上的数据传输// 网络编程三要素// 1.IP…...
中国科技统计年鉴,数据覆盖1991-2022年多年份
基本信息. 数据名称: 中国科技统计年鉴 数据格式: excel 数据时间: 1991-2022年 数据几何类型: xlsx 数据坐标系: WGS84 数据来源:国家统计局 数据预览: 数据可视化....
大模型的训练过程
大模型的训练是一个复杂的过程,涉及多个步骤和技术。下面我将概述大模型训练的主要流程,包括预训练、微调等关键阶段,并解释一些常见的技术和策略。 1. 数据准备 数据收集:收集大量多样化的数据,包括文本、图像、音频…...
4款ai在线改写工具,帮你轻松一键智能改写文章
在当今数字化内容创作的浪潮中,ai技术的应用为我们带来了极大的便利,尤其是在文章改写方面。以下将为大家详细分享四款出色的ai在线改写工具,从而帮助大家提升创作效率和质量。 ai在线改写工具一:智媒ai伪原创工具 它是一款备受好…...
Maven Mirror - 仓库镜像的介绍和配置
Maven Mirror(Maven镜像)是Maven构建工具中用于优化依赖下载速度和提高构建效率的一种机制。 在使用 Maven 构建应用程序时,Maven 默认会从 Maven 官方的中央仓库中下载依赖包。但是,在该仓库受到网络限制或访问速度过慢等问题时&…...
DevEcoStudio对Gitee进行变基与合并
当尝试将本地分支的更改推送到远程仓库,但是远程仓库中的该分支已经有了您本地分支中没有的提交时,会出现这个提示。 具体来说,这个提示意味着: 推送被拒绝:不能直接将更改推送到远程仓库,因为远程仓库中…...
2024 NVIDIA Summer Camp Day1:构建RAG多模态AI Agent
下载材料和课件等 课程相关资料下载链接: https://pan.baidu.com/s/15Y-gmsfeYCgKF-M3TJZVgg?pwdfafe 提取码: fafe 1.课件 链接:https://pan.baidu.com/s/15JTy9CqnesXSlPiwwrUmjA?pwd1111 提取码:1111 2.phi3量化大模型 链接:http…...
微服务之间的通信?
微服务之间的通信是微服务架构中的关键部分,它决定了服务之间如何进行数据交换和协同工作。微服务架构通过将大型应用拆分成多个小型、独立的服务,每个服务专注于完成特定的业务功能,从而提高了系统的可伸缩性、可维护性和可靠性。以下是微服…...
Elasticsearch 聚合概览及示例
Elasticsearch 是一个强大的搜索引擎,除了提供搜索功能外,它还内置了丰富的聚合功能,允许用户对数据进行统计、分析和运算。聚合可以帮助我们理解数据的分布和统计特性,是数据探索和报告的重要工具。本文将介绍 Elasticsearch 中的…...
【抓包】- Fiddler抓包教程,使用Fiddle抓取B站视频;ffmpeg的使用方法
一、预准备:过滤器设置 打开fiddler后,清空内容,然后播放视频。 找到与B站视频资源相关的回应,而后在“原始(raw)”标签中查看它的host信息。 发现B站视频资源的服务器DNS地址为【*bilivideo.cn】、【*bi…...
Linux网络配置和维护命令(三)
文章目录 网络接口配置-network-scripts文件远程复制文件-scp定义主机名与IP地址的关系-hosts文件登录远程主机-sshIP/主机名配置DNS域名解析服务器-resolv.conf文件 本篇讲解:网络接口配置-network-scripts文件、远程复制文件-scp、定义主机、名与IP地址的关系-hos…...
代码随想录算法训练营第二天 |209.长度最小子数组; 59.螺旋矩阵|| ; 前缀和
今日任务 209.长度最小子数组; 59.螺旋矩阵|| 58.区间和 44.开发商购买土地 209.长度最小的子数组 题目建议: 本题关键在于理解滑动窗口,这个滑动窗口看文字讲解 还挺难理解的,建议大家先看视频讲解。 拓展题目可以先不做。 题目链接…...
Go语言基础--数据类型(整型、字符型)
转义字符 常用的转义字符有如下: 1)\t : 表示一个制表符,通常使用它可以排版。 2)\n:换行符 3)\\:一个\ 4) \":一个" 5)\r:一个回车 数据类型概述 在 Go 编程语言中,数据类型用于声明函数和变量…...
SpringBoot配置--Profile
目录 使用profile 的原因? proflie 的配置方式 多profile文件方式 profile 激活方式 1 配置文件 2 命令行参数 小结 使用profile 的原因? 用来完成不同环境下,配置动态切换功能的(具体什么意思呢?假设你在A电脑…...
在Go中理解栈和先进先出原则
Go是一种功能强大的编程语言,提供了丰富的数据结构和算法。堆栈是计算机科学中的基本数据结构之一。在本博文中,我们将探讨如何在 Go 中实现和使用堆栈,以及堆栈如何遵循先进先出 (FIFO) 原则。 首先,让我们来看看堆栈是什么以及它…...
Ted靶机渗透测试
一、靶机下载地址 Ted: 1 ~ VulnHub 二、信息收集 1、主机发现 # 使用命令 nmap 192.168.145.0/24 -sn | grep -B 2 "00:0C:29:E2:36:FA" 2、端口扫描 # 使用命令 nmap 192.168.145.214 -p- -sV 3、指纹识别 # 使用命令 whatweb "http://192.168.145.214&…...
【chart.js】折线图给点添加点击事件
var mychart new Chart( ctx,{ type:line", … options:{ hover:{ // 此处最重要,决定是否能选中绑定的点 mode:“nearest” } , onClick:function(event,elements){ // 此为 被点击 的点 firstelement elements[0] // 这个点 属于第几个数据集合…...
旧手机NAS方案
这里写目录标题 1、参考2、alpine-term-v16.0-release.apk下载安装3、电脑端ssh连接3、安装docker3.1 网络配置3.2 配置APK源 1、参考 【Docker与Termux】闲置旧安卓手机上的NAS无缝部署方案 https://blog.csdn.net/AnRanGeSi/article/details/138717589 【Alpine Term】Andr…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
