找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手

mysql授权+mysql多表查询+Navicat的使用

[复制链接]
本帖最后由 武汉9期-周望元 于 2021-11-20 20:35 编辑

用户权限
use mysql  ===>进入mysql库
select host,user password from user。===》查看user表中的哪些用户

local host ,127.0.0.1   代表的是本地用户 ====》可以通过centos或xshell进行访问

%  ======》具有远程访问权限的用户,用Navicat访问;

insert into user(host,user,password) value("localhost","dcs9",password("123456"));

show grants for "dcs9"@"localhost";=====》查看权限,如下报错表示没有权限

ERROR 1141 (42000): There is no such grant defined for user 'dcs9' on host 'localhost'

flush privileges;=====》刷新权限

show grants for “dcs9”@“localhost”; ======》再次查看权限,结果如下,没有权限
GRANT USAGE ON *.* TO 'dcs9'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'

grant select on *.* to "dcs9"@"localhost" identified by "123456"; =====》授权

查看权限

移除所有权限
revoke all on *.* from "dcs9"@"localhost";====>移除本地权限

创建,并授权:
grant all privileges on *.* to "root"@"%" identified by "123456"; ===>创建远程连接用户,并授权

删除用户:
delete from user where user=“root” and host=“localhost”;

修改密码:
update user set password=password("密码") where host=“localhosthuo或%” user=“用户名”;

Navicat连接不上
先创建一个能远程连接的用户:grant all privileges on *.* from "root"@"%" identified by "123456";
关闭防火墙:service iptables stop ;
开启mysql服务:service mysqld start;

Navicat使用
开启查询窗口:Ctrl+q
关闭窗口:Ctrl+w
多行注释:
/*注释内容
注释内容*/
单行注释:#

普通连接(取aa,cc两表交集部分)

select * from aa,cc where aa.id=cc.s_id;

内连接:
select * from aa inner join cc on aa.id=cc.s_id;

左连接:left join (左边表中的数据全部显示,右边符合条件的的则显示,不符合的则填充null,左表                               为准)
select * from aa left join cc on aa.id=cc.s_id;

右连接:right join (右边表中的数据全部显示,左边符合条件的的则显示,不符合的则填充null,右表为准)
select * from aa right join cc on aa.id=cc.s_id;

硬连接 ===》追加(两个表的字段数量必须相同)
select * from aa union select * from cc;


求张三成绩
1.临时表
select name,score from (select * from aa,cc where aa.id=cc.s_id) as t where       t.name="zhangsan";
2.内连接
select name,score from aa inner JOIN cc on aa.id=cc.s_id WHERE name="zhangsan";

3.嵌套方法          “=” (=和in的区别 ,=对应一个值,in后面可以是多个值)
select score from cc where s_id=(select id from aa where name="zhangsan");
当=号后面的值大于1个时,会报错

4.嵌套方法   “in” 的使用
select score from cc where s_id in(select id from aa where name="zhangsan");

5.右连接 右边的表数据全显示(姓名表)
SELECT name from cc right JOIN aa on aa.id=cc.s_id where cc.score is null;

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册