100条常用SQL语句

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 '用户名'@'主机名'; 

Read more

安装 启动 使用 Neo4j的超详细教程

安装 启动 使用 Neo4j的超详细教程

最近在做一个基于知识图谱的智能生成项目。需要用到Neo4j图数据库。写这篇文章记录一下Neo4j的安装及其使用。 一.Neo4j的安装 1.首先安装JDK,配环境变量。(参照网上教程,很多) Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JAVA SE的JDK。从Oracle官方网站下载 Java SE JDK。我使用的版本是JDK1.8 2.官网上安装neo4j。 官方网址:https://neo4j.com/deployment-center/  在官网上下载对应版本。Neo4j应用程序有如下主要的目录结构: bin目录:用于存储Neo4j的可执行程序; conf目录:用于控制Neo4j启动的配置文件; data目录:用于存储核心数据库文件; plugins目录:用于存储Neo4j的插件; 3.配置环境变量 创建主目录环境变量NEO4J_HOME,并把主目录设置为变量值。复制具体的neo4j文件地址作为变量值。 配置文档存储在conf目录下,Neo4j通过配置文件neo4j.conf控制服务器的工作。默认情况下,不需

企业微信群机器人Webhook配置全攻略:从创建到发送消息的完整流程

企业微信群机器人Webhook配置全攻略:从创建到发送消息的完整流程 在数字化办公日益普及的今天,企业微信作为国内领先的企业级通讯工具,其群机器人功能为团队协作带来了极大的便利。本文将手把手教你如何从零开始配置企业微信群机器人Webhook,实现自动化消息推送,提升团队沟通效率。 1. 准备工作与环境配置 在开始创建机器人之前,需要确保满足以下基本条件: * 企业微信账号:拥有有效的企业微信管理员或成员账号 * 群聊条件:至少包含3名成员的群聊(这是创建机器人的最低人数要求) * 网络环境:能够正常访问企业微信服务器 提示:如果是企业管理员,建议先在"企业微信管理后台"确认机器人功能是否已对企业开放。某些企业可能出于安全考虑会限制此功能。 2. 创建群机器人 2.1 添加机器人到群聊 1. 打开企业微信客户端,进入目标群聊 2. 点击右上角的群菜单按钮(通常显示为"..."或"⋮") 3. 选择"添加群机器人"选项 4.

Flowise物联网融合:与智能家居设备联动的应用设想

Flowise物联网融合:与智能家居设备联动的应用设想 1. Flowise:让AI工作流变得像搭积木一样简单 Flowise 是一个真正把“AI平民化”落地的工具。它不像传统开发那样需要写几十行 LangChain 代码、配置向量库、调试提示词模板,而是把所有这些能力打包成一个个可拖拽的节点——就像小时候玩乐高,你不需要懂塑料怎么合成,只要知道哪块该拼在哪,就能搭出一座城堡。 它诞生于2023年,短短一年就收获了45.6k GitHub Stars,MIT协议开源,意味着你可以放心把它用在公司内部系统里,甚至嵌入到客户交付的产品中,完全不用担心授权问题。最打动人的不是它的技术多炫酷,而是它真的“不挑人”:产品经理能搭出知识库问答机器人,运营同学能配出自动抓取竞品文案的Agent,连刚学Python两周的实习生,也能在5分钟内跑通一个本地大模型的RAG流程。 它的核心逻辑很朴素:把LangChain里那些抽象概念——比如LLM调用、文档切分、向量检索、工具调用——变成画布上看得见、摸得着的方块。你拖一个“Ollama LLM”节点,再拖一个“Chroma Vector

OpenClaw配置Bot接入飞书机器人+Kimi2.5

OpenClaw配置Bot接入飞书机器人+Kimi2.5

上一篇文章写了Ubuntu_24.04下安装OpenClaw的过程,这篇文档记录一下接入飞书机器+Kimi2.5。 准备工作 飞书 创建飞书机器人 访问飞书开放平台:https://open.feishu.cn/app,点击创建应用: 填写应用名称和描述后就直接创建: 复制App ID 和 App Secret 创建成功后,在“凭证与基础信息”中找到 App ID 和 App Secret,把这2个信息复制记录下来,后面需要配置到openclaw中 配置权限 点击【权限管理】→【开通权限】 或使用【批量导入/导出权限】,选择导入,输入以下内容,如下图 点击【下一步,确认新增权限】即可开通所需要的权限。 配置事件与回调 说明:这一步的配置需要先讲AppId和AppSecret配置到openclaw成功之后再设置订阅方式,