欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql詳細分析講解子查詢的使用

 更新時間:2022年04月27日 11:49:20   作者:羨羨ˇ  
子查詢指一個查詢語句嵌套在另一個查詢語句內(nèi)部的查詢,這個特性從 MySQL 4.1開始引入,在SELECT子句中先計算子查詢,子查詢結(jié)果作為外層另一個查詢的過濾條件,查詢可以基于一個表或者多個表

出現(xiàn)在其他語句中的 select 語句,稱為子查詢或內(nèi)查詢;外部的查詢語句,稱為主查詢或 外查詢 . 

-- 子查詢
-- 查詢的條件來自于另一查詢的結(jié)果
SELECT * FROM t_user WHERE number=(SELECT number FROM t_user WHERE NAME='張三')

當然子查詢也有類型,分為以下幾種 : 

  • 標量子查詢(結(jié)果集只有一行一列)
  • 列子查詢(結(jié)果集只有一列多行)
  • 行子查詢(結(jié)果集有一行多列)(較少)
  • 表子查詢(結(jié)果集一般為多行多列)

這里我們以新建t_user表為例

 

需要注意的是 : 這里的分類是根據(jù)內(nèi)嵌子查詢的結(jié)果來分的 例如上述的sql語句就是標量子查詢

子查詢結(jié)果只有一行一列

接著我們根據(jù)子查詢在sql語句中出現(xiàn)的位置來討論 : 

select后面:僅僅支持標量子查詢

-- select語句后面,將t1查詢出的結(jié)果作為子查詢的條件
SELECT t1.number,
  (SELECT NAME FROM t_user t2 WHERE t1.name = t2.name)
FROM t_user t1

查詢結(jié)果 : 

insert into , update和 delete后面 : 

insert into用來為表中插入數(shù)據(jù) , 所以后面是可以跟列子查詢和表子查詢的

-- insert into 后跟子查詢
INSERT INTO t_user(number,NAME,age,birthday,weight,sex,opertime)
       SELECT number,NAME,age,birthday,weight,sex,NOW() FROM t_user WHERE id=3

這里需要注意的是 update與delete

UPDATE t_user SET NAME='abc' WHERE number=(SELECT number FROM t_user WHERE weight=110)

DELETE FROM t_user WHERE id=(SELECT id FROM t_user WHERE id=7)

上述這兩條sql , mysql是不允許我們這樣去執(zhí)行的 : 

mysql的底層機制使得我們在操作此表的時候是不能去改變此表結(jié)構(gòu)的 

也就是說,子查詢不能查詢當前正在操作的表

where 后面 : 可跟標量子查詢, 列子查詢, 行子查詢

-- where后跟標量子查詢
-- 查詢體重最大的人信息
SELECT * FROM t_user WHERE weight=(SELECT MAX(weight) FROM t_user)
-- where后跟列子查詢
-- 查詢體重大于或等于130的人信息
SELECT * FROM t_user WHERE weight IN (SELECT weight FROM t_user WHERE weight>=130)
-- where后跟行子查詢
-- 查詢年齡最大,體重最大的人的信息
SELECT * FROM t_user 
     WHERE (age,weight) = (SELECT MAX(age),MAX(weight) FROM t_user)

from 后面 : 可跟表子查詢

表字查詢的結(jié)果是多行多列, 也就是一個表

-- 表子查詢
SELECT t.age FROM (SELECT age,weight FROM t_user)t

結(jié)果 :

到此這篇關于mysql詳細分析講解子查詢的使用的文章就介紹到這了,更多相關mysql子查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Windows下Mysql啟動報1067的解決方法

    Windows下Mysql啟動報1067的解決方法

    這篇文章主要為大家詳細介紹了Windows下Mysql啟動報1067的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • MySQL 隨機函數(shù)獲取數(shù)據(jù)速度和效率分析

    MySQL 隨機函數(shù)獲取數(shù)據(jù)速度和效率分析

    最近做項目,需要做一個從mysql數(shù)據(jù)庫中隨機取幾條數(shù)據(jù)出來??偹苤?,order by rand 會死人的。。因為本人對大數(shù)據(jù)量方面的只是了解的很少,無解,去找百度老師。。搜索結(jié)果千篇一律。特發(fā)到這里來,供大家學習,需要的朋友可以參考下
    2016-11-11
  • MySql 5.7.17免安裝配置教程詳解

    MySql 5.7.17免安裝配置教程詳解

    這篇文章給大家詳細介紹了MySql 5.7.17免安裝配置教程,首先大家需要先下載mysql 5.7.17 的安裝包,然后解壓,具體配置過程大家通過本文一起學習吧
    2017-03-03
  • 詳解Mysql自動備份與恢復的幾種方法(圖文教程)

    詳解Mysql自動備份與恢復的幾種方法(圖文教程)

    本篇文章主要介紹了Mysql 自動備份與恢復,主要有三種方法,有需要的可以了解一下。
    2016-11-11
  • MySQL表復合查詢的實現(xiàn)

    MySQL表復合查詢的實現(xiàn)

    本文主要介紹了MySQL表的復合查詢,如何使用多表查詢、子查詢、自連接、內(nèi)外連接等復合查詢的案例,感興趣的可以了解一下
    2023-05-05
  • mysql 5.7.21解壓版本安裝 Navicat數(shù)據(jù)庫操作工具安裝

    mysql 5.7.21解壓版本安裝 Navicat數(shù)據(jù)庫操作工具安裝

    這篇文章主要為大家詳細介紹了mysql 5.7.21解壓版本安裝,Navicat數(shù)據(jù)庫操作工具安裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • SQL語句解析執(zhí)行的過程及原理

    SQL語句解析執(zhí)行的過程及原理

    這篇文章主要介紹了SQL語句解析執(zhí)行的過程及原理,文章主要通過獲得SqlSession對象后就能執(zhí)行各種CRUD方法展開全文內(nèi)容需要的小伙伴可以參考一下,希望對你有所幫助
    2022-03-03
  • 修改mysql默認字符集的兩種方法詳細解析

    修改mysql默認字符集的兩種方法詳細解析

    下面小編就為大家介紹兩種修改mysql默認字符集的方法。需要的朋友可以過來參考下
    2013-08-08
  • MySql5.5忘記root密碼怎么辦

    MySql5.5忘記root密碼怎么辦

    使用mysql5.5,突然root密碼忘記,怎么也登錄不了,很急人,該怎么解決呢?下面通過本文給大家介紹mysql5.5忘記root密碼的解決辦法,需要的朋友參考下吧
    2016-01-01
  • Ubuntu15下mysql5.6.25不支持中文的解決辦法

    Ubuntu15下mysql5.6.25不支持中文的解決辦法

    Ubuntu15下mysql5.6.25出現(xiàn)亂碼,不支持中文,該問題如何解決呢?下面看看小編是怎么解決此問題的,需要的朋友可以參考下
    2015-09-09

最新評論