mysql两表联合查询 inner join on_Mysql----8 联表查询 嵌套查询 inner join on left join on right join on...

1.联表查询   必须多表要有相同的列 (多表查询)

select  a.name,sex,password from 表1 as a inner join  表2  as b on a.name=b.name;---

select   a.name ,password, sex from 表1 as a left join 表2  as  b  on a.name=b.name;---左表基准全查

select  a.name ,password,sex from 表1 as a  right join 表2  as b on  a.name= b.name where password is null;---右表基准全查

2.自连接查询  , 主--从关系结构 要有外键约束

3.select 查询条件的写法  where---->group by ------>having----->order by  ------>limit

执行顺序:from 表 -----》where -----》group by------》having-----》select—》order  by  -----》limit

4.外键约束: 主表 和从表 关系:添加删除数据有顺序。

1.从表外键新增的数据,必须在主表当中存在。

2.要删除有引用关系的字段,要先删除从表中的数据,在删除主表中的数据。

从表中外键的写法: constraint `fk_id` foreign key (`id`) reference 主表名(`主表对应字段`);

3.数据库表的约束有:

非空约束 NOT NULL ,

默认约束default NUll 等

唯一约束 unique

主键约束primary key(`id`)

外键约束 foreign key

4.多表查询:不一定有约束吧?

分为:1对多查询  多对多查询 1对一查询

合并结果集:

union 条件:1.多张表数据列相同;2.纵向合并

union all

2.连接查询: 笛卡尔乘积 相当于把多张表中数据合并成一张大表,然后找多张表共同点查询? a表 Xb表  行相乘  没有条件无意义

查询两张表有关系的列字段。条件两张表相等字段;  一对多 相当于 左连接  或者右连接   多对一 也一样。

包含 inner join 表 on 条件     ;    right  join 表 on 条件  ; left  join 表 on  条件;

3.子查询  又叫嵌套查询   包含多层select 查询结果集

子查询可以出现在 from 后面 作为临表  where 后面   作为条件

子查询的结果集: 1.单行单列 作为条件      2.单行多列  作为条件    3.多行多列   作为表

单行多列 作为条件需要 配合 any  或者 all 来查询 满足任何一行或者全部行的 内容返回值。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值