大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
left join
创新互联建站是一家专业提供文峰企业网站建设,专注与网站建设、成都网站制作、H5技术、小程序制作等业务。10年已为文峰众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
join
主外键是两种对表的约束。
例如:
学生表student(学号(id),姓名(name),性别(sex))
表内有:1,aa,女
课程表subject(课程编号(id),课程名(name))
表内有:1,语文
成绩表grade(成绩编号(id),学号(stu_id),课程号(sub_id),成绩(grade))
表内有:1,1,1,90
成绩表的学号就是学生表的学号相对应,并且为学生表的主键,这样就称成绩表中的学号是学生表的外键,同理,成绩表中的课程号是课程表的外键。
select * from student as s inner join subject as su on su.stu_id=s.id inner join grade as g on g.sub_id=su.id where 1.
扩展资料:
注意事项
SQL 连接(JOIN) 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。连接的结果可以在逻辑上看作是由SELECT语句指定的列组成的新表。
左连接与右连接的左右指的是以两张表中的哪一张为基准,它们都是外连接。外连接就好像是为非基准表添加了一行全为空值的万能行,用来与基准表中找不到匹配的行进行匹配。
假设两个没有空值的表进行左连接,左表是基准表,左表的所有行都出现在结果中,右表则可能因为无法与基准表匹配而出现是空值的字段。
不同的 SQL JOIN可以使用的不同的 SQL JOIN 类型:
INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行(MySQL不支持FULL JOIN)
例如:
mysql select * from access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date |
+-----+---------+-------+------------+
| 1 | 1 | 45 | 2016-05-10 |
| 2 | 3 | 100 | 2016-05-13 |
| 3 | 1 | 230 | 2016-05-14 |
| 4 | 2 | 10 | 2016-05-14 |
| 5 | 5 | 205 | 2016-05-14 |
| 6 | 4 | 13 | 2016-05-15 |
| 7 | 3 | 220 | 2016-05-15 |
| 8 | 5 | 545 | 2016-05-16 |
| 9 | 3 | 201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set
内关联 inner join
左关联 left join
右关联 right join
交叉关联 cross join
语法为:
select *
from a inner join b
on a.xx=b.xx
where XXX
[...]的内容可由你自己选择是否增加条件
左连接
select * from table A left join table B on A.XX = B.XX [ where A.XXX = XXX ]
右连接
select * from table A right join table B on A.XX = B.XX [ where A.XXX = XXX ]
来自MySQL的学习笔记,写的不对的地方大家多多指教哦
什么是外键?
假设有 2 个表,分别是表 A 和表 B,它们通过一个公共字段“id”发生关联关系,我们把这个关联关系叫做 R。如果“id”在表 A 中是主键,那么,表 A 就是这个关系 R 中的主表。相应的,表 B 就是这个关系中的从表,表 B 中的“id”,就是表 B 用来引用表 A 中数据的,叫外键。所以,外键就是从表中用来引用主表中数据的那个公共字段。
语法结构:
在创建表时添加外键约束:
在修改表时定义外键约束:
例子1:创建表时添加外键约束
首先创建主表:importhead
创建从表:test_mysql.importdetails
查询外键约束的相关信息:
查询结果为:
例子2:修改表时定义外键约束
修改表时定义从表test_mysql.importdetails的外键约束
删除外键约束使用DROP,语法结构为:
例子:删除从表test_mysql.importdetails的外键约束
在 MySQL 中,有 2 种类型的连接,分别是内连接(INNER JOIN)和外连接(OUTER JOIN)。
在 MySQL 里面,关键字 JOIN、INNER JOIN、CROSS JOIN 的含义是一样的,都表示内连接。我们可以通过 JOIN 把两个表关联起来,来查询两个表中的数据。
例子:有一张销售表,如下图:
有一张会员信息表,如下图:
通过内连接,查询会员的销售记录:
运行语句,结果如下:
根据上面的结果,其实可以得知:内连接查询到结果集为两个表的交集部分。
跟内连接只返回符合连接条件的记录不同的是,外连接还可以返回表中的所有记录,它包括两类,分别是左连接和右连接。
例子1:左外连接
如果需要查询所有销售记录,则可以使用左外连接
运行语句,结果为:
从上面的结果可以得知,LEFT JOIN左边的表会返回全部记录,而右边的表只返回符合连接条件的记录
例子2:右外连接:
运行语句,结果为:
从上面的结果可以得知,RIGHT JOIN右边的表会返回全部记录,而左边的表只返回符合连接条件的记录