广告
返回顶部
首页 > 资讯 > 数据库 >Mysql数据库连接查询
  • 657
分享到

Mysql数据库连接查询

2024-04-02 19:04:59 657人浏览 薄情痞子
摘要

    Mysql数据库连接查询连接是关系数据库模型的主要特点。连接查询是关系数据库中最主要的查询,主要包括内连接、外连接等。通过连接运算可以实现多个表查询。当查询数

    

Mysql数据库连接查询

  • 连接是关系数据库模型的主要特点。连接查询是关系数据库中最主要的查询,主要包括内连接、外连接等。通过连接运算可以实现多个表查询。当查询数据时,通过连接操作查询出存放在多个表中的不同实体信息。当两个或多个表中存在相同意义的字段时,便可以通过这些字段对不同的表进行连接查询。如下将介绍多表之间的内连接查询、外连接查询以及复合条件连接查询。

内连接查询

  内连接(inner join)使用比较运算符进行表间列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,并组合成新的记录。新建学生表、班级表,在两个表之间实现连接查询。其中tb_class中的主键id为tb_student的外键,表结构如下:

Mysql数据库连接查询

表中数据如下:

       Mysql数据库连接查询        Mysql数据库连接查询

  表的连接查询语句为:SELECT tb_student.*,tb_class.name FROM tb_student,tb_class WHERE tb_student.classID=tb_class.id; 或 SELECT tb_student.*,tb_class.name FROM tb_student INNER JOIN tb_class ON tb_student.classID=tb_class.id;

Mysql数据库连接查询

  如果在一个连接查询中,涉及到的两个表都是同一个表,这种查询称为自连接查询,自连接是一种特殊的内连接,它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表。如下是对tb_student表的查询,查询和id为1的学生为同一个班的同学:

Mysql数据库连接查询

外连接查询

   连接查询将查询多个表中相关联的行,内连接时,返回查询结果集合中的仅是符合查询条件和连接条件的行。但有时需要包含没有关联的行中数据,即返回查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左连接)、右表(右连接)或两个边表中的所有数据行。外连接分为左外连接和右外连接;

  1. LEFT JOIN(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录

  2. RIGHT JOIN(右连接):返回包括右表中所有记录和左表中连接字段相等的记录

  • LEFT JOIN 左连接

  左连接的结果包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果行中右表的所有选择列表列均为空值。如下是学生表和班级表,查询所有学生所在班级的名称,包括还没有给分配班级的学生。

                          Mysql数据库连接查询      Mysql数据库连接查询

  左连接语句为:SELECT tb_student.name,tb_class.name FROM tb_student LEFT OUTER JOIN tb_class ON tb_student.classID=tb_class.id;

Mysql数据库连接查询

Mysql数据库连接查询

  • RIGHT JOIN 右连接

  右连接是左连接的反向连接,将返回右表的所有行,如果右表的某行在左表中没有匹配项,左表将返回空值,如下图所示,tb_student表中没有计算机5班的学生,故计算机5班前学生名为空。

Mysql数据库连接查询

子查询

  子查询是指一个查询语句嵌套在另一个查询语句内部的查询,在SELECT子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表。子查询中常用的操作符有ANY(SOME)、ALL、IN、EXISTS。子查询可以添加到SELECT、UPDATE和DELETE语句中,而且可以进行多层嵌套。子查询中也可以使用比较运算符,如“<”、“<=”、“>”、“>=”和“!=”等。本节将介绍如何在SELECT语句中嵌套子查询。

  • 带ANY、SOME关键字的子查询

  ANY和SOME关键字是同义词,表示满足其中任一条件,他们允许创建一个表达式对子查询的返回值列表进行比较,只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件。ANY关键字接在一个比较操作符的后面,表示若与子查询返回的任何值比较为TRUE,则返回TRUE。如下是是查询比学号为1学生最低成绩(86)高的所有成绩列表:

  sql查询语句为:SELECT * FROM tb_score WHERE grade> ANY(SELECT grade FROM tb_score WHERE sID=1);

Mysql数据库连接查询  Mysql数据库连接查询

  • 带ALL关键字的子查询

  关键字ALL与ANY和SOME不同,使用ALL时需要同时满足内层查询的条件,例如,将如上的例子中的ANY改为ALL,则查询比学号为1的学生成绩(86,90)都高的成绩,则如上可看出查询出结果为空。

  • 带EXISTS关键字的子查询

  EXISTS关键字后面的参数是一个任意的子查询,系统对子查询进行运算以判断它是否返回行,如果至少返回一行,那么EXISTS的结果为TRUE,此时外层查询语句将进行查询;如果子查询没有返回任何行,那么EXISTS返回的结果为FALSE,此时外层语句将不进行查询。

Mysql数据库连接查询

  • 带IN关键字的子查询

  IN关键字进行子查询时,内层查询语句仅仅返回一个数据列,这个数据列里的值将提供给外层查询语句进行比较操作。如下两条语句分别查询学生的语文成绩、查询2班学生的所有成绩:

  查询学生语文成绩:SELECT sID,grade FROM tb_score WHERE cID IN (SELECT id FROM tb_course WHERE name='语文');

Mysql数据库连接查询

  查询2班学生的所有成绩:SELECT sID,cID,grade FROM tb_score WHERE sID IN (SELECT id FROM tb_student WHERE classID=2);

Mysql数据库连接查询

合并查询

  利用UNION关键字,可以给出多条SELECT语句,并将它们的结果组合成单个结果集。合并时两个表对应的列数和数据类型必须相同。各个SELECT语句之间使用UNioN或UNION ALL关键字分隔。UNION不使用关键字ALL执行时,删除重复记录,所有返回行都是唯一的;使用关键字ALL的作用是不删除重复行也不对结果进行自动排序

  如查询1号课程且大于80分和4号学生的成绩:SELECT sID,grade FROM tb_score WHERE grade>80 AND cID=1 UNION SELECT sID,grade FROM tb_score WHERE sID=4;SELECT sID,grade FROM tb_score WHERE grade>80 AND cID=1 UNION ALL SELECT sID,grade FROM tb_score WHERE sID=4;

Mysql数据库连接查询

Mysql数据库连接查询

正则表达式

  正则表达式通常被用来检索或替换那些符合某个模式的文本内容,根据指定的匹配模式匹配文本中符合要求的特殊字符串。例如从一个文本文件中提取电话号码,查找一篇文章中重复淡出或者替换用户输入的某些敏感词语等等,这些地方都可以使用正则表达式。mysql中使用REGEXP关键字指定正则表达式的字符串匹配模式,a如下表列出了REGEXP操作符中常用匹配列表。

选项说明例子匹配值实例
^匹配文本的开始字符'^b'匹配以字母b开头的字符串book,big,banana,bike
$匹配文本的结束字符'st$'匹配以st结尾的字符串test,resist,rest,persist
.匹配任何单个字符'b.t'匹配任何b和t之间一个字符bit,bat,but,bite
*匹配零个或多个在它前面的字符'f*n'匹配字符n前面有任意个字符ffn,fan,faan,fit
+匹配前面的字符1或多次'ba+'匹配以b开头后紧跟至少有一个aba,bay,bare,battle
<字符串>匹配包含指定的字符串的文本'ha'happy,hacker,hackman
[字符集合]匹配字符集合中任何一个字符'[xz]'匹配x或者zdizzy,zebra,x-ray,extra
[^]匹配不在括号中的任何字符'[^abc]'匹配任何不包含a、b和c的字符串desk,fox,file
字符串{n,}匹配前面的字符串至少n次b{2}匹配两个或者更多个bbb,bbb,bbbb
字符串{n,m}匹配前面字符串至少n次,至多m次。如果n=0,此参数为可选参数b{2,4}匹配最少2个,最多4个bbb,bbb,bbbb

  选择学生表中infORMation列中首字母为z的行:SELECT * FROM tb_student WHERE information REGEXP '^z'; 

Mysql数据库连接查询

  其它正则表达式的举例略,大家可以根据自己需求自行设计。


您可能感兴趣的文档:

--结束END--

本文标题: Mysql数据库连接查询

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql数据库连接查询
        Mysql数据库连接查询连接是关系数据库模型的主要特点。连接查询是关系数据库中最主要的查询,主要包括内连接、外连接等。通过连接运算可以实现多个表查询。当查询数...
    99+
    2022-10-18
  • MYSQL数据库--连接查询
    连接查询 连接是把不同表的记录连到一起的最普遍的方法。一种错误的观念认为由于MySQL的简单性和源代码开放性,使它不擅长连接。这种观念是错误的。MySQL从一开始就能够很好地支持连接,现在还以支持标准的S...
    99+
    2022-10-18
  • MySQL数据库:多表连接查询
    多表连接查询 注意:使用连接技术建议将表经行重命名! # explain 检索连接是否达标 # 内连接 # 语法1 from 表1 inner join 表2 on 主键字段=外键字段 [where 条件表达式] # 语法2 ...
    99+
    2022-01-30
    MySQL数据库:多表连接查询
  • MySQL数据库连接查询 join原理
    目录1、连接查询的分类2、交叉连接2.1、原理2.2、基本语法2.3、应用3、内连接3.1、原理3.2、基本语法3.3、应用4、外连接4.1、原理4.2、基本语法4.3、特点4.4、...
    99+
    2022-11-13
  • MySQL数据库如何连接查询join
    今天小编给大家分享一下MySQL数据库如何连接查询join的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、连接查询的分类交...
    99+
    2023-07-02
  • Mysql查询数据库连接状态及连接信息
    Mysql查询数据库连接状态及连接信息 使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小、字符集、用户等等。下面总结了一些查看数据库相关信息的命令 查看显示所有数据库 mysql> s...
    99+
    2023-09-10
    mysql 数据库 sql
  • MySQL数据查询之连接查询的案例
    小编给大家分享一下MySQL数据查询之连接查询的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!连接关系是关系数据库模型的主要...
    99+
    2022-10-18
  • Mysql怎么查询数据库连接状态及连接信息
    本文小编为大家详细介绍“Mysql怎么查询数据库连接状态及连接信息”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mysql怎么查询数据库连接状态及连接信息”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2023-04-19
    mysql 数据库
  • SQL数据查询——连接查询
    文章目录 一、等值和非等值连接查询1.等值连接查询2.非等值连接查询 二、自连接与非自连接三、内连接与外连接1.内连接2.外连接使用左外连接还是右外连接?满外连接 四、UNIO&...
    99+
    2023-10-26
    sql 数据库 mysql oracle
  • Mysql查询数据库连接状态以及连接信息详解
    目录查看显示所有数据库查看当前使用的数据库查看数据库使用端口查看当前数据库大小查看数据所占的空间大小查看索引所占的空间大小查看数据库编码查看数据库的表信息查看数据库的所有用户信息查看某个具体用户的权限查看数据库的最大连接...
    99+
    2023-04-14
    mysql查询数据库连接信息的命令 MySQL数据库连接 mysql查询数据库连接状态信息
  • MySQL数据库中多表查询之内连接,外连接,子查询的示例分析
    小编给大家分享一下MySQL数据库中多表查询之内连接,外连接,子查询的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!多表...
    99+
    2022-10-18
  • MySql数据库单表查询与多表连接查询效率对比
    这段时间在做项目的过程中,遇到一个模块,数据之间的联系很复杂,在建表的时候就很纠结,到底该怎么去处理这些复杂的数据呢,是单表查询,然后在业务层去处理数据间的关系,还是直接通过多表连接...
    99+
    2022-11-12
  • oracle怎么查询数据库连接数
    Oracle数据库中可以通过以下两种方式查询数据库连接数:1. 使用SQL语句查询V$SESSION视图:可以使用以下SQL语句查询...
    99+
    2023-09-22
    oracle 数据库
  • mysql连接查询
    11.5连接查询(列连接) 问题:学生表有十条数据,成绩表有十条数据。 连接之后有多少条数据(笛卡尔积):10*10=100   连续查询会产生笛卡尔积;假设集合A = {a,b},集合B = {c,d} 两个集合的笛卡尔积{(a,c),...
    99+
    2020-01-06
    mysql连接查询
  • Javascript连接数据库查询并插入数据
    目录一、准备数据库二、在Vscode中编译package.json文件三、用Javascript代码实现数据库的连接四、查询和插入数据编译环境 : vscode数据库 : MySQL...
    99+
    2022-11-13
  • 连接查询(多表查询)——MySQL
    连接查询(多表查询) 又称多表查询,当查询的字段涉及多个表的时候,就要用到连接查询 分类: 为表起别名: 提高语句的简洁度区分多个重名字段注意:如果为表起了别名,则查询的字段就不能使用原来的别名去限定 内连接 查询A、B 交集部分数据 语...
    99+
    2023-08-18
    数据库 mysql 多表查询
  • MySQL数据库学习之去重与连接查询详解
    目录1.去重2.连接查询使用where进行多表连接查询内连接 - 等值连接内连接 - 非等值连接内连接 - 自连接外连接 - 左右外连接三表连接1.去重 示例表内容参考此文章 有些 mysql 数据表中可能存在...
    99+
    2022-07-24
    MySQL去重 MySQL连接查询 MySQL去重连接查询
  • MYSQL自连接查询
    MYSQL自连接查询 概念:左表和右表是同一个表,根据连接查询条件查询两个表中的数据. 说明: ​ (1)自连接查询必须对表起别名; ​ 2) 自连接的使用方法和内连接,左连接,右连接完全相同,只不过连接的左表和右表是同一张表. 案例 CR...
    99+
    2023-08-20
    mysql 数据库 sql
  • mysql 连接查询(俗称连表查询)内连接、外连接、自然连接
    连接查询的分类 本文讨论中用到的测试数据``create table student(id int primary key auto_increment,name varchar(10));ins...
    99+
    2022-10-18
  • 如何查看mysql数据库连接数
    要查看MySQL数据库的连接数,可以使用以下方法:1. 使用MySQL的命令行客户端登录到数据库服务器:```mysql -u us...
    99+
    2023-08-09
    mysql数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作