美文网首页
mysql连接

mysql连接

作者: WANGLIN_HZ | 来源:发表于2018-08-14 20:11 被阅读0次

联结之连接查询

作用:分解数据为为多个表能更有效的储存,更方便的处理,并且具有更大的可1伸缩性。

1.内联接(典型的联结运算,使用=或<>之类的比较运算符)。包括相等联接和自然联接。内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索student和courses表中学生标识号相同的所有行。

2.外联接 外联接可以是左右外联接、右向外联接或完整外部联接。
(1) LEFT JOIN或LEFT OUTER JOIN
左向外联接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关的结果集行中右表的所有选择列表列均为空值

(2)RIGHT JOIN或RIGHT OUTER JOIN
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配,则将为左表返回空值
(3) FULL JOIN 或 FULL OUTER JOIN
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值

语法

select * from 表1 inner或left或right jion 表2 on 表1 列 = 表2.列
使用内连接查询班级表与学生表
select * from student inner join classes on student.cls_id = classes.id;

使用左连接查询班级表与学生表此处使用了as 为表起别名,目的是编写简单

select * from student as s left join calsses as c on s.cls_id = c.id;

使用右连接查询班级表与学生表

select * from student as s right join calsses as c on s.cls_id = c.id;

查询学生姓名及班级名称

select s.name,c.name from students as s inner join calsses as c on s.cls_id = c.id;

查询性别为男的学生姓名及班级名称

select s.name,c.naem from student as s inner join classes as c on s.cls_id = c.id where s.gender=1;

相关文章

网友评论

      本文标题:mysql连接

      本文链接:https://www.haomeiwen.com/subject/hnqbbftx.html