找回密码
 立即注册

推荐阅读

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

1·连接满足的条件:

账号 :root

密码:123456

端口:3306

域名· ip地址:ifconfig 查询ip localhost 192.168.133.130

数据库需要重启 :service mysqld restart

防火墙要关闭: service iptables stop

且对应的账号要拥有远程访问的权限(%)百分号权限

如果没有%权限需要通过指令来赋予:

1·先进入到数据库当中:use mysql

2·再查询即可:select host,user from user;

如果没有远程权限:grant all privileges on *.* to 'root'@'%' identified by '123456';

3·创建用户不赋予权限

新增加一个用户赋予本地访问权限,用户名称为qian

insert into user (host,user,password)values('localhost','qian',password('123456'));

4·创建用户后进行授权

grant select,update,delete,create,drop on *.* to'chen'@'localhost'identified by '123456';

5·查询指定用户拥有哪些权限

show grants for 'qian'@'localhost';

6·取消指定用户的权限

revoke all on *.* from 'qian'@'localhost';

7·删除用户

delete from user where user='qian' and host='localhost'

8、改用户密码在user表中把root用户的密码改为123456

update user set password=password('123456') where user='root';


多表查询的方法(重点)

A 姓名表 C 成绩表

id name s_id scroe

1 a 1 100

2 c 2 70

3 d 3 80

查找张三的成绩

select * from a;

1·多表的条件:必须要关联的表中有相同的字段

2·有哪些方法可以把表和表进行关联?

基本连接:常用的方法 基本连接需要接where 条件

select * from aa,cc where id=s_id;

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

查询出来的结果只会显示两个表中现有的值

两两为真为真

一真一假,一假一真,两两为假为假


内连接:inner join on

select * from aa inner join cc on aa.id=cc.s_id;

select * from aa inner join cc on id=s_id;

查询出来的结果只会显示两个表中现有的值

两两为真为真

一真一假,一假一真,两两为假为假


左连接的方法:左边为主表,右边为子表

left join on

select * from aa left join cc on id=s_id;

select * from aa left join cc on aa.id=cc.s_id;

from后面是左边,on 前面是右边

解释:

左连接以左边表为基准

如果主表的值是大于子表的值,子表缺少的值自动补齐null

如果主表的值是小于子表的值,只取和主表相同的值其他不显示


右连接:右表为主表,左表为子表

right join on

select * from cc right join aa on id=s_id;

select * from cc right join aa on cc.id=aa.s_id;

解释:

右连接是以右表为准的

如果主表的值是大于子表的值,子表缺少的值自动补齐null

如果主表的值是小于子表的值,只取和主表相同的值其他不显示

mysql面试题经常问的一个问题,左右连接的区别??


union 连接方法

select * from aa union select * from cc;

此方法连接是必须要多个表字段要相同


分享至 : QQ空间
收藏

0 个回复

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