MySQL

【MySQL】 初心者向け・基本構文まとめ Part.1 【職業訓練校 / Webプログラマー養成科】

構文まとめ(初心者向け)

職業訓練校(Webプログラマー養成科)の授業で習ったMySQLの構文をまとめました。


「構文」と「その後に表示される文章」を分けて、2つのボックスに書いています。

mysql> ここに構文を記入します。
ポイントとなるワードは大文字にしていますが、小文字でもOKです。

ここには、記入後に表示される文章が入ります
※現在レイアウトがズレているため、後日画像に変えます(たぶん)




データベースを作成する

mysql> CREATE DATABASE idol;

Query OK, 1 row affected (0.02 sec)

データベース「idol」(アイドル)を作成しました。



データベースを見る

mysql> SHOW DATABASES;

+——————————–+
| Database        |
+——————————–+
| information_schema |
| music          |
| performance_schema|
| idol           |
+——————————–+
4 rows in set (0.00 sec)

データベースを見ると、新規作成した「idol」が入っていることがわかります。



作成したデータベースを使う

mysql> USE idol;

Database changed

まず初めに、何のデータベースを使うか記入します。



テーブルの中身を見る

mysql> SHOW TABLES;

Empty set(0.00 sec)

データベース「idol」の中のテーブルの中身はまだ空っぽです。



テーブルを作る

mysql> CREATE TABLE nogizaka (no INT, name VARCHAR(10), birth DATE);

Query OK, 0 rows affected (4.17 sec)

データベース「idol」の中のテーブルの中身はまだ空っぽです。

  • テーブル名:「nogizaka」
  • フィールド名:「no」、「name」、「birth」
  • no(ナンバー):INT型=整数型に。整数を格納できる。
  • name(名前):可変長文字列のバーチャー型。最大10文字まで。
  • birth(誕生日):日付型、DATE型
  •   

▽ バーチャー型、チャー型についての記事はこちら

【MySQL】バーチャー型とチャー(キャラ)型の違いメモ こんにちは。yuki(@Ryuki_4648)です。 職業訓練校の授業で習った MySQLのバーチャー型とチャー(キャラ)型...


再度テーブルの中身を見る

mysql> SHOW TABLES;

+———————-+
| Tables_in_idol |
+———————-+
| nogizaka    |
+———————-+

データベース「idol」の中に、テーブル名「nogizaka」ができました。



テーブルの構造を見る

mysql> SHOW FIELDS FROM nogizaka;

+——-+————-+——+—–+———+——-+
| Field  | Type | Null  | Key | Default | Extra |
+——-+————-+——+—–+———+——-+
| no    | int(11) | NO   |   | NULL | |
| name | varchar(10) | YES |   | NULL | |
| birth  | date | YES   | | NULL | |
+——-+————-+——+—–+———+——-+


テーブル名「nogizaka」の構造を見ることができます。

先ほど記入したのが no INT, name VARCHAR(10), birth DATE
→ フィールド名がそれぞれ「no」「name」「birth」になっています。



テーブル構造を変更する

mysql> ALTER TABLE nogizaka ADD PRIMARY KEY (no);

Query OK, 0 rows affected (1.88 sec)
Records: 0 Duplicates: 0 Warnings: 0

「nogizaka」テーブル内のフィールド「no」にプライマリーキー(主キー)を追加しました。



mysql> ALTER TABLE nogizaka ADD address VARCHAR(40);

Query OK, 0 rows affected (1.27 sec)
Records: 0 Duplicates: 0 Warnings: 0

新たなフィールド「address」を追加しました。
バーチャー型で、40バイト分格納することができます。



mysql> ALTER TABLE nogizaka MODIFY address VARCHAR(60);

Query OK, 0 rows affected (0.20 sec) Records: 0 Duplicates: 0 Warnings: 0

フィールド名「address」のVARCHARを40から60に変更しています。



再度テーブルの構造を見る

mysql> SHOW FIELDS FROM nogizaka;

+———+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+———+————-+——+—–+———+——-+
| no | int(11) | NO | PRI | NULL | |
| name | varchar(10) | YES | | NULL | |
| birth | date | YES | | NULL | |
| address | varchar(60) | YES | | NULL | |
+———+————-+——+—–+———+——-+

修正したテーブル「nogizaka」を再度みてみると、このような構造に変わりました。

  • フィールド「no」にプライマリーキーを追加した
  • 新たなフィールド「address」を追加した
  • addressのvarcharの値を40から60に変更した
  •   


削除する(フィールド)

mysql> ALTER TABLE nogizaka DROP address;

samamichiテーブルから「address」フィールドを削除しました。
mysql> SHOW FIELDS FROM nogizaka;を入力して、削除されているか確認することもできます。



削除する(テーブル/データベース)

mysql> DROP TABLE nogizaka;

Query OK, 0 rows affected (0.24 sec)

テーブル「nogizaka」を削除しました。
そのあとに、show fields from nogizaka;と入力すると、 Table ‘nogizaka’ doesn’t existというエラーが出ると思います。


mysql> DROP DATABASE idol;

データベース「idol」を削除しました。



データを追加する

mysql> INSERT INTO nogizaka VALUES (1, ‘白石 麻衣’,’1992-08-21′,’maiyan@xxxx.com’);

mysql> INSERT INTO nogizaka VALUES (2, ‘齋藤飛鳥’,’1998-08-11,’ashu@xxxx.com’);

Query OK, 1 row affected (0.09 sec)

テーブル「nogizaka」にデータを追加していきます。
4つのフィールド「no」「name」「birth」「address」に対応するように入力しています。

valuesのsが抜けないように注意



すべてのデータを見る

mysql> SELECT * FROM nogizaka;

「*」にすることで、テーブル「nogizaka」に追加したすべてのデータを表示させることができます。



一部のフィールドだけを選ぶ

mysql> SELECT no,name FROM nogizaka;

一部のデータだけが欲しい時は、このように書きます。
複数ある場合は、,(カンマ)で区切ります。



レコードの書き換え

mysql> UPDATE nogizaka SET birth = ‘1998-08-10’ WHERE no = 2;

誕生日を「1998-08-11」から「1998-08-10」に書き換えています。

このとき、WHERE no = 2;で、「no」が「2」の「齋藤飛鳥」のレコードのみを書き換えています。

★これを書いていないと、ほかの人の誕生日もすべて1998-08-10に代わってしまいます。



レコードの削除

mysql> DELETE FROM nogizaka WHERE no = 1;

noが「1」のレコードを削除しています。





ここで、「delete」と「drop」はどう違うのか?

delete文は、テーブル内のデータを全削除 or 条件に一致したデータを削除します。



前述したdrop文は、テーブル内のオブジェクトを完全に削除します。

完全に削除するのでロールバック(元に戻すこと)ができません。
テーブル構造事消してしまうので、表構造も残りません。


▽ SQL文 DELETE・TRUNCATE・DROPの違い