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

MySQL 多表關聯查詢與批次操作實戰(二)

     編輯:MySQL 資料庫相關知識

多表關聯查詢:指定匹配條件

在上一篇範例中,作者姓名、性別與文章記錄分散在兩張不同的表裡,因此必須透過組合查詢(Join)來關聯數據。關鍵在於明確指定一張表中的記錄如何與另一張表的記錄進行匹配。

注意: 若第二張表 title 中的 writer 欄位也命名為 name(與 mytable 表的 name 欄位同名),則必須使用 mytable.name 和 title.name 來區分,避免歧義。

實戰範例:查詢特定文章的作者詳細資訊

我們要查詢文章 a2 的作者、出生地與出生日期:

MySQL> SELECT title, writer, birthaddr, birth
    -> FROM mytable, title
    -> WHERE mytable.name = title.writer AND title = 'a2';
+-------+--------+-----------+------------+
| title | writer | birthaddr | birth      |
+-------+--------+-----------+------------+
| a2    | abccs  | china     | 1977-07-07 |
+-------+--------+-----------+------------+

資料表結構修改與資料更新

有時我們需要對資料庫表結構或資料進行修改、刪除,以下是常用操作:

1. 新增欄位

在 mytable 表中新增一欄位 single(char(1)),表示是否單身:

MySQL> ALTER TABLE mytable ADD COLUMN single CHAR(1);

2. 修改記錄

將 abccs 的 single 欄位更新為 'y':

MySQL> UPDATE mytable SET single = 'y' WHERE name = 'abccs';

3. 查看修改結果

MySQL> SELECT * FROM mytable;
+----------+------+------------+-----------+--------+
| name     | sex  | birth      | birthaddr | single |
+----------+------+------------+-----------+--------+
| abccs    | f    | 1977-07-07 | china     | y      |
| mary     | f    | 1978-12-12 | usa       | NULL   |
| tom      | m    | 1970-09-02 | usa       | NULL   |
+----------+------+------------+-----------+--------+

可以看到,abccs 的 single 已成功更新為 y,其餘記錄因未指定值而為 NULL。

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