2012年8月28日火曜日

6.2 テーブルの操作


ここでは、テーブルや列、レコードの追加や削除、更新といった作
業について取り上げます。

6.2.1 列の追加

テーブルを作成後に、列を新たに追加することができます。
ALTER TABLE テーブル名ADD 新規列名データ型[FIRST];

この書式を使うと、テーブルの右端に列を追加することができます。次の例
では、branchテーブルにtel欄を追加しています。

mysql> ALTER TABLE branch ADD tel VARCHAR(16);
mysql> DESC branch;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id | smallint(6) | NO | PRI | | |
| branchname | varchar(20) | YES | | NULL | |
| tel | varchar(16) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+

なお、次のように「FIRST」を指定すると、テーブルの右端ではなく左端に
列が追加されます。


mysql> ALTER TABLE branch ADD tel VARCHAR(16) FIRST;

6.2.2 列の削除

列を削除するには、以下の書式を使います。
ALTER TABLE テーブル名DROP 列名;

次の例では、branchテーブルからtel列を削除します。削除の確認メッセージなどは表示されませんので注意して操作してください。
mysql> ALTER TABLE branch DROP tel;

6.2.3 レコードの更新

既存のレコードを更新するには、SQLコマンドのUPDATEを使います。
UPDATE テーブル名SET 列名= 値[WHERE 条件]

次の例では、name列の値が「Sato」であるレコードのage列の値を「24」
に変更します。

mysql> UPDATE staff SET age='24' WHERE name =
'Sato';
mysql> SELECT * FROM staff WHERE name =
'Sato';
+----+------+------+------+
| id | name | age | bid |
+----+------+------+------+
| 1 | Sato | 24 | 1 |
+----+------+------+------+

なお、WHERE句を指定しないと、すべてのレコードの列に同じ値が格納さ
れてしまいますので注意してください。

mysql> UPDATE staff SET age = '20';
mysql> SELECT * FROM staff;
+----+-----------+------+------+
| id | name | age | bid |
+----+-----------+------+------+
| 1 | Sato | 20 | 1 |
| 2 | Suzuki | 20 | 2 |
| 3 | Takahashi | 20 | 5 |
| 4 | Tanaka | 20 | 3 |
| 5 | Watanabe | 20 | 2 |
+----+-----------+------+------+









0 件のコメント:

コメントを投稿