0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SQL ~データベースの操作2(テーブルとカラムの作り方)~

Posted at

初学者です。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についてまとめていきます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?