mysql笔记(12)

Posted HardyDragon_CC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql笔记(12)相关的知识,希望对你有一定的参考价值。

外键(foreign key) 外键为某个表中的一列,它包含另一个表的主键值,定义了两个表之间的关系。

等值联结(equijoin)/内部联结

如果数据存储在多个表中,怎样用单条SELECT语句检索出数据?答案是使用联结
在from后添加多个表,然后注意使用完全限定名区分,利用WHERE子句建立联结关系。
应该保证所有联结都有WHERE子句,否则mysql将返回比想要的数据多得多的数据

SELECT vend_name ,prod_name,prod_price
FROM vendors v,products p
WHERE v.vend_id = p.vend_id
ORDER BY vend_name ,prod_name;

在这里插入图片描述
可以换个形式:

SELECT vend_name ,prod_name,prod_price
FROM vendors v INNER JOIN products p 
ON v.vend_id = p.vend_id ;

在这里插入图片描述

联结多个表注意指定关系,联结的表越多,性能下降越厉害

SELECT prod_name,vend_name,prod_price,quantity 
FROM orderitems o ,products p ,vendors v 
WHERE p.vend_id = v.vend_id
	AND o.prod_id = p.prod_id
	AND order_num = 20005;

在这里插入图片描述

SELECT cust_name ,cust_contact 
FROM customers c ,orders o ,orderitems os
WHERE c.cust_id = o.cust_id
	AND os.order_num = o.order_num
	AND prod_id = 'TNT2';

在这里插入图片描述

总结:联结可以显示多个表的数据,from后多个表,使用where方便指定关系,最求规范使用 inner join 和 on 配合。

以上是关于mysql笔记(12)的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

部分代码片段

MYSQL进阶学习笔记四:MySQL存储过程之定义条件,处理过程及存储过程的管理!(视频序号:进阶_11,12)

linux中怎么查看mysql数据库版本

从mysql的片段中加载ListView