MySQL多表操作

2021-10-12 12:55:52 字數 1158 閱讀 5572

(1)笛卡爾積:兩個集合的所有組合:select * from 表1,表2

(2)內連線查詢:

隱式內連線:

select * from 表1,表2 where 表1.欄位1 = 表2.id ;

select 表1.欄位1,表1,.欄位2,表2.欄位1 from 表1,表2 where 表1.欄位1 = 表2.id ;

select 表1.t1,t1,.欄位2,t2.欄位1 from 表1 t1,表2 t2 where t1.欄位1 = t2.id ;

顯示內連線:

語法:select 字段列表 from 表名1 [inner] join 表名2 on 條件

select * from 表1 inner join 表2 on 表1.欄位 = 表2.欄位

select * from 表1 join 表2 on 表1.欄位 = 表2.欄位

需要注意的事項:

* 從哪些表中查詢資料

* 條件是什麼

* 查詢哪些字段

(3)外連線查詢

語法:select 字段列表 from 表1 left [outer] join 表2 on 條件

select t1.*,t2.name from 表1 t1,表2 t2 where t1.欄位 = t2.欄位 (這種查詢,如果有空字段,則查詢不到資訊)

select t1.*,t2.name from 表1 t1 left join 表2 t2 on t1.欄位 = t2.欄位

查詢的是左表所有資料及其交集部分

語法:select 字段列表 from 表1 right [outer] join 表2 on 條件

查詢的是右表所有資料及其交集部分

左右表:

from 表1 left [outer] join 表2 on 條件

左表:表1;右表:表2

(4)子查詢

概念:查詢中巢狀查詢,稱巢狀查詢為子查詢

情況1:子查詢的結果是單行單列的

*子查詢可以作為條件,使用運算子去判斷:運算子:>,>=,<,<=,=

情況2:子查詢的結果是多行單列的

*子查詢可以作為條件,使用運算子in來進行判斷(集合判斷)

情況3:子查詢的結果是多行多列的

*子查詢可以作為一張虛擬表參與查詢

mysql可以使用不等運算子

mysql的多表操作 MySQL多表操作

交叉連線 交叉連線 cross join 又稱笛卡爾連線 cartesian join 或叉乘 product 它是所有型別內連線的基礎。它把表看作是行記錄的集合,交叉連線即返回這兩個集合的笛卡爾積。這其實等價於內連線的連線條件始終為 真 或連線條件不存在。笛卡爾積引用自數學,在數學中,兩個集合x和...

MySQL多表操作

方式一 create table stu sid int primary key,sname varchar 20 age int 方式二 create table stu sid int,sname varchar 20 age int,primary key sid 方式三 create tab...

MySql多表操作

今日任務 教學目標 1.為什麼要拆表 1.1表的準備 建立一張分類表 類別id,類別名稱.備註 類別id為主鍵並且自動增長 建立一張明星表 明星id,明星名稱,明星身價,明星年齡,明星性別,明星類別.備註 明星id為主鍵並且自動增長 2.引用完整性 表和表之間存在一種關係,但是這個關係需要誰來維護和...