MySQL基礎3 表聯結

2021-09-11 18:12:20 字數 2520 閱讀 6934

1、mysql別名

mysql在查詢資料時,可以為表和字段取別名,這個別名可以代替其指定的表和字段

select * from 表名 [as] 別名; 為表取別名

select 欄位名 [as] 別名 [,欄位名 [as] 別名,……] from 表名; 為 欄位取別名

在表中存在至少乙個匹配時,inner join 關鍵字返回行。語法如下

select column_name(s)

from table_name1

inner join table_name2

on table_name1.column_name=table_name2.column_name

注釋:inner join 與 join 是相同的。

left join 關鍵字會從左表 (table_name1) 那裡返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。

select column_name(s)

from table_name1

left join table_name2

on table_name1.column_name=table_name2.column_name

注釋:在某些資料庫中, left join 稱為 left outer join。

left join 關鍵字會從左表 (persons) 那裡返回所有的行,即使在右表 (orders) 中沒有匹配的行。

right join 關鍵字會右表 (table_name2) 那裡返回所有的行,即使在左表 (table_name1) 中沒有匹配的行。

select column_name(s)

from table_name1

right join table_name2

on table_name1.column_name=table_name2.column_name

right join 關鍵字會從右表 (orders) 那裡返回所有的行,即使在左表 (persons) 中沒有匹配的行。

cross join又稱為笛卡爾乘積,實際上是把兩個表乘起來。

select * from [table 1] cross join [table 2]

union 操作符用於合併兩個或多個 select 語句的結果集。

請注意,union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。

select column_name(s) from table_name1

union

select column_name(s) from table_name2

1、在資料庫中建立person表和address表,表結構如下:

接著插入以下資料

要求編寫乙個 sql 查詢,滿足條件:無論 person 是否有位址資訊,都需要基於上述兩表提供 person 的以下資訊:firstname, lastname, city, state

2、編寫乙個 sql 查詢,來刪除 email 表中所有重複的電子郵箱,重複的郵箱裡只保留 id 最小 的那個。

建立如下表

插入如下資料

MySQL 基礎 (三) 表聯結

3.聯結方式的區別和聯絡 4.例項 別名 alias 是乙個欄位或值的替換名,別名用as關鍵字賦予,mysql支援列別名,計算字段別名,表別名。使用別名可以縮短sql語句並在一條語句中多次使用相同的表。select column name as alias from table name selec...

MySQL基礎(三) 表聯結

inner join 內連線,或等值連線 取得兩個表中存在連線匹配關係的記錄。取得左表 table1 完全記錄,即是右表 table2 並無對應匹配記錄。交叉連線,得到的結果是兩個表的乘積,即笛卡爾積 在資料庫中建立表1和表2,並各插入三行資料 表1 person 列名型別 personid int...

MySQL 基礎 (三) 表聯結

一 mysql別名 使用mysql別名來提高查詢的可讀性。mysql支援兩種別名,稱為列別名和表別名。1.表別名 有時,列的名稱是一些表示式,使查詢的輸出很難理解。要給列乙個描述性名稱,可以使用列別名。用法 如果別名包含空格,則必須引用 select column 1 expression as d...