MySQL SQL语句集
简介:SQL语言分4大类,分别是数据定义语言(DDL),数据操纵语言(DML),数据查询语言(DQL),数据控制语言(DCL)。
一、DDL(Data Definition Language)
1. 数据库
A. 创建数据库:CREATE DATABASE [IF NOT EXISTS] 数据库名,例如:create database `my-user` default charset utf8;;
B. 删除数据库:DROP DATABASE [IF EXISTS] 数据库名;
C. 查看所有数据库:SHOW DATABASES;
C. 切换数据库:USE 数据库名。
2. 数据表
A. 创建表(包括索引):
CREATE TABLE [IF NOT EXISTS] 表名 ( 字段名1 列类型 [属性] [索引], ... 字段名n 列类型 [属性] [索引] )[表类型] [表字符集];
B. 删除表:DROP TABLE [IF EXISTS] 表名;
C. 修改表结构(包括索引);
D. 查看指定数据所有表:SHOW TABLES;
E. 查看表结构:DESC 表名。
3. 修改表结构(包括索引)
A. 表新增字段
添加在指定字段后面:ALTER TABLE <表名> ADD COLUMN <新字段名> <数据类型> NOT NULL DEFAULT 1 COMMNET <注释> AFTER <已经存在的字段名>;
二、DML(Data Manipulation Language)
1. 新增记录
A. 插入所有的字段:
B. 插入指定的字段:
C. 从一张表或多个表中组合字段插入到另外一张新表中:insert into select from;
如:INSERT INTO rhxy_tenant_relate (id, receive_admins, is_email, is_message, created_by, created_time, updated_by, updated_time) select 1, receive_admins, is_email, is_message, created_by, created_time, updated_by, updated_time from rhxy_tenant;
2. 修改记录:
3. 删除记录:delete <alias> from <table> <alias> where <alias>.<field> ...;
4. 多表更新
A. 语法形式:update tabel t1, table t2 set ... where t2.id = t1.id;
update table t1 inner join table t2 on t2.id = t1.id set ...;
也可以使用left join 或者 right join来做多表关联更新一表记录或多表记录。
5. 多表删除:
三、DQL(Data Query Language)
1. 查询记录:select ... from <表名> where 条件 group by 分组字段 having 条件 order by 排序字段;
四、DCL(Data Control Language)
1. 用户
2. 权限
3. 事务
五、MySQL的7种JOIN
1. 左连接:
SELECT <select_list> FROM tableA AS A LEFT JOIN tableB AS B ON B.Key = A.Key
2. 右连接
SELECT <select_list> FROM tableA AS A RIGHT JOIN tableB AS B ON B.Key = A.Key
3. 内连接
SELECT <select_list> FROM tableA AS A INNER JOIN tableB AS B ON B.Key = A.Key
4. 查询左表独有的数据
SELECT <select_list> FROM tableA AS A LEFT JOIN tableB AS B ON B.Key = A.Key WHERE B.key IS NULL
5. 查询右表独有的数据
SELECT <select_list> FROM tableA AS A RIGHT JOIN tableB AS B ON B.Key = A.Key WHERE A.key IS NULL
6. 查询左右表独有的数据
SELECT <select_list> FROM tableA AS A FULL JOIN tableB AS B ON B.Key = A.Key WHERE A.key IS NULL OR B.key IS NULL
7. 全连接(左连接和右连接数据组合)
A. 两张表需要保证对应的列数据类型一致,第一个sql的列名会作为结果集的列名;
B. union和union all关键字的区别:都是合并结果集,但是union会去重,union all不会;
SELECT a FROM tableA AS A UNION SELECT a FROM tableB AS B
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗