將查詢或者篩選出來列用關鍵字as
命名
select 欄位名 [as] 別名 [,欄位名 [as] 別名,……] from 表名;
給表起乙個別名,為了在查詢資料時,使用起來方便,也使用關鍵字as
select * from 表名 [as] 別名;
如果表中有至少乙個匹配,則返回行,獲取兩個表中字段匹配關係
的記錄。
語法:
select column_name
from table_name1
inner join table_name2
on table_name1.column_name=table_name2.column_name
等價於:
select column_name
from table_name1
where table_name1.column_name=table_name2.column_name
即使右表中沒有匹配,也從左表返回所有的行;會返回左表(table1)中所有的行
注:除此之外還有right join和full join(其中right join 和left join用法相似,即右表中的所有行,而full join 返回兩個表中的所有行)
有時,一些特殊的查詢需要對同乙個關係進行連線查詢,成為表的自身連線: 即一張表看成是兩張表。
select c1.cust_id, c1.cust_name, c1.cust_contact
from customers as c1, customers as c2
where c1.cust_name = c2.cust_name
and c2.cust_contact = 『jim jones』;
mysql union 操作符用於連線兩個以上的 select 語句的結果組合到乙個結果集合中。多個 select 語句會刪除重複的資料。
語法:
select expression1, expression2, ... expression_n
from tables
[where conditions]
union [all | distinct]
select expression1, expression2, ... expression_n
from tables
[where conditions];
expression1, expression2, … expression_n: 要檢索的列。
tables: 要檢索的資料表。
where conditions: 可選, 檢索條件。
distinct: 可選,刪除結果集中重複的資料。預設情況下 union 操作符已經刪除了重複資料,所以 distinct 修飾符對結果沒啥影響。
all: 可選,返回所有結果集,包含重複資料。
注:union語句用於將不同表中相同列中查詢的資料展示出來(不包括重複資料),union all語句包括重複資料。
inner join產生的結果是兩張表的交集,
left join產生左表的完全集,右表中若沒有匹配則以null值取代。
cross join將兩張表資料進行乙個n*m組合,即笛卡爾積。
自連線是對於自身的操作,將自己當成兩張表操作來提取需要的資訊。
union操作符是用於連線兩個以上的select語句,它和inner join的區別是乙個是連線兩張表,另乙個是連線兩個select語句。
step1:在資料庫中建立表1和表2
step2:插入資料
step3:編寫乙個 sql 查詢,滿足條件:無論 person 是否有位址資訊,都需要基於上述兩表提供 person 的以下資訊:firstname, lastname, city, state
編寫乙個 sql 查詢,來刪除 email 表中所有重複的電子郵箱,重複的郵箱裡只保留 id 最小 的那個。
-- 建立表並插入資料
create table email(
id int not null,
email varchar(255) not null,
primary key (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...