下列语句里 [ ] 括号的内容不一定要写上,需要根据需求来使用
基本操作
show databases ; --查看总共有哪些数据库
create database 数据库名称 ; --创建数据库
select database() ; --查看当前数据库
use 数据库名称 ; --切换到某数据库
show tables ; --查看当前数据库所有的表
desc 表名 ; --查询表结构,展现字段以及字段类型
show create table 表名; --查看字段、字段类型以及解释内容
create table 表名( --创建表
字段1 字段1类型 [comment '解释内容'] ,
字段2 字段2类型 [comment '解释内容'] ); --注意最后一行是没有逗号的
修改操作
alter table 表名 add 字段 类型(长度) ; --增加表中的字段
alter table 表名 modify 字段 新的类型(长度) ; --修改字段类型
alter table 表名 change 旧字段名 新字段名(长度) ; --修改字段名称和长度
alter table 表名 drop 字段名 ; --删除字段
alter table 表名 rename to 新表名 ; --修改表名
drop table [if exists] 表名 ; --删除表
truncate table 表名 ; --删除指定表,并重新创建该表
插入操作
insert into 表名(字段名1, 字段名2, ...) values (值1, 值2, ...) ; --给指定字段添加数据
insert into 表名 values(值1, 值2, ...) ; --给全部字段添加数据,但不推荐用这种方式,因为可能会改变表结构
insert into 表名 (字段1, 字段2, ...) values (值1, 值2, ...) ; --给具体字段添加数据
insert into 表名 values(值1, 值2 , ...) (值1, 值2, ...) (值1, 值2, ....) ; --批量添加数据
删除操作
update 表名 set 字段名1 = 值1, 字段名2 = 值2 [where 限制条件] ; --修改字段数值,如果不加限制条件,就会修改整张表字段1和字段2的数值
delete from 字段名 [where 限制条件] ; --删除字段数据
查询操作
条件查询
select 字段1, 字段2, 字段3 ... from 表名 ; --查询表中具体字段数据
select * from 表名 [where 限制条件] ; --查询表中所有数据
select 字段1 [ as 别名1 ], 字段2 [ as 别名2 ]... from 表名 ; --设置别名
select dstinct 字段列表 from 表名 ; --查询时会去除重复记录
select * from 表名 where 字段 in ( 条件, 条件, 条件, ... ) ; --查询表中符合括号中任意一个条件的项
select * from 表名 where 字段 like ' _x' ; --查询表中符合两个字并且第一位任意字符第二位为 x 的项
select * from 表名 where 字段 like ' %x' ; --查询表中任意长度且最后一位为 x 的项
聚合查询
--在查询的时候同时对数据进行运算
select count ( * ) from 表名 ; --统计表中有多少行数据
select max ( 字段 ) from 表名 ; --统计表中字段里最大数值
select min ( 字段 ) from 表名 ; --统计表中字段里最小数值
select avg ( 字段 ) from 表名 ; --统计表中字段的平均数值
select sum ( 字段 ) from 表名 ; --统计表中字段的总和
分组查询
select 字段 from 表名 [ where 条件1 ] group by 分组字段名 [ having, 过滤条件2 ] ; --查询字段中符合条件1并且符合过滤条件2的项
顺序查询
select * from 表名 order by 字段 asc ; --根据字段进行顺序查询
select * from 表名 order by 字段 ; --同为顺序查询 省略asc默认顺序
select * from 表名 order by 字段 desc ; --倒序查询
select * from 表名 order by 字段1 asc, 字段2 desc ; --顺序查询字段1,当字段1里存在相同情况时,再根据字段2进行倒叙排序
分页查询
--起始索引 = ( 查询页码 -1 ) * 每页展示记录数 ;
select * from 表名 limit 起始索引 , 展示记录数 ;
select * from 表名 limit 0 , 10 ; --查询第一页,每页显示10条数据
select * from 表名 limit 10 , 10 ; --查询第二页,每页显示10条数据,就为什么会是 limit 10 呢?是因为记录数从 0 开始,0 - 9条是第一页,10 - 19条是第二页,索引得从 10 开始
select * from 表名 limit 数量 ; --只查询前几条数据
管理用户
use mysql ; --由于 user 表在 mysql 库所以需要切换到 mysql 数据库
select * from user ; --查询所有用户
create user ' 用户名 ' @ ' 主机名 ' identified by ' 密码 ' ; --创建用户
alter user ' 用户名 ' @ ' 主机名 ' identified with mysql_native_password by ' 新密码 ' ; --修改用户密码
drop user ' 用户名 ' @ ‘ 主机名 ' ; --删除用户
权限控制
grant 权限列表 on 数据库名 . 表名 to ' 用户名 ' @ ' % ' ; --授予用户在某数据库某张表的某个权限。在没有授权之前,该用户看不到该数据库
revoke 权限列表 on 数据库名 . 表名 from ' 用户名 ' @ ' % ' ; --撤销用户在某数据库某张表的所有权限
--数据库名和表名可以用 * 进行通配,代表所有
勤加练习才能熟练 ~