数据库的内、外连接

简介: 数据库的内、外连接

问题描述

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

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

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语句的运用,作为初学者的角度,学习写程序最为重要的就是慢慢去理解代码的含义,以及有哪些用处。

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

目录
相关文章
|
4月前
|
关系型数据库 数据库 RDS
【瑶池数据库训练营及解决方案本周精选(探索PolarDB,参与RDS迁移、连接训练营)】(5.30-6.8)
本周精选聚焦数据库迁移训练营、快速连接云数据库RDS训练营及智能多模态搜索解决方案。为用户提供模拟教程与实战演练,学习RDS MySQL实例连接与数据管理技能,助力企业智能化发展。每周解锁数据库实战新场景,抓紧时间,精彩不容错过!
|
6月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
6月前
|
数据库连接 应用服务中间件 PHP
|
5月前
|
安全 Linux 网络安全
YashanDB数据库服务端SSL连接配置
YashanDB支持通过SSL连接确保数据传输安全,需在服务端生成根证书、服务器证书及DH文件,并将根证书提供给客户端以完成身份验证。服务端配置包括使用OpenSSL工具生成证书、设置SSL参数并重启数据库;客户端则需下载根证书并正确配置环境变量与`yasc_env.ini`文件。注意:启用SSL后,所有客户端必须持有根证书才能连接,且SSL与密码认证独立运行。
|
2月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
218 0
|
5月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
1074 28
|
5月前
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
267 14
|
8月前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
6月前
|
数据库
【YashanDB知识库】YDC连接数据库报错yasdb return code is zero
【YashanDB知识库】YDC连接数据库报错yasdb return code is zero
|
7月前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
308 25

热门文章

最新文章