#1. はじめに
macOSでMAMPを使用する際のMySQLの基本操作を記載しておく.
#2. 基本操作
##基本
まず,MAMPとターミナルを起動する.MAMPはMySQL Server
が起動していること.
作業は全てターミナルで行う.
SQLの命令は,原則大文字で表記する.小文字でも実行は可能.
###セミコロンの入力忘れについて
SQLの命令で,セミコロン;
を忘れずにつけること.
もし忘れても,後から;
のみを入力することで正常に実行できる場合がある.
例を記載しておく.例の2行目が該当部分(セミコロンのみ入力)である.
命令の意味は,本内容より下に記載してある説明から理解すること.
mysql> SELECT * FROM hoge
-> ;
+------+
| data |
+------+
| 5|
| 10|
+------+
2 rows in set (0.01 sec)
mysql>
##MySQLコマンドラインコンソールに接続
$ cd /Applications/MAMP/Library/bin/
$ ./mysql -u root -p
パスワード:root
##MySQLコマンドラインコンソールから切断
mysql> \q
##データベースを作成
作成するデータベース名をdatabase_name
とする.
また,文字コードはutf8
とする.
CREATE DATABASE database_name DEFAULT CHARACTER SET utf8;
##データベース一覧を表示(データベースが作成されたか確認)
mysql> SHOW DATABASES;
※複数形(DATABASES
)に注意
##データベースへ接続
接続するデータベース名をdatabase_name
とする.
mysql> USE database_name;
##データベースの削除
削除するテーブル名をdatabase_name
とする.
mysql> DROP DATABASE database_name;
##テーブルの作成
テーブルはデータベースの中に作成するものである.そのため,データベースに接続した状態でテーブル操作を行う.今回の場合は,上記のdatabase_name
という名前のデータベースに接続してから以下を行う.
作成するテーブル名をtable_name
とする.
テーブルの内容は下記と同じ.ただし,ここではまだデータ(1,hoge
2,fuga
)の登録はしない.
列名をそれぞれnumber,nameとする.numberはINTEGER型,nameはTEXT型とする.
number | name |
---|---|
1 | hoge |
2 | fuga |
mysql> CREATE TABLE table_name (number INTEGER,name TEXT);
##テーブル一覧を表示(テーブルが作成されたか確認)
mysql> SHOW TABLES;
※複数形(TABLES
)に注意
##テーブル構造の確認
確認するテーブル名をtable_name
とする.
mysql> DESC table_name;
##テーブルの削除
削除するテーブル名をtable_name
とする.
mysql> DROP TABLE table_name;
##テーブルへのデータ登録
table_name
テーブルに対し,データを登録する.
データは テーブルの作成 で説明に使ったものと同じとする.
mysql> INSERT INTO table_name VALUES (1,'hoge');
mysql> INSERT INTO table_name VALUES (2,'fuga');
※複数形(VALUES
)に注意
※TEXT型などの数値型でないデータは,シングルクォート'
で囲うことに注意
(囲わなくても正常に動作する場合もある)
##データの更新(書き換え)
上記で登録したデータを更新する.更新内容は下記の通り.
更新前
number | name |
---|---|
1 | hoge |
2 | fuga |
更新後
number | name |
---|---|
1 | foo |
2 | bar |
mysql> UPDATE table_name SET name = 'foo' WHERE number = 1;
mysql> UPDATE table_name SET name = "bar" WHERE number = 1;
※TEXT型などの数値型でないデータは,シングルクォート'
またはダブルクォート"
で囲うことに注意
(囲わなくても正常に動作する場合もある)
※WHERE
を用いて条件を指定する場合,列は2つ以上必要であることに注意
(SET
とWHERE
には異なるカラム(列)を使うため)
(上記の場合,number
とname
)
※WHERE
を用いない,すなわち条件を指定しない場合は全てのレコード(行)が更新される
(上を実行した場合,最終的には1,bar
,2,bar
,すなわち全てのname
がbar
になる)
##データの削除
上記のデータのうち,次のデータを削除する.
削除対象:2,bar
mysql> DELETE FROM table_name WHERE number = 2;
または
mysql> DELETE FROM table_name WHERE name = 'bar';
※TEXT型などの数値型でないデータは,シングルクォート'
で囲うことに注意
(囲わなくても正常に動作する場合もある)
※何のデータを削除するかにより,WHERE
の条件を指定することに注意
(上記の場合,「number
が2
であるレコードを削除する」のか「name
がbar
であるレコードを削除する」のかによりどちらを実行するかが決まる.)
##データの表示
上記のデータを表示する.
mysql> SELECT * FROM table_name;
ワイルドカード*
を用いない場合は次のようになる.
列名にあるカンマ,
は複数指定時のみ使用する.
mysql> SELECT number,name FROM table_name;
#3. おわりに
MySQLの基本操作を記載したつもりが,SQL文の基礎の説明みたいな感じになってしまいました・・・.
昇順・降順,合計・平均の表示などは気が向いたら追記します.
申し遅れました.
Qiitaでmp4やzipもアップロードできるといいなと感じているQiita初心者の「林檎」と申します.
よろしくお願いします.