数据库的内、外连接
  TEZNKK3IfmPf 2023年11月14日 20 0

问题描述

在最近的一次项目的后台框架基本搭建好之后,需要进行对数据库的设计以及数据库表之间的连接。因此自己下来也学习了一下对数据库的左、右、内连接。问题就是数据库连接是什么?如何去连接呢?接下来就是我自己学习之后的到的结果。

数据库连接是为了在不同的表中提取出我们需要的信息,将我们需要的信息匹配在一起。达到精简的效果,而没有多余的信息。但是如何实现呢?这就需要用到对数据库的连接。其中,包括内、外连接等,外链接又分为左、右连接。

1.内连接:如果表中至少一个匹配,则返回行。

2.左链接:即使右表中没有匹配的信息,也从左表返回所有行。

3.右连接:即使左表中没有匹配的信息,也从右表返回所有行。

解决方案

首先创建了两张表,一张是学生信息表,一张是课程信息表如图:

数据库的内、外连接

用数据库连接来的到学生的选课信息。首先是使用内连接,SQL语句为:SELECT student_id,students.name,subjects.subject_name FROM students
JOIN subjects ON students.id=subjects.s_id ORDER BY students.id

得到以下结果如图:

数据库的内、外连接

左链接SQL语句为:SELECT student_id,students.name,subjects.subject_name FROM students
LEFT JOIN subjects ON students.id=subjects.s_id ORDER BY students.id

结果为如图:

数据库的内、外连接

其中null表示在右表中没有匹配的信息。

右连接SQL语句:

SELECT student_id,students.name,subjects.subject_name FROM students RIGHT JOIN subjects ON students.id=subjects.s_id ORDER BY students.id

结果为如图:

数据库的内、外连接

其中null表示在左表中没有匹配的信息。

SELECT student_id,students.name,subjects.subject_name FROM students RIGHT JOIN subjects表示在在students和subjects两张表里面找student_id,name,subject_name对应的信息,ON students.id=subjects.s_id

表示当这两个信息相同的时候才会匹配在一起,ORDER BY students.id

表示以students.id来排序。

结语

数据库的连接是建立在设计好数据库的基础上,相比设计数据库而言,数据库连接要容易多了。需要重点掌握的就是SQL语句的运用,作为初学者的角度,学习写程序最为重要的就是慢慢去理解代码的含义,以及有哪些用处。

希望本文章能够帮助你对数据库的学习。

更多精彩文章

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年04月26日   56   0   0 java数据库sql
  TEZNKK3IfmPf   2024年05月31日   27   0   0 sqlite数据库
  TEZNKK3IfmPf   2024年05月31日   31   0   0 数据库mysql
  TEZNKK3IfmPf   2024年05月31日   27   0   0 数据库mysql
TEZNKK3IfmPf