连接查询
内连接(默认连接)
select 字段 from 表1 unner join 表2 on 表1.字段1=表2.字段2;
- inner join 就是内连接查询关键字
- on 就是连接查询条件
左外连接 (left join)
有一个主表概念,默认情况下,关联后会保留主表的所有记录。
以左表为主根据条件查询右表数据,如果根据条件查询右表数据不存在,使用null值填充
左外连接默认会保留左表,然后与右边的表进行匹配;如果匹配到,则显示右表对应的数据;匹配不到,也要显示。只不过右表的所有字段使用null进行填充!
select 字段 from 表1 left join 表2 on 表1.字段1=表2.字段2
右外连接 (right join)
select 字段 from 表1 right join 表2 on 表1.字段1=表2.字段2
子查询
相当于是一个查询的嵌套
掌握子查询编写三步走:
① 编写子查询
② 编写主查询并融合伪代码
③ 伪代码替换为子查询
DCL用户与权限管理
创建用户(create user)
create user 'user'@'host' identified by 'password';
select user,host from mysql.user; --查看用户是否创建成功
修改用户(alter user)
-- 修改密码
alter user 'username'@'host' identified by '新密码'
-- 重命名
rename user '旧名'@'host' to '新名'@'host'
删除用户(drop user)
drop user 'username'@'host';
delete from mysql.user where user ='username' and host='host'
用户权限管理(grant)
-- 查看当前用户权限
show grants;
-- 查看指定用户权限
show grants for 'username'@'host';
-- 给用户授权查看db01库里所有表权限
grant select on db_itheima.* to 'username'@'host';
-- 刷新权限表
flush privileges;
-- 给用户授权所有权限
grant all on *.* to 'username'@'host' with grant option;
回收用户权限
revoke 权限 on 库.表 from 用户;
-- 撤销指定权限
revoke update on 库.表 from 'username'@'host';
-- 撤销所有权限
revoke all privileges,grant option from 'username'@'host';