美文网首页
MySQL子查询

MySQL子查询

作者: Torin76 | 来源:发表于2018-08-24 10:57 被阅读27次
为什么要使用子查询

在MySQL软件中虽然可以通过连接査询实现多表查询数据记录,但是却不建议使用。这是因为连接査询的性能很差。因此出现了连接査询的替代者子査询。在具体开发应用中,MySQL软件推荐使用子查询来实现多表査询数据记录。
对于新手,直接会执行如下SQL语句进行査询:
SELECT * FROM t_dept t,t_employee L WHERE t.deptno=L.deptno;
上述SQL语句在执行过程中,首先会对两个表进行笛卡儿积操作,然后再选取符合匹配条件的数据记录。进行笛卡儿积操作时,会生成两个数表数据记录数的乘积条数据记录,如果这两张表的数据记录比较大,则在进行笛卡儿积操作时就会造成死机。

一.单行单列子查询

先创建一张表

+--------+-----------+-------+------+------+-------------+-------+-----------+----------+
| stu_id | stu_name  | grade | sex  | age  | phone       | email | number_id | salary   |
+--------+-----------+-------+------+------+-------------+-------+-----------+----------+
|      1 | san       |     1 | 男   |   12 | 17673043785 |       |        32 |  1000.00 |
|      2 | san2      |     1 | 男   |   13 | 17673043787 |       |        22 |  2000.00 |
|      3 | 唐太宗    |     1 | 女   |   13 | 17673044786 |       |        21 |  3000.00 |
|      4 | 李飞刀    |     1 | 男   |   12 | 17673044786 |       |      NULL |  3500.00 |
|      5 | 李微      |     1 | 男   |   12 | 17673043786 |       |      NULL |  3500.00 |
|      6 | 李微      |     3 | 男   |   16 | 176883333   | 222   |        67 | 20000.00 |
|      7 | 刘备      |     5 | 女   |   20 | 11111111    | 444   |        87 |  5000.00 |
+--------+-----------+-------+------+------+-------------+-------+-----------+----------+

select stu_name,sex,phone,salary from student where( phone,salary) in (select phone,salary from student where phone ='17673044786' and salary > 1000);

显示如下:

+-----------+------+-------------+---------+
| stu_name  | sex  | phone       | salary  |
+-----------+------+-------------+---------+
| 唐太宗    | 女   | 17673044786 | 3000.00 |
| 李飞刀    | 男   | 17673044786 | 3500.00 |
+-----------+------+-------------+---------+

相关文章

  • MySQL 子查询、内联结、外联结

    子查询MySQL 子查询版本要求:MySQL4.1引入了对子查询的支持。子查询:嵌套在其他查询语句中的查询。 示例...

  • mysql 查询

    mysql的查询、子查询及连接查询 一、mysql查询的五种子句 where(条件查询)、having(筛选)、g...

  • 【MySQL】MySQL查询——子查询

    查出本网站,最新的(goods_id最大)的商品select goods_id,goods_name,cat_id...

  • 第六章 查询性能优化(下)

    MySQL查询优化器的局限性 关联子查询 MySQL的关联子查询实现的很差,最好改成左外连接(LEFT OUTER...

  • 查询性能优化

    MySQL查询优化器的局限性 关联子查询 MySQL的子查询实现的非常糟糕,最糟糕的一类查询是where条件中包含...

  • MySql查询-子查询

    子查询 在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为...

  • MySQL--基础二

    本节总结MySQL的筛选条件,聚合与分组,子查询,连接查询。 MySQL的筛选条件 MySQL中的比较运算符: 比...

  • mysql子查询

    聚合函数 聚合函数对一组值执行计算,并返回单个值。 除了 COUNT 以外,聚合函数都会忽略空值。 聚合函数经常与...

  • MySQL子查询

    为什么要使用子查询 在MySQL软件中虽然可以通过连接査询实现多表查询数据记录,但是却不建议使用。这是因为连接査询...

  • mysql子查询

    一:按照查询结果的结构分类为4种 1:标量子查询 2:行子查询 3:列子查询 4:表子查询 二:按照子查询是否...

网友评论

      本文标题:MySQL子查询

      本文链接:https://www.haomeiwen.com/subject/goqmiftx.html