MySQL多表查询

发布于:2025-06-30 ⋅ 阅读:(17) ⋅ 点赞:(0)

连接查询

内连接(默认连接)

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';


网站公告

今日签到

点亮在社区的每一天
去签到