找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
加油加油!
第四讲

使用navicat:链接满足的条件:
账号:root
密码:123456
端口:3306-3309
域名,ip地址:192.168.47.128
数据库需要重启:service mysqld restart
防火墙要关闭:service iptables stop


1,先进入数据库MySQL>
2,use mysql;进入数据库中查看%权限
select host,user from user;
3,如果没有%权限,在MySQL中输入以下指令:
grant all privileges on *.* to 'root'@'%' identified by '123456';
4,创建用户不赋予权限,新增加一个用户,赋予本地访问权限,用户名称是 wang
insert into user (host,user,password)values('localhost','wang',password('123456'));
5,创建用户后进行授权
grant select,update,delete,drop on *.* to 'wang'@'localhost' identified by '123456';
6,查询指定用户拥有哪些权限
show grants for 'wang'@'localhost';
7,取消指定用户的权限
revoke all on *.* from 'qian'@'localhost';
8,删除用户
delete from user where user='wang' and host='localhost';
9,改用户密码
在user表中把wang用户的密码改为123456
update user set password=password('123456') where user='wang';



多表查询的方法:(重点)
A姓名表           C成绩表
id name            s_id  scroe
1    a                   1        100
2    c                    2         20
3    d                    1         30
查找张三的成绩
select * from a ;
1,多表的条件:必须要关联的表中有相同的字段
2,有哪些方法可以把表与表进行关联?
   1、基本链接常用的方法
select * from aa,cc where aa.id=cc.s_id
select * from aa,cc where id=s_id
select * from cc,aa where id=s_id
查询出来的结果只会显示两表中有的值,
两两位真为真
一真一假,一假一真,两两为假为假
一个表没有的话,不可取

   2、内连接inner join on
select * form aa inneri join cc on aa.id=cc.s_id;
select * from aa inner join cc on id=s_id;
select * from cc inner join aa on id=s_id;
查询出来的结果只会显示两表中有的值,
两两位真为真
一真一假,一假一真,两两为假为假
  3、左连接方法:左边的表为主表,右表为子表
left join on
select * form aa left join cc on aa.id=cc.s_id;   
select * from aa left join cc on id=s_id;
select * from cc left join aa on id=s_id;
from后面的是左边,on的前面是右边
解释:
左连接以左边表为基准,向左看齐
如果主表的值是大于子表的值,子表缺省的值自动补齐null
如果主表的值小于子表的值,只取和主表相同的值其他不显示
4、右链接:右表的表为主表,左表为子表
right join on
select * from aa right join cc on aa.id=cc.s_id;
select * from aa right join cc on id=s_id;
selecr * from cc right join aa id=s_id;
解释:
右链接是以右表为主表
如果主表的值大于子表的值,子表缺省的值自动补齐null
如果主表的值小于子表的值,只取和主表相同的值其他不显示
面试常问:左右链接的区别?
5、union连接方式
select * from aa union select * from cc;
此方式连接是必须多个表字段要相同


求出谁没参加考试?

select name from (select * from aa left join cc on id=s_id)a where score is null;










分享至 : QQ空间
收藏

0 个回复

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