湯LOG

主に自分用のメモ

SQL初心者のおぼえがき(3)

以下の記事の続きです。yuzatakujp1013.hatenablog.com
yuzatakujp1013.hatenablog.com

レコードの更新、削除

今まで特に触れていなかったレコードの更新・削除をしていきます。
まずは現在のテーブルを見てみます。

mysql> select * from users;
+----+---------+---------------+--------+-------+---------------------+
| id | name    | email         | team   | score | created             |
+----+---------+---------------+--------+-------+---------------------+
|  1 | taguchi | taguchi@email | blue   |   5.5 | 2015-05-11 10:00:00 |
|  2 | suzuki  | suzuki@email  | yellow |   8.2 | 2015-06-21 20:00:00 |
|  3 | yukawa  |               | red    |   2.3 | 2015-06-21 13:00:00 |
|  4 | kimura  | kimura@email  | yellow |   7.4 | 2015-06-28 15:00:00 |
|  5 | tanaka  | tanaka@email  | blue   |   4.2 | 2015-06-29 16:00:00 |
+----+---------+---------------+--------+-------+---------------------+

yuzawaさんのemailが抜けています。
そこで、yuzawaさんのemailを更新します。
レコードの更新には、UPDATE文を使います。

UPDATE ”テーブル名” SET "レコード名" = 値 WHERE 条件
mysql> update users set email = 'yukawa@email' where id = 3;

これで、レコードの更新は完了です。

次にレコードの削除に移ります。
レコードの削除はDELETE文を使います。

DELETE FROM "テーブル名" WHERE 条件
mysql> delete from users where score < 3.0;

これで、スコアが3.0未満のフィールドは消えました。

テーブルの構造を変更

続いて、フィールドの追加・変更・削除、インデックスの追加・削除、テーブルの名前変更などについて見ていきます。

フィールドを加える
ALTER TABLE "テーブル名" ADD "追加したいフィールド名" "サイズ"
mysql> alter table users add full_name varchar(255) after name;
フィールドを変更
ALTER TABLE "テーブル名" CHANGE "新しいフィールド名" "変更元フィールド名" "新しいフィールドのサイズ"
mysql> alter table users change full_name full_name varchar(100);
フィールドを削除
ALTER TABLE "テーブル名" DROP "フィールド名"
mysql> alter table users drop full_name;

インデックスの追加・削除

インデックスの追加はADD、削除はDROPです。

mysql> alter table users add index email (email);
mysql> alter table users drop index email;

テーブルの名前の変更

ALTER TABLE "テーブル名" RENAME "新しいテーブル名"
mysql> alter table users rename blog_users;
mysql> show tables;
+-------------------------+
| Tables_in_test_database |
+-------------------------+
| blog_users              |
+-------------------------+


なんか雑になってしまった。。。
次は複数のテーブルを扱っていきたいと思います。