一、权限操作
#1、查询当前用户
select user()
#2、设置密码
set password = password('123456')
#3、给具体某个ip设置账号密码,用来访问数据库(公网ip)
create user 'ceshi100'@'192.168.65.1' identified by '333';
#4、给具体某个网段下的所有ip设置共同的账号密码,用来访问数据库(公网ip) %代表任意的ip 0~255
create user 'ceshi101'@'192.168.65.%' identified by '444';
#5、所有的ip都可以登录到服务器数据库中
create user 'ceshi102'@'%' identified by '555';
#6、刷新权限
flush privileges
#7、查看哪个ip哪个用户的权限
show grants for 'ceshi102'@'%';
#8、grant 权限 on 数据库.表名 to '用户名'%'ip地址' identified by '密码'
#select 查看数据表的权限
#insert 插入数据表的权限
#update 更新数据表的权限
#delete 删除数据表的权限
#drop 删除数据库的权限
grant select,drop on *.* to 'ceshi102'@'%' identified by "333"
# all 代表所有权限
grant all on *.* to 'ceshi102'@'%' identified by "333"
# 移除权限
# 单个
revoke drop on *.* from 'ceshi102'@'%'
# 所有
revoke all on *.* from 'ceshi102'@'%'
# 删除用户
drop user 'ceshi102'@'%'
二、操作数据库
#1、创建一个数据库
create database db0824 charset utf8;
#2、查看所有数据库
show databases
#3、修改数据库
alter database db0824_1 charset gbk
#4、删数据库
drop database db0824_1;
三、数据库表操作
#1、选择数据库
use 数据库名
#2、增加字段
create table t1(id int , name char);
#3、查看所有表
show tables;
#4、查看表结构
desc t1
#5、修改表操作
#修改数据类型
alter table t1 modify name char(5)
#修改字段
alter table t1 change name newname char(4)
#6、删除表
drop table t1;
四、数据类型
五、数据库表数据操作
1、增
insert into 表名 values(列值)
2、查
select * from 表名
3、改
update 表名 set 列明=值
4、删
delete from 表名 where 条件
六、相关函数
1、where
复制代码
where 条件的使用
功能: 对表中的数据进行过滤筛选
1.判断的符号
= > >= < <= != <> 不等于
2.拼接天骄的关键字
and or not
3.查询范围区间 between
between 小值 and 大值 [小值,大值] 查询两者之间的这个范围所有数据
4.查询某个值在具体某个范围里 in
in(1,2,3,4)
5.模糊查询 like "%" "_" 通配符
like "%a" 匹配以a结尾的任意长度的字符串
like "a%" 匹配以a开头的任意长度的字符串
like "%a%" 匹配含有a字母的任意长度的字符串
like "_a" 个数一共是2个字符,必须以a结尾,前面字符随意
like "a__" 个数一共是3个字符,必须以a开头,后面字符随意
2、group by
group by 字段 对当前字段进行分类 , by后面接什么字段,select 就搜什么字段
select 字段 from 表名 group by 字段;
# 聚合函数
# count 统计总数 *所有
select count(*) from 表名;
# max 统计最大值
select max(字段) from 表名;
# min 统计最小值
select min(字段) from 表名;
# avg 统计平均值
select avg(字段) from 表名;
# sum 统计总和
select sum(字段) from 表名;
3、having
在分类分组之后,进行二次数据过滤
一般是配合group by 使用,分组之后过滤
select 字段1,字段2 from 表名 group by 字段1 having 字段2 > 10000
4、order by
排序, 按照什么字段进行排序
asc 升序: 从小到大 (默认)
desc 降序: 从大到小
select * from 表名 order by 字段1, 字段2 desc;
#先按照字段1排序,如果相同则按照字段2排序
5、limit
限制查询条数 (数据分页)
limit m,n m代表从第几条数据进行查询,0代表第一条,n代表的查询几条
select * from 表名 limit 0,5 # 从第一条数据开始搜, 搜5条数据
select * from 表名 limit 5,5 # 从第六条数据开始搜, 搜5条数据
# 只搜索一条数据
select * from 表名 limit 1
# 只搜索3条数据
select * from 表名 limit 3
# 搜索这个表中最后一条数据
select * from 表名 order by 字段 desc limit 1
6、distinct去重
select distinct 字段 from 表名
七、多表查询
1、内连接
内连接 : (inner join ) -> 两表或者多表满足条件的所有数据查询出来(两表之间的共有数据)
# 两表查询
select 字段 from 表1 inner join 表2 on 必要的关联条件
# 多表查询
select 字段 from 表1 inner join 表2 on 必要的关联条件1 inner join 表3 on 必要的关联条件
2、外连接
外连接:
1.左连接(左联查询 left join ) 以左表为主,右表为辅,完整查询左表所有数据,右表没有的补null
select * from 表名1 left join 表名2 on 表名1.字段 = 表名2.字段;
2.右连接(右联查询 right join ) 以右表为主,左表为辅,完整查询右表所有数据,左表没有的补null
select * from 表名2 left join 表名1 on 表名2.字段 = 表名1.字段;
3、全连接
select * from 表1 left join 表2 on 表1.字段 = 表2.字段
union
select * from 表1 right join 表2 on 表1.字段 = 表2.字段