在上一篇範例中,作者姓名、性別與文章記錄分散在兩張不同的表裡,因此必須透過組合查詢(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 |
+-------+--------+-----------+------------+
有時我們需要對資料庫表結構或資料進行修改、刪除,以下是常用操作:
在 mytable 表中新增一欄位 single(char(1)),表示是否單身:
MySQL> ALTER TABLE mytable ADD COLUMN single CHAR(1);
將 abccs 的 single 欄位更新為 'y':
MySQL> UPDATE mytable SET single = 'y' WHERE name = 'abccs';
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。