一、权限操作
#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.字段