返回顶部
首页 > 资讯 > 数据库 >Mysql 连接的使用
  • 240
分享到

Mysql 连接的使用

2024-04-02 19:04:59 240人浏览 安东尼
摘要

Mysql 连接的使用在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用 mysql 的 JOIN 在两个或

Mysql 连接的使用

在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。

本章节我们将向大家介绍如何使用 mysql 的 JOIN 在两个或多个表中查询数据。

你可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。

JOIN 按照功能大致分为如下三类:

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。

  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。

  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

本章节使用的数据库结构及数据下载:runoob-mysql-join-test.sql。


在命令提示符中使用 INNER JOIN

我们在RUNOOB数据库中有两张表 tcount_tbl 和 runoob_tbl。两张数据表数据如下:

实例

尝试以下实例:

测试实例数据

mysql> use RUNOOB;Database changedmysql> SELECT * FROM tcount_tbl; +---------------+--------------+ | runoob_author | runoob_count | +---------------+--------------+ | 菜鸟教程  | 10           | | RUNOOB.COM    | 20           | | Google        | 22           | +---------------+--------------+3 rows in set (0.01 sec)

mysql> SELECT * from runoob_tbl; +-----------+---------------+---------------+-----------------+ | runoob_id | runoob_title  | runoob_author | submission_date | +-----------+---------------+---------------+-----------------+ | 1         | 学习 PHP    | 菜鸟教程  | 2017-04-12      | | 2         | 学习 MySQL  | 菜鸟教程  | 2017-04-12      | | 3         | 学习 Java   | RUNOOB.COM    | 2015-05-01      | | 4         | 学习 python | RUNOOB.COM    | 2016-03-06      | | 5         | 学习 C      | FK            | 2017-04-05      | +-----------+---------------+---------------+-----------------+5 rows in set (0.01 sec)

接下来我们就使用MySQL的INNER JOIN(也可以省略 INNER 使用 JOIN,效果一样)来连接以上两张表来读取runoob_tbl表中所有runoob_author字段在tcount_tbl表对应的runoob_count字段值:

INNER JOIN

mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author; +-------------+-----------------+----------------+ | a.runoob_id | a.runoob_author | b.runoob_count | +-------------+-----------------+----------------+ | 1           | 菜鸟教程    | 10             | | 2           | 菜鸟教程    | 10             | | 3           | RUNOOB.COM      | 20             | | 4           | RUNOOB.COM      | 20             | +-------------+-----------------+----------------+4 rows in set (0.00 sec)

以上 SQL 语句等价于:

WHERE 子句

mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a, tcount_tbl b WHERE a.runoob_author = b.runoob_author; +-------------+-----------------+----------------+ | a.runoob_id | a.runoob_author | b.runoob_count | +-------------+-----------------+----------------+ | 1           | 菜鸟教程    | 10             | | 2           | 菜鸟教程    | 10             | | 3           | RUNOOB.COM      | 20             | | 4           | RUNOOB.COM      | 20             | +-------------+-----------------+----------------+4 rows in set (0.01 sec)

Mysql 连接的使用


MySQL LEFT JOIN

MySQL left join 与 join 有所不同。 MySQL LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。

实例

尝试以下实例,以 runoob_tbl 为左表,tcount_tbl 为右表,理解 MySQL LEFT JOIN 的应用:

LEFT JOIN

mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count

FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author; +-------------+-----------------+----------------+ | a.runoob_id | a.runoob_author | b.runoob_count | +-------------+-----------------+----------------+ | 1           | 菜鸟教程    | 10             | | 2           | 菜鸟教程    | 10             | | 3           | RUNOOB.COM      | 20             | | 4           | RUNOOB.COM      | 20             | | 5           | FK              | NULL           | +-------------+-----------------+----------------+5 rows in set (0.01 sec)

以上实例中使用了 LEFT JOIN,该语句会读取左边的数据表 runoob_tbl 的所有选取的字段数据,即便在右侧表 tcount_tbl中 没有对应的 runoob_author 字段值。

Mysql 连接的使用


MySQL RIGHT JOIN

MySQL RIGHT JOIN 会读取右边数据表的全部数据,即便左边边表无对应数据。

实例

尝试以下实例,以 runoob_tbl 为左表,tcount_tbl 为右表,理解MySQL RIGHT JOIN的应用:

RIGHT JOIN

mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a RIGHT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author; +-------------+-----------------+----------------+ | a.runoob_id | a.runoob_author | b.runoob_count | +-------------+-----------------+----------------+ | 1           | 菜鸟教程    | 10             | | 2           | 菜鸟教程    | 10             | | 3           | RUNOOB.COM      | 20             | | 4           | RUNOOB.COM      | 20             | | NULL        | NULL            | 22             | +-------------+-----------------+----------------+5 rows in set (0.01 sec)

以上实例中使用了 RIGHT JOIN,该语句会读取右边的数据表 tcount_tbl 的所有选取的字段数据,即便在左侧表 runoob_tbl 中没有对应的runoob_author 字段值。

Mysql 连接的使用


php 脚本中使用 JOIN

PHP 中使用 mysqli_query() 函数来执行 SQL 语句,你可以使用以上的相同的 SQL 语句作为 mysqli_query() 函数的参数。

尝试如下实例:

MySQL ORDER BY 测试:

<?php

$dbhost = 'localhost:3306';  // mysql服务器主机地址

$dbuser = 'root';            // mysql用户名

$dbpass = '123456';          // mysql用户名密码

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);if(! $conn )

{   

die('连接失败: ' . mysqli_error($conn));

}

// 设置编码,防止中文乱码

mysqli_query($conn , "set names utf8");

$sql = 'SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author';

mysqli_select_db( $conn, 'RUNOOB' );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{    

die('无法读取数据: ' . mysqli_error($conn));

}

echo '<h3>菜鸟教程 MySQL JOIN 测试<h3>';

echo '<table border="1"><tr><td>教程 ID</td><td>作者</td><td>登陆次数</td></tr>';

while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))

{    

echo "<tr><td> {$row['runoob_id']}</td> ".      

  "<td>{$row['runoob_author']} </td> ".      

  "<td>{$row['runoob_count']} </td> ".       

"</tr>";

}

echo '</table>';

mysqli_close($conn);

?>

输出结果如下图所示:

Mysql 连接的使用


您可能感兴趣的文档:

--结束END--

本文标题: Mysql 连接的使用

本文链接: https://lsjlt.com/news/40973.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mysql 连接的使用
    Mysql 连接的使用在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或...
    99+
    2024-04-02
  • 怎么使用mysql-connector连接使用MySQL
    这篇“怎么使用mysql-connector连接使用MySQL”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用mysq...
    99+
    2023-06-08
  • jdbc-使用java连接mysql
    package com.cqust; import com.mysql.jdbc.Driver; import java.sql.Connection; import java.sql.DriverManager; import java...
    99+
    2019-12-08
    jdbc-使用java连接mysql
  • C++连接使用MySQL的方法
    C++连接使用MySQL,供大家参考,具体内容如下 定义MySQLCon类 class MySQLCon { MYSQL mysql; public: int errornum; string errort...
    99+
    2022-05-16
    C++ mysql
  • golang mysql的连接池如何使用
    本文小编为大家详细介绍“golang mysql的连接池如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“golang mysql的连接池如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-05
  • MySQL内外连接的具体使用
    目录内连接外连接左外连接右外连接简单案例MySQL内外连接 表的连接分为内连接和外连接。 内连接 内连接 内连接的SQL如下: SELECT ... FROM t1 INNE...
    99+
    2023-01-28
    MySQL内外连接
  • 如何使用jdk连接mysql
    如何使用jdk连接mysql,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  import java.sql.*; ...
    99+
    2024-04-02
  • 如何使用ADO连接mysql
    这篇文章给大家介绍如何使用ADO连接mysql,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、创建数据库、创建表、插入数据>show databases;>create ...
    99+
    2024-04-02
  • 如何使用asp连接Mysql
    这篇文章主要介绍了如何使用asp连接Mysql,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ASP连接Mysql数据库的问题。下了一个MyS...
    99+
    2024-04-02
  • mysql怎么使用连接池
    mysql使用连接池的示例:手动配置连接池。    public void demo1(){       &n...
    99+
    2024-04-02
  • 如何使用eclipse连接mysql
    本篇文章为大家展示了如何使用eclipse连接mysql,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。打开eclipse,依次点击Window-preferences-java-Build Path...
    99+
    2023-06-15
  • MySQL使用C语言连接
    文章目录 一、准备工作二、MySQL 的 C 语言接口1. mysql_init2. mysql_real_connect3. mysql_close4. mysql_set_characte...
    99+
    2023-09-09
    mysql c语言 数据库
  • 怎么使用Python连接MySQL
    这篇文章主要介绍了怎么使用Python连接MySQL的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python连接MySQL文章都会有所收获,下面我们一起来看看吧。1、MySQL-pythonMySQL...
    99+
    2023-06-27
  • 如何使用pyMySql连接mysql
    本篇内容介绍了“如何使用pyMySql连接mysql”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!安装pip3 install pymysq...
    99+
    2023-06-04
  • golang mysql的连接池的具体使用
    目录1.mysql-通过sql建立连接池2.mysql-gorm 建立连接池3.连接池相较于单个client4.通用连接池参考1.mysql-通过sql建立连接池 连接池用sql.Open函数创建连接池,可是此时只是初始...
    99+
    2023-02-21
    golangmysql连接池 golang连接池
  • MySQL的左连接、右连接、内连接
    一. 写法: 1.左连接:   SELECT student.Sno,Sname,Ssex,Sbirth,Sclass,Cno,Grade FROM student LEFT OUTER JOIN sc ON student.Sno...
    99+
    2023-10-18
    mysql sql
  • 如何使用MySql的API连接MySql数据库
    本篇内容介绍了“如何使用MySql的API连接MySql数据库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
  • 使用navicat连接mysql的操作步骤
    小编给大家分享一下使用navicat连接mysql的操作步骤,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!打开Navicat P...
    99+
    2024-04-02
  • 连接mysql用mysql_connect不能连接
    用mysqli_connect就可以解决。 mysqli_array()有连个参数,第一个是连接mysql名。 php遇到这个警告Warning: Use of undefined constant title - assumed "tit...
    99+
    2015-08-02
    连接mysql用mysql_connect不能连接
  • 使用Java怎么连接Mysql 8.0.18
    这篇文章给大家介绍使用Java怎么连接Mysql 8.0.18,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.官网下载mysql-server.安装教程参考:mysql 8.0.18...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作