100条常用SQL语句

一、基本查询语句

查询所有数据:
SELECT * FROM 表名;

查询特定列:
SELECT 列名1, 列名2 FROM 表名;

条件查询:
SELECT * FROM 表名 WHERE 条件;

模糊查询:
SELECT * FROM 表名 WHERE 列名 LIKE ‘模式%’;

排序查询:
SELECT * FROM 表名 ORDER BY 列名 ASC|DESC;

限制返回行数:
SELECT * FROM 表名 LIMIT 10;

去重查询:
SELECT DISTINCT 列名 FROM 表名;

二、聚合与分组

聚合函数 - 计数:
SELECT COUNT(*) FROM 表名;

分组查询:
SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;

条件分组:
SELECT 列名, COUNT() FROM 表名 GROUP BY 列名 HAVING COUNT() > 1;

计算总和:
SELECT SUM(列名) FROM 表名;

计算平均值:
SELECT AVG(列名) FROM 表名;

计算最大值:
SELECT MAX(列名) FROM 表名;

计算最小值:
SELECT MIN(列名) FROM 表名;

三、数据操作

插入数据:
INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2);

批量插入数据:
INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2), (值3, 值4);

更新数据:
UPDATE 表名 SET 列名 = 新值 WHERE 条件;

删除数据:
DELETE FROM 表名 WHERE 条件;

四、表操作

创建表:
CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型);

删除表:
DROP TABLE 表名;

修改表结构:
ALTER TABLE 表名 ADD 列名 数据类型;

删除表中的列:
ALTER TABLE 表名 DROP COLUMN 列名;

重命名表:
ALTER TABLE 旧表名 RENAME TO 新表名;

五、索引与视图

创建索引:
CREATE INDEX 索引名 ON 表名 (列名);

删除索引:
DROP INDEX 索引名;

创建视图:
CREATE VIEW 视图名 AS SELECT * FROM 表名;

删除视图:
DROP VIEW 视图名;

六、连接查询
内连接:
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;

左连接:
SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;

右连接:
SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;

全连接:
SELECT * FROM 表1 FULL OUTER JOIN 表2 ON 表1.列名 = 表2.列名;

七、子查询与集合

子查询:
SELECT * FROM 表名 WHERE 列名 IN (SELECT 列名 FROM 其他表名);

存在查询:
SELECT * FROM 表名 WHERE EXISTS (SELECT 1 FROM 其他表名 WHERE 条件);

联合查询:
SELECT 列名 FROM 表1 UNION SELECT 列名 FROM 表2;

八、日期与时间

获取当前时间:
SELECT NOW();

获取当前日期:
SELECT CURDATE();

日期加法:
SELECT DATE_ADD(日期, INTERVAL 1 DAY);

日期减法:
SELECT DATE_SUB(日期, INTERVAL 1 DAY);

格式化日期:
SELECT DATE_FORMAT(日期, ‘%Y-%m-%d’);

九、字符串处理

字符串连接:
SELECT CONCAT(列名1, 列名2) FROM 表名;

字符串长度:
SELECT LENGTH(列名) FROM 表名;

字符串截取:
SELECT SUBSTRING(列名, 1, 5) FROM 表名;

查找字符串位置:
SELECT LOCATE(‘子串’, 列名) FROM 表名;

大写转换:
SELECT UPPER(列名) FROM 表名;

小写转换:
SELECT LOWER(列名) FROM 表名;

去除空格:
SELECT TRIM(列名) FROM 表名;

十、其他高级功能

使用CASE语句:
SELECT 列名, CASE WHEN 条件 THEN ‘值1’ ELSE ‘值2’ END FROM 表名;

使用IF语句:
SELECT 列名, IF(条件, ‘值1’, ‘值2’) FROM 表名;

使用COALESCE函数:
SELECT COALESCE(列名, ‘默认值’) FROM 表名;

使用NULLIF函数:
SELECT NULLIF(列名1, 列名2) FROM 表名;

获取唯一值的数量:
SELECT COUNT(DISTINCT 列名) FROM 表名;

使用GROUP_CONCAT:
SELECT GROUP_CONCAT(列名) FROM 表名 GROUP BY 其他列名;

十一、事务管理

事务开始:
BEGIN;

提交事务:
COMMIT;

回滚事务:
ROLLBACK;

十二、游标与存储过程
创建游标:
DECLARE 游标名 CURSOR FOR SELECT 列名 FROM 表名;

打开游标:
OPEN 游标名;

获取游标数据:
FETCH 游标名 INTO 变量名;

关闭游标:
CLOSE 游标名;

创建存储过程:
CREATE PROCEDURE 存储过程名 AS BEGIN … END;
调用存储过程:

CALL 存储过程名();

十三、函数与触发器
创建函数:
CREATE FUNCTION 函数名() RETURNS 数据类型 AS BEGIN … END;

调用函数:
SELECT 函数名();

创建触发器:
CREATE TRIGGER 触发器名 BEFORE INSERT ON 表名 FOR EACH ROW SET 新列 = ‘值’;

删除触发器:
DROP TRIGGER 触发器名;

十四、系统信息查询
查询当前用户:
SELECT CURRENT_USER();

查询当前数据库:
SELECT DATABASE();

查询表的行数和大小:
SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA = ‘数据库名’;

获取表的创建时间:
SELECT CREATE_TIME FROM information_schema.TABLES WHERE TABLE_NAME = ‘表名’;

获取表的修改时间:
SELECT UPDATE_TIME FROM information_schema.TABLES WHERE TABLE_NAME = ‘表名’;

十五、其他实用查询

使用LIMIT与ORDER BY结合:
SELECT * FROM 表名 ORDER BY 列名 LIMIT 10;

查询表的外键约束:
SELECT CONSTRAINT_NAME, TABLE_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = ‘数据库名’;

查询表的主键约束:
SELECT CONSTRAINT_NAME, TABLE_NAME FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = ‘数据库名’ AND CONSTRAINT_TYPE = ‘PRIMARY KEY’;

使用ROLLUP进行分组汇总:
SELECT 列名, SUM(列名2) FROM 表名 GROUP BY 列名 WITH ROLLUP;

获取前N条记录:
SELECT * FROM 表名 LIMIT N;

获取最后N条记录:
SELECT * FROM 表名 ORDER BY 列名 DESC LIMIT N;

使用NOT EXISTS进行条件判断:
SELECT * FROM 表名 WHERE NOT EXISTS (SELECT 1 FROM 其他表名 WHERE 条件);

使用IN进行条件判断:
SELECT * FROM 表名 WHERE 列名 IN (值1, 值2);

使用NOT IN进行条件判断:
SELECT * FROM 表名 WHERE 列名 NOT IN (值1, 值2);

使用UNION ALL:
SELECT 列名 FROM 表1 UNION ALL SELECT 列名 FROM 表2;

十六、性能优化

使用EXPLAIN分析查询:
EXPLAIN SELECT * FROM 表名 WHERE 条件;

优化索引:
CREATE INDEX 索引名 ON 表名 (列名);

使用临时表:
CREATE TEMPORARY TABLE 临时表名 AS SELECT * FROM 表名;

查询表的索引:
SHOW INDEX FROM 表名;

查询数据库版本:
SELECT VERSION();

十七、常见错误处理

捕获错误:
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN … END;

输出错误信息:
SELECT ERROR_MESSAGE();

使用事务处理错误:
BEGIN; – 开始事务
– 执行SQL语句
– 如果有错误,ROLLBACK

十八、数据备份与恢复
备份数据库:
mysqldump -u 用户名 -p 数据库名 > 备份文件.sql

恢复数据库:
mysql -u 用户名 -p 数据库名 < 备份文件.sql

十九、数据导入与导出

导入数据:
LOAD DATA INFILE ‘文件路径’ INTO TABLE 表名;

导出数据:
SELECT * INTO OUTFILE ‘文件路径’ FROM 表名;

二十、常用工具与命令

显示当前数据库:
SELECT DATABASE();

显示所有数据库:
SHOW DATABASES;

显示所有表:
SHOW TABLES;

显示表结构:
DESCRIBE 表名;

显示当前连接信息:
SHOW PROCESSLIST;

显示数据库使用情况:
SELECT table_schema AS ‘数据库’, SUM(data_length + index_length) / 1024 / 1024 AS ‘大小(MB)’ FROM information_schema.TABLES GROUP BY table_schema;

显示表的行数:
SELECT COUNT(*) FROM 表名;

显示用户权限:
SHOW GRANTS FOR ‘用户名’@‘主机名’;

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

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

相关文章

Visual Studio编译WPF项目生成的文件介绍

文章目录一、Summarize主要输出文件1. **可执行文件 (.exe)**2. **程序集文件 (.dll)**3. **PDB 文件 (.pdb)**资源与配置文件1. **XAML 编译文件 (.baml)**2. **资源文件 (.resources)**3. **应用程序配置文件 (.config)**依赖文件1. **引用的 NuGet 包**2. **引用的框架程序集…

「Chrome 开发环境快速屏蔽 CORS 跨域限制详细教程」*

Chrome 开发环境快速屏蔽 CORS 跨域限制【超详细教程】 &#x1f4e2; 为什么需要临时屏蔽 CORS&#xff1f; 在日常前后端开发中&#xff0c;我们经常会遇到这样的报错&#xff1a; Access to fetch at https://api.example.com from origin http://localhost:3000 has been …

Linux命令大全-df命令

一、简介df&#xff08;英文全拼&#xff1a;display free disk space&#xff09; 命令用于显示或查看文件系统&#xff08;或磁盘&#xff09;的空间使用情况&#xff0c;包括总容量、已用空间、可用空间、使用率和挂载点等信息。二、语法df [选项]... [文件]...参数参数说明…

《程序员修炼之道》第一二章读书笔记

最近在看《程序员修炼之道&#xff1a;通向务实的最高境界》这一本书&#xff0c;记录一下看书时的一点浅薄感悟。务实程序员不仅是一种技能水平的体现&#xff0c;更是一种持续修炼、不断反思并主动承担责任的过程。对自己的行为负责是务实哲学的基石之一。在重构CRM时面对文档…

ArcGISPro应用指南:使用ArcGIS Pro创建与优化H3六边形网格

H3 是由 Uber 开发的一个开源地理空间分析框架&#xff0c;旨在通过将地球表面划分为等面积的六边形网格来支持各种地理空间数据分析任务。每个六边形单元在 H3 系统中都有一个独一无二的标识符&#xff0c;即 H3 指数。这种网格系统不仅能够覆盖全球&#xff0c;而且适用于任何…

xss-dom漏洞

目录 靶场搭建 第一关 第二关 第三关 第四关 第五关 第六关 第七关 第八关 靶场下载地址&#xff1a;https://github.com/PwnFunction/xss.pwnfunction.com 靶场搭建 将文件用clone 下载到ubuntu&#xff0c; 然后进入 cd xss.pwnfunction.com/hugo/ 这个目录下 hu…

BPE(字节对编码)和WordPiece 是什么

BPE(字节对编码)和WordPiece 是什么 BPE(字节对编码)和WordPiece 是自然语言处理中常用的子词分词算法,它们通过将文本拆分为更小的语义单元来平衡词汇表大小和表达能力。 BPE(Byte Pair Encoding,字节对编码) 原理 初始化:将文本按字符(或Unicode字节)拆分为最小…

Java行为型模式---状态模式

状态模式基础概念状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;其核心思想是允许对象在内部状态发生改变时改变它的行为&#xff0c;对象看起来好像修改了它的类。状态模式将状态相关的行为封装在独立的状态类中&#xff0c;并将状态转换逻辑…

重学Framework Input模块:如何实现按键一键启动Activity-学员作业

需求背景&#xff1a; 近来vip群里学员朋友有问道一个需求&#xff0c;大概需求就是他们做TV的Framework开发&#xff0c;想要遥控器有一个新定义的儿童节目按键&#xff0c;想要实现这个按键按下后就跳转到儿童节目的Activity。需求拆解及作业要求&#xff1a; 针对上面需求&a…

bmp图像操作:bmp图像保存及raw与bmp转换

1. 保存bmp图像&保存一张正弦图像到D:\1.bmp /********************************************** * fileName bmpinc.h * brief 对bmp文件的操作&#xff0c;包括&#xff1a; * - saveBmp&#xff1a;保存bmp文件 * - Save…

SpringAI——提示词(Prompt)、提示词模板(PromptTemplate)

Prompt 是引导 AI 模型生成特定输出的输入格式&#xff0c;Prompt 的设计和措辞会显著影响模型的响应。最开始Prompt只是单纯的文本文字&#xff0c;后面可以包含占位符&#xff0c;可以识别消息的角色。比如包含占位符的Prompt,也就是我们讲的消息模板(PromptTemplate)&#x…

【深度学习笔记 Ⅰ】5 参数和超参数

在深度学习中&#xff0c;参数&#xff08;Parameters&#xff09; 和 超参数&#xff08;Hyperparameters&#xff09; 是模型训练中两个核心概念&#xff0c;它们共同决定了模型的性能&#xff0c;但作用方式和优化方法截然不同。以下是详细对比与解析&#xff1a;1. 参数&am…

Linux 阻塞等待框架

在 Linux 设备驱动开发中&#xff0c;阻塞机制 是处理资源暂时不可用&#xff08;如设备未准备好数据、缓冲区满等&#xff09;的核心手段。驱动程序可以将被阻塞的进程设置成休眠状态&#xff0c;然后&#xff0c;在资源可用后&#xff0c;再将该进程唤醒。 在 Linux 驱动开发…

PCIe RAS学习专题(3):AER内核处理流程梳理

目录 一、AER内核处理整体流程梳理 二、AER代码重要部分梳理 1、AER初始化阶段 2、中断上半部 aer_irq 3、中断下半部 aer_isr 3.1、aer_isr_one_error 3.2、find_source_device 3.3、aer_process_err_devices 3.4、handle_error_source 3.5、pcie_do_recovery 整体逻…

​HAProxy负载均衡集群概述

前言&#xff1a; 在现代分布式系统中&#xff0c;负载均衡和高可用性是保障服务稳定性和性能的关键技术。HAProxy 作为一款高性能的 TCP/HTTP 负载均衡器&#xff0c;凭借其轻量级、高并发处理能力和灵活的配置机制&#xff0c;成为构建高可用架构的核心组件之一。通过智能的流…

ELN:生物医药科研的数字化引擎——衍因科技引领高效创新

在生物医药研究领域&#xff0c;实验数据的准确记录与管理是科研成败的关键。想象一个场景&#xff1a;某顶尖医学院实验室&#xff0c;研究员小张正为一项抗癌药物实验焦头烂额。纸质记录本中&#xff0c;数据混乱、协作困难&#xff0c;导致实验重复率高达20%。引入衍因科技的…

暑假---作业2

学习目标&#xff1a;xss-1abs 1-8关python美现自动化布尔自注的2、代码进行优化(二分查找)学习内容&#xff1a;1.xss-1abs 1-8关1<h2 align"center">欢迎用户test</h2>2 <script> alert (1)</script&gt<center> <form action&…

【Tensor数据转换】——深度学习.Torch框架

目录 1 Tensor与Numpy 1.1 张量转Numpy 1.2 Numpy转张量 1 Tensor与Numpy 1.1 张量转Numpy 调用numpy()方法可以把Tensor转换为Numpy&#xff0c;此时内存是共享的。 使用copy()方法可以避免内存共享 import torch import numpy as np# tensor转numpy:numpy() def test0…

基于Tranformer的NLP实战(5):BERT实战-基于Pytorch Lightning的文本分类模型

文本分类作为自然语言处理中的基础任务&#xff0c;能够帮助我们将海量医学摘要自动归类到具体疾病领域中。本文将基于NVIDIA NeMo框架&#xff0c;构建一个用于医学疾病摘要分类的深度学习应用&#xff0c;支持将摘要划分为三类&#xff1a;癌症类疾病、神经系统疾病及障碍、以…

14-链路聚合

链路聚合技术 一 链路聚合概述链路聚合定义链路聚合是把多条物理链路聚合在一起&#xff0c;形成一条逻辑链路。应用在交换机、路由器、服务器间链路。分为三层链路聚合和二层链路聚合。二 链路聚合的作用 1. 链路聚合模式静态聚合模式 端口不与对端设备交互信息。选择参考端口…