千家信息网

MySQL子查询操作实例详解

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文实例总结了MySQL子查询操作。分享给大家供大家参考,具体如下:定义两个表tb1和tb2CREATE table tbl1 ( num1 INT NOT NULL);CREATE table tb
千家信息网最后更新 2026年11月01日MySQL子查询操作实例详解

本文实例总结了MySQL子查询操作。分享给大家供大家参考,具体如下:

定义两个表tb1和tb2

CREATE table tbl1 ( num1 INT NOT NULL);CREATE table tbl2 ( num2 INT NOT NULL);

向两个表中插入数据:

INSERT INTO tbl1 values(1), (5), (13), (27);INSERT INTO tbl2 values(6), (14), (11), (20);

any some关键字的子查询

SELECT num1FROM tbl1WHERE num1 > ANY (SELECT num2 FROM tbl2);

all关键字的子查询

SELECT num1FROM tbl1WHERE num1 > ALL (SELECT num2 FROM tbl2);

exists关键字的子查询

SELECT * from fruitsWHERE EXISTS(SELECT s_name FROM suppliers WHERE s_id = 107);SELECT * from fruitsWHERE f_price>10.20 AND EXISTS(SELECT s_name FROM suppliers WHERE s_id = 107);SELECT * from fruitsWHERE NOT EXISTS(SELECT s_name FROM suppliers WHERE s_id = 107);

带in关键字的子查询

SELECT c_idFROM ordersWHERE o_num IN (SELECT o_num FROM orderitems WHERE f_id = 'c0');SELECT c_idFROM ordersWHERE o_num NOT IN (SELECT o_num FROM orderitems WHERE f_id = 'c0');

带比较运算符的子查询

SELECT s_id, f_name FROM fruitsWHERE s_id =(SELECT s1.s_id from suppliers AS s1 WHERE s1.s_city = 'Tianjin');

<>所有非

SELECT s_id, f_name FROM fruitsWHERE s_id <>(SELECT s1.s_id from suppliers AS s1 WHERE s1.s_city = 'Tianjin');

定义两个表tb1和tb2

CREATE table tbl1 ( num1 INT NOT NULL);CREATE table tbl2 ( num2 INT NOT NULL);

向两个表中插入数据

INSERT INTO tbl1 values(1), (5), (13), (27);INSERT INTO tbl2 values(6), (14), (11), (20);

【例.53】返回tbl2表的所有 num2 列,然后将 tbl1 中的 num1 的值与之进行比较,只要大于 num2的任何值为符合查询条件的结果

SELECT num1FROM tbl1WHERE num1 > ANY (SELECT num2 FROM tbl2);

【例.54】返回tbl1表的中比tbl2表num2 列所有值都大的值

SELECT num1FROM tbl1WHERE num1 > ALL (SELECT num2 FROM tbl2);

【例.55】查询表suppliers表中是否存在s_id=107的供应商,如果存在则查询fruits表中的记录

SELECT * from fruitsWHERE EXISTS(SELECT s_name FROM suppliers WHERE s_id = 107);

【例.56】查询表suppliers表中是否存在s_id=107的供应商,如果存在则查询fruits表中的f_price大于10.20的记录

SELECT * from fruitsWHERE f_price>10.20 AND EXISTS(SELECT s_name FROM suppliers WHERE s_id = 107);

【例.57】查询表suppliers表中是否存在s_id=107的供应商,如果不存在则查询fruits表中的记录

SELECT * from fruitsWHERE NOT EXISTS(SELECT s_name FROM suppliers WHERE s_id = 107);

【例.58】在orderitems表中查询订购f_id为c0的订单号,并根据订单号查询具有订单号的客户c_id

SELECT c_id FROM orders WHERE o_num IN(SELECT o_num FROM orderitems WHERE f_id = 'c0');

【例.59】与前一个例子语句类似,但是在SELECT语句中使用NOT IN操作符

SELECT c_id FROM orders WHERE o_num NOT IN(SELECT o_num FROM orderitems WHERE f_id = 'c0');

【例.60】在suppliers表中查询s_city等于Tianjin的供应商s_id,然后在fruits表中查询所有该供应商提供的水果的种类

SELECT s_id, f_name FROM fruitsWHERE s_id =(SELECT s1.s_id from suppliers AS s1 WHERE s1.s_city = 'Tianjin');

【例.61】在suppliers表中查询s_city等于Tianjin的供应商s_id,然后在fruits表中查询所有非该供应商提供的水果的种类,SQL语句如下:

SELECT s_id, f_name FROM fruitsWHERE s_id <>(SELECT s1.s_id from suppliers AS s1 WHERE s1.s_city = 'Tianjin');

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》

希望本文所述对大家MySQL数据库计有所帮助。

查询 供应商 供应 两个 关键 关键字 技巧 数据 查询表 订单 订单号 语句 大全 数据库 水果 种类 实例 专题 事务 例子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 狮子座互联网科技 广州宏创互联网科技 善班互联网科技有限公司 互联网科技类展会 互联网巨头投资的硬核科技 深圳市运趣互联网科技有限公司 知域互联网科技有限公司大骗子 崇明区互联网教育科技售后服务 新兴科技互联网创新大赛颁奖典礼 消费医药和互联网科技 互联网科技和信息 科技类公司包括互联网吗 华夏恒生科技与互联网科技 佛山市拉法互联网科技有限公司 每天都有哪些好的互联网科技 城市宝互联网科技有限公司 福建互联网展示科技馆设计 中国新注册互联网科技 中国主要互联网科技公司 博彦科技互联网金融 互联网科技媒体 迪茉互联网科技 深圳艾佳互联网科技 盛创互联网科技有限公司 互联网科技创新服务 受益于互联网科技的高速发展 荆州市昕露互联网络科技有限公司 链环科技传统企业怎么转型互联网 科技互联网公司两年变化
0