360教程:是一个免费提供流行杀毒软件教程、在线学习分享的学习平台!

如何运用mysql语句创建联结

时间:2022-10-2作者:未知来源:360教程人气:

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
为什么要使用联结

正如所述,分解数据为多个表能更有效地存储,更方便地处理,并且具有更大的可伸缩性。但这些好处是有代价的。

如果数据存储在多个表中,怎样用单条 SELECT 语句检索出数据?

答案是使用联结。简单地说,联结是一种机制,用来在一条 SELECT语句中关联表,因此称之为联结。使用特殊的语法,可以联结多个表返回一组输出,联结在运行时关联表中正确的行。

维护引用完整性 重要的是,要理解联结不是物理实体。换句话说,它在实际的数据库表中不存在。联结由MySQL根据需要建立,它存在于查询的执行当中。

在使用关系表时,仅在关系列中插入合法的数据非常重要。回到这里的例子,如果在 products 表中插入拥有非法供应商ID(即没有在 vendors 表中出现)的供应商生产的产品,则这些产品是不可访问的,因为它们没有关联到某个供应商。

为防止这种情况发生,可指示MySQL只允许在 products 表的供应商ID列中出现合法值(即出现在 vendors 表中的供应商)。

这就是维护引用完整性,它是通过在表的定义中指定主键和外键来实现的。


创建联结

联结的创建非常简单,规定要联结的所有表以及它们如何关联即可。请看下面的例子:

输入:

select vend_name,prod_name,prod_price from vendors,products where vendors.vend_id= products.vend_id order by vend_name,prod_name;

输出:

QQ截图20170510105032.png

QQ截图20170510105038.png

分析:我们来考察一下此代码。 SELECT 语句与前面所有语句一样指定要检索的列。这里,最大的差别是所指定的两个列( prod_name和 prod_price )在一个表中,而另一个列( vend_name )在另一个表中。

现在来看 FROM 子句。与以前的 SELECT 语句不一样,这条语句的 FROM子 句列出了两个表,分别是 vendors 和 products 。它们就是这条 SELECT语句联结的两个表的名字。这两个表用 WHERE 子句正确联结, WHERE 子句指示MySQL匹配 vendors 表中的 vend_id 和 products 表中的 vend_id 。

可 以 看 到 要 匹 配 的 两 个 列 以 vendors.vend_id 和 products.vend_id 指定。这里需要这种完全限定列名,因为如果只给出 vend_id ,则MySQL不知道指的是哪一个(它们有两个,每个表中一个)。

完全限定列名 在引用的列可能出现二义性时,必须使用完全限定列名(用一个点分隔的表名和列名)。如果引用一个没有用表名限制的具有二义性的列名,MySQL将返回错误。

【相关推荐】

1.什么是mysql子查询?如何利用子查询进行过滤?

2.mysql创建计算字段使用子查询

3.mysql中什么是联结和关系表?

4.MySQL中WHERE子句重要性和如何联结多个表

以上就是如何使用mysql语句创建联结的详细内容,更多请关注php中文网其它相关文章!


学习教程快速掌握从入门到精通的SQL知识。



关键词:如何运用mysql语句创建联结




Copyright © 2012-2018 360教程(http://www.360sd.cn) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版