初学者です。SQLの理解が浅いため纏めていきます。
- MySQL
- Ruby on Rails
はじめに
ここではSQLというDBを操作する言語について記述します。
中でもテーブルとカラムについて重点的に記述します。
※この記事は、前回の記事の続きです。
SQLによるテーブルの操作
次はSQLによるテーブルの操作についてです。
データベースを指定する
まず最初に操作したいテーブルの存在しているデータベースを指定するとこから始まります。
テーブルとカラムの作り方
その前にテーブルとカラムの作り方についてまとめます!(書いてなかったですね)
データベースの作成時と同様、CREATEを使います。
テーブルのですが、カラムも同時に作れます。記述は以下の通りです。
mysql> CREATE TABLE テーブル名 (カラム名1 カラム名1の型, カラム名2 カラム名2の型, …);
Railsでテーブルを作った時を思い出すと、rails g modelでモデルを作り、同時にできたマイグレーションファイルにカラムの追加などをしたはずです。
そして、rails db:migrateで作成。。。という流れでしたが、
この後ろでは、ひっそりとSQL文がCREATE TABLEを実行してくれていたんです。(健気な子)
USE
USEは、どのデータベースを使用するのかを指定するSQL文です。USE データベース名と記述します。
mysql> USE 任意のデータベース名;
Database changed
上記の記述で指定・使用できます!
ここで気になりました。**カラムの型はどう書くのか?**について!
カラムの型(データの種類)
SQLでは、テーブルを作成するとき、データ型を指定することで、登録できるデータの種類を制限します。
RDBで扱うデータ型は、大きく分けて文字列/数値/日付時刻の3種類があります!
詳細はこちら様を参照させていただきます。
他サイト:MySQLで使える すべてのデータ型 一覧
テーブルの構造を確認する
追加したカラムを確認するために、テーブルの構造を表示してみます。以下のようなSQL文で表せます。
mysql> SHOW columns FROM テーブル名;
SHOWに関しては全章で出てきましたね。
意味は、"データベースやテーブルを一覧表示できる"でした。
これでカラムの一覧表示ということになりますね!
続いて、初見のFROMについてです。詳細を下記に記述していきます!
FROM
FROMは、対象となるテーブルを指定する時に使うSQLの句です。
mysql> FROM テーブル名;
データベースの指定はUSE、
カラムの指定はFROM..。注意点ですね!
先程のコマンドを実行しましょう!
mysql> SHOW columns FROM テーブル名;
以下のように表示されれば成功です!(例)
mysql> SHOW columns FROM goods;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
|カラム名 | カラム型( ) | YES | | NULL | |
|カラム名 | カラム型( ) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
カラムの操作
次に、カラムの操作についてです。
更新、編集、削除について順にまとめて行きます!
ALTER
カラム情報の更新にはALTERを使います!
ALTERは、データベースやテーブルを編集できるSQL文です。
ALTER TABLEを実行すると、テーブルに対してカラムの追加や削除ができます。
ちょっと情報がごちゃついてきたので例文で整理しましょう。
↓ALTERでカラム情報の更新
mysql> ALTER TABLE テーブル名 操作
↓カラムを一つだけ追加する場合
mysql> ALTER TABLE テーブル名 ADD カラム名 カラムの型;
↓カラムを複数追加する場合
mysql> ALTER TABLE テーブル名 ADD (カラム名 カラムの型, ……);
成功すると、以下のような表記になります!
mysql> ALTER TABLE テーブル名 ADD (カラム名 カラム型);
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
終わったらSHOW columns FROM テーブル名で確認します。
カラムの変更
追加ができたところで変更についても知っておきましょう!
先ほどと同様、ALTER TABLEを使用し、以下のように記述します。
mysql> ALTER TABLE テーブル名 CHANGE 古いカラム名 新しいカラム名 新しいカラムの型;
カラム名(古)の後に、カラム名(新)と書き、カラム型に関しては、変更後の新しいカラム型のみ書きます。
以下のような記述になれば成功です!
mysql> ALTER TABLE テーブル名 CHANGE カラム名(古) カラム名(古) カラム型(新);
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
念の為、ここでもSHOW columns FROM テーブル名で確認します。
カラムの削除
最後に、カラムの削除方法についてです!
カラムの削除でも、同じくALTER TABLEを使うパターンです行きます。
mysql> ALTER TABLE テーブル名 DROP カラム名;
成功すれば下記のようになります。
mysql> ALTER TABLE テーブル名 DROP カラム名;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
SHOW columns FROM テーブル名で確認です。
まとめ
DDL | データを定義する命令のこと |
---|---|
CREATE | データベースやテーブルを作成できる文 |
SHOW | データベースやテーブルを一覧表示できる文 |
DROP | データベースやテーブルを削除できる文 |
USE | 使用するデータベースの選択が出来る文 |
ALTER | データベースやテーブルを編集できる文 |
ここまでお疲れ様でした!
ここまでまとめてて思ったことは、やはり手を動かしながらやった方がわかるということですね..
次回はテーブル操作DMLについてまとめていきます!