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 | +-------------------------+
なんか雑になってしまった。。。
次は複数のテーブルを扱っていきたいと思います。