mysql基础总结 连接查询
2017-03-29 19:19
543 查看
连接查询
---------------------------------------------------------
将多张表进行记录的连接;
四类连接查询:内连接 ,外连接,自然连接,交叉连接
交叉连接:
从一张表中循环取出每一条记录去另一张表的每一条记录进行匹配,最终形成的表叫笛卡尔积。
左表 cross join 右表;
内连接:
——————————————————————————————————————————
左表的每一条记录与右表的所有记录进行匹配:当左表的某个条件与右表的某个条件相同时,结果才会保留。
左表 [inner] join 右表 on 左表.字段=右表.字段;//on表示连接条件
当on后面没有条件,结果会形成笛卡尔积;
where可以代替on,但是使用on效率更高;
字段别名,表别名
例
select s.* ,c.name as c_name ,
c.room from my_student as s inner join my_class as c on s.id=c.id;
外连接:
———————————————————————————————————————————
以某张表为主,取出里面的记录,然后每条记录与另一张表进行连接;
不管能不能匹配上条件,最终都会保留:能匹配,能正确保留;不匹配,其副表的字段为空;
外连接分为两种:
有主表
left join:左外连接,以左表为主
right join:右外连接,以右表为主
语法:select * from a left join b on 左表.字段=右表.字段;
select * from b right join a on 左表.字段=右表.字段;
以上两种效果相同,都以a为主表
自然连接:
——————————————————————————————————————————
nature join:自动匹配连接条件:系统一字段的名字作为匹配模式
(同名字段就作为条件,多个同名字段就都作为条件)
自然连接:分为自动内连接和自动外连接。
自然内连接
select * from 表名1 nature join 表名2;//连接后合并同名字段
自然外连接
select * from 表名1 nature left join 表名2;
外连接,内连接可以模拟自然连接
例: select * from 表名1 left join 表名2 using(字段);using()合并字段
---------------------------------------------------------
将多张表进行记录的连接;
四类连接查询:内连接 ,外连接,自然连接,交叉连接
交叉连接:
从一张表中循环取出每一条记录去另一张表的每一条记录进行匹配,最终形成的表叫笛卡尔积。
左表 cross join 右表;
内连接:
——————————————————————————————————————————
左表的每一条记录与右表的所有记录进行匹配:当左表的某个条件与右表的某个条件相同时,结果才会保留。
左表 [inner] join 右表 on 左表.字段=右表.字段;//on表示连接条件
当on后面没有条件,结果会形成笛卡尔积;
where可以代替on,但是使用on效率更高;
字段别名,表别名
例
select s.* ,c.name as c_name ,
c.room from my_student as s inner join my_class as c on s.id=c.id;
外连接:
———————————————————————————————————————————
以某张表为主,取出里面的记录,然后每条记录与另一张表进行连接;
不管能不能匹配上条件,最终都会保留:能匹配,能正确保留;不匹配,其副表的字段为空;
外连接分为两种:
有主表
left join:左外连接,以左表为主
right join:右外连接,以右表为主
语法:select * from a left join b on 左表.字段=右表.字段;
select * from b right join a on 左表.字段=右表.字段;
以上两种效果相同,都以a为主表
自然连接:
——————————————————————————————————————————
nature join:自动匹配连接条件:系统一字段的名字作为匹配模式
(同名字段就作为条件,多个同名字段就都作为条件)
自然连接:分为自动内连接和自动外连接。
自然内连接
select * from 表名1 nature join 表名2;//连接后合并同名字段
自然外连接
select * from 表名1 nature left join 表名2;
外连接,内连接可以模拟自然连接
例: select * from 表名1 left join 表名2 using(字段);using()合并字段
相关文章推荐
- MySQL基础9-主键约束、外键约束、等值连接查询、一对一和多对多关系
- MySQL——查询sql总结:简单查询、连接查询、子查询
- MySQL基础语句之子查询与连接《图文三》
- 数据库基础:连接查询总结
- Mysql学习总结(25)——MySQL外连接查询
- Mysql学习总结(25)——MySQL外连接查询
- MySQL基础教程34-连接查询-外连接
- Java基础16:Java和Mysql的连接、查询和修改
- MySQL基础8-笛卡尔积和等值连接(多表查询)
- mysql常用基础操作语法(九)~~外连接查询【命令行模式】
- MYSQL基础八--子查询和连接
- MySQL——查询sql总结:简单查询、连接查询、子查询
- Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解
- mysql常用基础操作语法(八)~~多表查询合并结果和内连接查询【命令行模式】
- Mysql学习总结(24)——MySQL多表查询合并结果和内连接查询
- MySQL基础教程33-连接查询-内连接
- mysql貌似因为连接数太大而连接不上,根据网上的教程,写份查询连接数命令的总结
- Mysql学习总结(24)——MySQL多表查询合并结果和内连接查询
- Mysql_知识总结03(级联操作+多表查询【左外连接查询*重点掌握】+数据库的存储过程)
- Mysql连接查询(自然连接、自身连接、外连接、多表连接)总结