MySql数据库的关系表、连接方式、嵌套查询以及查询结果集的合并

MySql数据库的关系表、连接方式、嵌套查询以及查询结果集的合并

一、关系表(【】为选择性存在语句)

1.一对多关系:在多方表中创建外键关联一方表中的主键

语法:【constraint 外键约束名称】 foreign key(外键字段) references 主表名称(主表外键);

2.一对一关系:在某一方创建“唯一外键”关联另一方

使用unique关键字创建唯一约束。

3.多对多关系:通过第三方中间表维护“多对多的关系”,中间表至少需要两个外键字段,分别关联于两个多方表。

二、连接

1.等值连接:获取两个表中匹配关系的记录

select 字段名1,字段名2,... from 表A,表B,... where 连接条件 【其它过滤条件】;

2.内链接:获取两个表中匹配关系的记录

select 字段名1,字段名2,... from 表A inner join 表B on 连接条件 【其它过滤条件】;

3.外连接

1)左外连接(left join):将左表的数据全部查询出来,右表数据只有满足条件和其它连接条件时才能查询出来。

select 字段名1,字段名2,... from 表A left join 表B on 连接条件 【其它过滤条件】;

2)右外连接(right join):将右表的数据全部查询出来,左表数据只有满足条件和其它过滤条件才能被查出来。

select 字段名1,字段名2,... from 表A right join 表B on 连接条件 【其它过滤条件】;

三、嵌套查询(子查询)

子查询的查询结果集经常作为外部查询的条件,应该使用括号将子查询括起来。

常用关键字有;

1.in:用来检查字段值是否在子查询结果集中

2.all:用来判断字段值是否满足子查询结果集中所有的记录

3.any:用来判断字段值是否满足子查询结果集中任何一条记录

四、合并查询结果集

select 字段名1,字段名2,... from 表A union 【all】 select 字段名1,字段名2,... from 表B;

注:

1.合并表的字段数量应该一样,对应的数据类型应该匹配。

2.查询结果集的字段名以第一个表为准,所以排序时应该以第一个表的字段名为标准。

3.如果查询结果集中包含重复的记录,则union回自动去重,而union all会将所有记录都查询出来。(包括重复记录)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值