MySQL详细文档地址 主:https://www.naste.top:1024/categories/MySQL/ 
次:http://mysql-doc.naste.top:2048/ 
数据库增删改查 新增 1 2 3 4 # CHARACTER :字符集【utf8mb4】 # COLLATE :排序规则【utf8mb4_general_ci】 # ENCRYPTION:是否创建加密空间【N:否  Y:是】 CREATE  DATABASE [ IF NOT  EXISTS  ] `数据库名字` [ DEFAULT  CHARACTER  SET  字符集 COLLATE  排序规则 ] [DEFAULT  ENCRYPTION= 'N/Y'  ];
1 CREATE  DATABASE  IF NOT  EXISTS  `test3` DEFAULT  CHARACTER  SET  utf8mb4 COLLATE  utf8mb4_general_ci;
删除 1 DROP  DATABASE [ IF EXISTS  ] `数据库名`;
1 DROP  DATABASE IF EXISTS  `test3`;
修改 1 2 # 修改字符集和排序规则 ALTER  DATABASE `test3` DEFAULT  CHARACTER  SET  字符集 COLLATE  排序规则;
1 ALTER  DATABASE `test3` DEFAULT  CHARACTER  SET  utf8mb4 COLLATE  utf8mb4_general_ci;
查询 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 查询所有数据库 SHOW  DATABASES;# 查询当前正在使用的数据库 SELECT  DATABASE();# 查询指定库下面的所有表 SHOW  TABLES FROM  `数据库名`;# 查看数据库的创建信息,可以查看创建数据库的sql  SHOW  CREATE  DATABASE `数据库名`;# 使用指定数据库 USE `数据库名`; 
表增删改查 新增 
下面创建表的格式可能不全,推荐使用Navicat建表时使用SQL预览,或者使用SHOW CREATE TABLE 表名查看表的创建语句 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 # 格式 CREATE  TABLE  [IF NOT  EXISTS ] 表名(	字段1 , 数据类型 [约束条件] [默认值] [注释], 	字段2 , 数据类型 [约束条件] [默认值] [注释], 	字段3 , 数据类型 [约束条件] [默认值] [注释], 	…… 	[表约束条件] ); # 案例 CREATE  TABLE  IF NOT  EXISTS  `user ` (  `id` int  NOT  NULL  AUTO_INCREMENT COMMENT '用户id' ,   `字段名` 字段类型 [ CHARACTER  SET  字符集 COLLATE  排序规则 ] [DEFAULT  默认之] [COMMENT '字段注释' ],   PRIMARY  KEY (`id`) ) [ENGINE= InnoDB] [DEFAULT  CHARSET= utf8mb4 COLLATE = utf8mb4_general_ci] [COMMENT= '表注释' ]; # 数据库导出SQL  CREATE  TABLE  `user ` (  `id` int  NOT  NULL  AUTO_INCREMENT COMMENT '用户id' ,   `username` varchar (255 ) COLLATE  utf8mb4_general_ci DEFAULT  NULL  COMMENT '用户名' ,   `password` varchar (255 ) COLLATE  utf8mb4_general_ci DEFAULT  NULL  COMMENT '用户密码' ,   `BELONG_ORG_CODE` varchar (50 ) CHARACTER  SET  utf8mb4 COLLATE  utf8mb4_general_ci DEFAULT  '111'  COMMENT '所属组织机构' ,   PRIMARY  KEY (`id`) ) ENGINE= InnoDB AUTO_INCREMENT= 1318  DEFAULT  CHARSET= utf8mb4 COLLATE = utf8mb4_general_ci COMMENT= '用户信息' ; 
删除 1 DROP  TABLE  [ IF EXISTS  ] `表1 ` [, `表2 `, …, `表3 `];
1 2 3 4 5 # 删除一张表 DROP  TABLE  IF EXISTS  `user1`;# 同时删除多张表 DROP  TABLE  IF EXISTS  `user1`, `user2`;
修改 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 新增列 ALTER  TABLE  [`数据库名`.]`表名` ADD  COLUMN  `新增字段名` 字段类型 [(NOT  NULL / NULL ) [DEFAULT  '默认值' ] [COMMENT '字段注释' ] [AFTER `指定新增在哪个字段后面`];                                                    ALTER  TABLE  `user ` ADD  COLUMN  `test2` VARCHAR (25 ) NOT  NULL  DEFAULT  '11'  COMMENT '测试字段'  AFTER `test`;    # 删除字段 ALTER  TABLE  [`数据库名`.]`表名` DROP  COLUMN  `字段名`;ALTER  TABLE  `user ` DROP  COLUMN  `test3`;                                                          #修改列 ALTER  TABLE  [`数据库名`.]`表名` CHANGE COLUMN  `旧字段名` `新字段名` 字段类型 [(NOT  NULL / NULL ) [DEFAULT  '默认值' ] [COMMENT '字段注释' ] [AFTER `指定新增在哪个字段后面`];                                                             ALTER  TABLE  `test`.`user ` CHANGE COLUMN  `test2` `test3` int  NOT  NULL  DEFAULT  11  COMMENT '测试字段'  AFTER `test`;
查询 1 2 3 4 5 6 # 查看建表SQL  SHOW  CREATE  TABLE  `表名`;# 查看表字段信息 DESC  `表名`;DESCRIBE  `表名`;
清空表 
1 2 3 4 5 # 使用 TRUNCATE  清空表(不能触发事务,开发可以使用,生产环境不建议使用) TRUNCATE  TABLE  `表名`;# 使用 DELETE  清空表(可以触发事务,开发和生产环境都推荐使用) DELETE  FROM  `表名`;
数据增删改查 新增 使用value / values 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # 指定插入列,使用value 插入一条数据 INSERT  INTO  `表名` ( `column1`, `column2`, ...... , `columnn` ) VALUE  ( value1, value2 , ...... , valuen );# 不指定插入列,使用value 插入一条数据,如果不指定列,则value 值的顺序就是数据库字段的顺序 INSERT  INTO  `表名`VALUE  ( value1, value2 , ...... , valuen );# 插入指定列,使用values 插入多条数据 INSERT  INTO  `表名` ( `column1`, `column2`, ...... , `columnn` ) VALUE  	( value1, value2 , ...... , valuen ), 	( value1, value2 , ...... , valuen ); # 不指定插入列,使用values 插入多条数据,如果不指定列,则values 值的顺序就是数据库字段的顺序 INSERT  INTO  `表名`VALUE  	( value1, value2 , ...... , valuen ), 	( value1, value2 , ...... , valuen ); 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # 指定插入列,使用value 插入一条数据 INSERT  INTO  `user ` ( `id`, `username`, `password`, `BELONG_ORG_CODE` ) VALUE  ( 1 , 'Dorothy Walker' , 'nioMES9G08' , 'WHl8WjeQFT'  );# 不指定插入列,使用value 插入一条数据,如果不指定列,则value 值的顺序就是数据库字段的顺序 INSERT  INTO  `user ` VALUE  ( 2 , 'Dorothy Walker' , 'nioMES9G08' , 'WHl8WjeQFT'  );# 插入指定列,使用values 插入多条数据 INSERT  INTO  `user ` ( `id`, `username`, `password`, `BELONG_ORG_CODE` )VALUES 	( 1 , 'Dorothy Walker' , 'nioMES9G08' , 'WHl8WjeQFT'  ), 	( 2 , 'Xie Yunxi' , 'aaNxpPdFuA' , 'Qkkn10oQnY'  ); # 不指定插入列,使用values 插入多条数据,如果不指定列,则values 值的顺序就是数据库字段的顺序 INSERT  INTO  `user1`VALUES 	( 31 , 'Dorothy Walker' , 'nioMES9G08' , 'WHl8WjeQFT'  ), 	( 32 , 'Xie Yunxi' , 'aaNxpPdFuA' , 'Qkkn10oQnY'  ); 
将查询结果插入列中(具体查询使用看后面的查询SQL) 1 2 3 4 5 6 INSERT  INTO  目标表名(tar_column1 [, tar_column2, …, tar_columnn]) SELECT (src_column1 [, src_column2, …, src_columnn]) FROM  源表名[WHERE  condition ] 
1 2 INSERT  INTO  `user1` ( `id`, `username`, `password`, `BELONG_ORG_CODE` ) SELECT  `id`, `username`, `password`, `BELONG_ORG_CODE` FROM  `user ` WHERE  `id` =  1 
删除 1 DELETE  FROM  `表名` [WHERE  < condition > ];
1 DELETE  FROM  `user ` WHERE  `id` =  31  AND  `username` =  'Dorothy Walker' ;
修改 1 UPDATE  `表名` SET  column1 =  value1, column2 =  value2, ...... , column  =  valuen [WHERE  condition ]
1 UPDATE  `user1` SET  `username` =  '新用户名'  , `password` =  '新密码'  WHERE  `id` =  1  AND  `username` =  '1' ;
查询 MySQL函数 
单行函数: 
聚合函数: 
 
单行函数:https://new-wangz.github.io/2022/04/11/%E7%AC%AC07%E7%AB%A0-%E5%8D%95%E8%A1%8C%E5%87%BD%E6%95%B0/ 
聚合函数:https://new-wangz.github.io/2022/04/12/%E7%AC%AC08%E7%AB%A0-%E8%81%9A%E5%90%88%E5%87%BD%E6%95%B0/ 
MySQL查询格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 # 方式1 (SQL92): SELECT  ...... , ...... , ......FROM  ...... , ...... , ......WHERE 	多表的连接条件  	AND  不包含组函数的过滤条件  GROUP  BY  ...... , ...... , ......HAVING 	包含组函数的过滤条件  ORDER  BY  ...... ASC  /  DESC  	LIMIT ...... , ...... 	 # 方式2 (SQL99): SELECT  ...... , ...... , ......FROM  ......JOIN  ...... ON  多表的连接条件JOIN  ...... ON  多表的连接条件WHERE 	不包含组函数的过滤条件  	AND  /  OR  不包含组函数的过滤条件  GROUP  BY  ...... , ...... , ......HAVING 	包含组函数的过滤条件  ORDER  BY  ...... ASC  /  DESC  	LIMIT ...... , ...... #其中: #(1 )from :从哪些表中筛选 #(2 )on :关联多表查询时,去除笛卡尔积 #(3 )where :从表中筛选的条件 #(4 )group  by :分组依据 #(5 )having :在统计结果中再次筛选 #(6 )order  by :排序 #(7 )limit:分页 
GROUP BY 分组查询 MySQL SELECT 执行顺序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 关键字的顺序 SELECT  ... FROM  ... WHERE  ... GROUP  BY  ... HAVING  ... ORDER  BY  ... LIMIT...# SELECT  语句的执行顺序 (在 MySQL 和 Oracle 中,SELECT  执行顺序基本相同) FROM  - >  WHERE  - >  GROUP  BY  - >  HAVING  - >  SELECT  的字段 - >  DISTINCT  - >  ORDER  BY  - >  LIMIT# 案例 SELECT  DISTINCT 	player_id, player_name, count (* ) AS  num # 顺序 5  FROM 	player  JOIN  team ON  player.team_id =  team.team_id # 顺序 1 WHERE  height >  1.80  # 顺序 2 GROUP  BY  player.team_id # 顺序 3 HAVING  num >  2  # 顺序 4 ORDER  BY  num DESC  # 顺序 6 LIMIT 2  # 顺序 7