目录
Mysql常用SQL总结, 穿插各种业务场景及训练SQL,不断完善! MySQL进阶,面试必备,持续更新!! 总结难免不完善,欢迎补充!!!
一、常用SQL语句总结
规范
以;结尾 关键字之间需要空格隔开(可多个) 语句中可以有一个或多个换行 关键字不去区分大小写
1 、常用操作数据库的命令
show databases; 查看所有的数据库 create database test character set = gbk; 创建一个叫test的数据库 drop database test;删除一个叫test的数据库 use test;选中库 ,在建表之前必须要选择数据库 show tables; 在选中的数据库之中查看所有的表 create table 表名 (字段1 类型, 字段2 类型); desc 表名;查看所在的表的字段 drop table 表名; 删除表 show create database test;查看创建库的详细信息 show create table 表名; 查看创建表的详细信息
2、修改表的命令
创建表create table 表名(字段名 类型,字段名 类型...); 创建表使指定字符集和引擎create table 表名(字段名 类型,字段名 类型...) engine=innodb charset=utf8; 查看所有的表show tables; 查看单个表信息show create table 表名; 修改表名rename table 原名 to 新名; 修改引擎和字符集alter table 表名 engine=引擎名 charset=字符集 在表的末尾添加字段alter table 表名 add 字段名 类型; 在表的首位添加字段alter table 表名 add 字段名 类型 first; 在某个字段后添加字段alter table 表名 add 字段名 after 字段名; 删除表字段alter table 表名 drop 字段名; 修改表字段的名称和信息alter table 表名 old new newType; 修改字段类型和位置:alter table 表名 modify 字段名 新类型 first/after 字段名; 添加字段并指定位置 alter table 表名 add 字段 字段类型 after 字段; 修改指定的字段 alter table 表名 change 原字段名字 新的字段名字 字段类型
3、对数据的操作
1.增加数据(insert)3种方式 全表插入insert into 表名 values(值1,值2...); 指定字段插入insert into 表名(字段1,字段2...) values(值1,值2...); 批量插入insert into 表名 values(值1,值2..),(值1,值2..); 指定字段批量插入insert into 表名(字段1,字段2...) (值1,值2..),(值1,值2..); 2.删除数据(delete) delete from 表名 where 条件 注意:where 条件必须加,否则数据会被全部删除 3.更新数据(update) update 表名 set字段1 = 值1, 字段2 = 值2 where 条件 4.查询数据(select) 4.1 查询表中的所有数据 select * from 表名 4.2 指定数据查询 select 字段 from 表名 根据条件查询出来的数据 select 字段 from 表名 where 条件 (最常用的) where 条件后面跟的条件 关系:>,<,>=,<=,!= 逻辑:or, and 区间:id between 4 and 6 ;闭区间,包含边界 5.排序 select 字段 from 表 order by 字段 排序关键词(desc | asc) 排序关键词 desc 降序 asc 升序(默认) 5.1 通过字段来排序 例如 :select * from star order by money desc, age asc; 5.2 多字段排序 select 字段 from 表 order by 字段1 desc |asc,...字段n desc| asc; 6.常用的统计函数 sum,avg,count,max,min 只分组:select * from 表 group by 字段 例子: select count(sex) as re,sex from star group by sex having re > 3; 分组统计: select count(sex) from star group by sex; 7.分组 分组查询 group byselect * from 表名 where ... group by ... having...order by ...limit 偏移量,数量; 说明: 8.1.不写偏移量的话就是默认的为0 8.2.实现分页的时候必须写偏移量 偏移量怎么计算?: limit (n-1)*数量 ,数量 8.子查询:嵌套在sql语句中的查询语句 作为查询条件写在where/having后面 创建表create table name as (…) 写在from后面当成新表使用select 字段 from (select ... from 表名...) t1; 9.关联查询:同时查询多张表的数据称为关联查询 等值连接select * from A,B where A.x=B.y and ...; 内连接select * from A join B on A.x=B.y where ...; 外连接select * from A left/right join B on A.x=B.y where ...;
4、多表联合查询
1.内连接 隐式内连接 select username,name from user,goods where user,gid=gods,gid; 显示内连接 select username,from user inner join goods on user.gid=goods.gid; select * from user left join goods on user.gid=goods.gid; 2.外链接 左连接 包含所有的左边表中的记录以及右边表中没有和他匹配的记录 右连接 select * from user where gid in(select gid from goods); select * from user right jOin goods on user.gid=goods.gid; 子嵌套查询 数据联合查询 select * from user left join goods on user.gid=goods.gid union select * from user right join goods on user.gid=goods.gid; 两个表同时更新 update user u, goods g set u.gid=12,g.price=1 where u.id=2 and u.gid=g.gid;
5、DCL 数据控制语言
创建用户:create user'xiaoming'@'localhost' identified by '666666'; 授权用户:grant all on test.*to'xiaoming'@'localhost'; 刷新权限:flush privileges; 取消授权:revoke all on test.* from 'xiaoming'@'localhost'; 删除用户: drop user'xiaoming'@'localhost';
6、DTL 数据事务语言
开启事务:set autocommit=0; 操作回滚:rollback; 提交事务:commit;
二、日常SQL实例
Mysql数据库各种情况下密码修改 MySql查询当天、本周、本月、本季度、本年的数据 SQL中计算百分比 sql查询字段替换值case when then 字段为null添加执行另外一个条件 not in使用报错 count(*)、count(1)、count(id)、count(字段)的区别与性能分析 MYSQL主从复制、主主复制、双主多从配置 三、SQL训练营
SQL基本命令 数据库基本操作 SQL超实用查询汇总 SQL训练之学生表 四、参考资料
mysql sql常用语句大全_神奇的老黄的博客-CSDN博客_mysql的sql语句
Mysql常用SQL总结(VIP典藏版)
于 2020-08-09 13:38:46 首次发布