首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 入門教學(五):多資料表關聯查詢實戰

     編輯:MySQL 資料庫相關知識

前言

現實世界的資料庫系統中,資料通常分散在多個相關聯的資料表中。本篇將介紹如何操作多個資料表,並透過關聯查詢(JOIN)從不同表格中組合所需資訊。

一、準備工作:建立第二張資料表

承接上一篇的 mytable(員工基本資料),我們新建一張 title 表,記錄員工發表的文章資訊:

CREATE TABLE title (
    writer VARCHAR(20) NOT NULL,
    title VARCHAR(40) NOT NULL,
    senddate DATE
);

插入測試資料後,title 表內容如下:

writertitlesenddate
abccsa12000-01-23
maryb11998-03-21
abccsa22000-12-04
tomc11992-05-16
tomc21999-12-12

二、多資料表聯查核心:指定關聯條件

由於資料分散在 mytable 與 title 兩張表,查詢時必須指定兩表如何對應。關鍵在於 WHERE 子句中設定關聯鍵:

SELECT 欄位清單 FROM 表1, 表2 WHERE 表1.關聯欄位 = 表2.關聯欄位;

三、實戰範例

範例 1:查詢 abccs 的姓名、性別與文章標題

SELECT name, sex, title 
FROM mytable, title 
WHERE name = writer AND name = 'abccs';

結果:

namesextitle
abccsfa1
abccsfa2

範例 2:查詢文章 a2 的作者、出生地與生日

SELECT title, writer, birthaddr, birth 
FROM mytable, title 
WHERE mytable.name = title.writer AND title = 'a2';

結果:

titlewriterbirthaddrbirth
a2abccschina1977-07-07

四、重要提醒:欄位名稱衝突處理

若兩張表擁有相同名稱的欄位(例如都叫 name),必須使用 資料表名.欄位名 的完整格式加以區分,否則會發生「欄位不明確」的錯誤。

小結

多表查詢的核心在於「找出關聯鍵」並「在 WHERE 條件中指定等值連接」。這是關聯式資料庫最基本也最重要的操作之一。下一篇將介紹資料表結構修改、資料異動與備份還原等維護操作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved