1. 程式人生 > 其它 >MySQL基礎語法之子連結查詢和特殊查詢(union 和 limit)

MySQL基礎語法之子連結查詢和特殊查詢(union 和 limit)

子查詢和特殊查詢(union和limit)

總結了MySQL中的子查詢和特殊查詢的語法

子查詢

子查詢分為 where語句中的子查詢from語句中的子查詢select語句中的子查詢

因為select語句中的子查詢不怎麼使用,所以下面只對應where語句中的子查詢和from語句中的子查詢進行測試

  • where語句中的子查詢

where 語句中的子查詢就是指將一個 sql 查詢語句查出來的資料作為一個條件值放在 where 中進行條件判斷

基本語法

select 欄位,欄位,欄位,...
from 表名
where 欄位 = (sql查詢語句);  //括號裡的sql查詢語句就是子查詢語句

測試

查詢班級裡身高比張三高的同學的姓名和身高

select name,height
from student
where height > (select height from student where name = '張三');
  • from語句中的子查詢

from語句中的子查詢是指將一個查詢語句查詢出來的語句作為一張表來進行其它的查詢

基本語法

select 欄位,欄位,欄位,...
from (sql查詢語句)  //括號裡的sql查詢語句就是子查詢語句 能作為主表也能作為要連線的表
where 條件 

測試

因為沒有具體的樣例,所有這裡就簡單的查詢多個數據做為另一張表,然後查詢資料

將身高和年齡都大於張三的同學的姓名,身高,年齡查詢出來
select s.name,s.height,s.age
from student s
join (select height,age from student where name = '張三')  ns
on s.height > ns.height and s.age > ns.age  

union查詢

union查詢指的是:將兩個查詢合併起來查詢,而不是通過連線,這樣查詢比兩張表連線查詢效率要高。但是要注意的是這兩個查詢要查詢的數目得相同,可以一張表合併也可以多張表合併

基本語法

select 欄位,欄位
from 表
where 條件
union
select 欄位,欄位  //注意,在合併查詢的時候,兩次查詢的欄位數要相等
from 表
where 條件;

測試

查詢名字為張三和名字為李四兩個同學的所以資訊

select * 
from student
where name = '張三'
union
select * 
from student
where name = '李四'
  • limit查詢

limit 查詢指的是:可以規定在哪一條資料開始查查多少條,常用來做分頁查詢

基本語法

select 欄位,欄位
from 表
where 條件
limit 數字a 數字b  //數字啊代表從哪個資料開始讀,數字b代表讀幾個資料

測試

將班級表中的第3到6個人的所有資訊查詢出來

select *
from student
limit 2 4