LoginSignup
8
12

More than 3 years have passed since last update.

【初心者向け入門】MySQLの基本操作

Last updated at Posted at 2019-03-12

1. はじめに

macOSでMAMPを使用する際のMySQLの基本操作を記載しておく.

2. 基本操作

基本

まず,MAMPとターミナルを起動する.MAMPはMySQL Serverが起動していること.
作業は全てターミナルで行う.
SQLの命令は,原則大文字で表記する.小文字でも実行は可能.

セミコロンの入力忘れについて

SQLの命令で,セミコロン;を忘れずにつけること.
もし忘れても,後から;のみを入力することで正常に実行できる場合がある.
例を記載しておく.例の2行目が該当部分(セミコロンのみ入力)である.
命令の意味は,本内容より下に記載してある説明から理解すること.

terminal
mysql> SELECT * FROM hoge
    -> ;
+------+
| data |
+------+
|     5|
|    10|
+------+
2 rows in set (0.01 sec)

mysql>

MySQLコマンドラインコンソールに接続

terminal
$ cd /Applications/MAMP/Library/bin/
$ ./mysql -u root -p

パスワード:root

MySQLコマンドラインコンソールから切断

terminal
mysql> \q

データベースを作成

作成するデータベース名をdatabase_nameとする.
また,文字コードはutf8とする.

terminal
CREATE DATABASE database_name DEFAULT CHARACTER SET utf8;

データベース一覧を表示(データベースが作成されたか確認)

terminal
mysql> SHOW DATABASES;

※複数形(DATABASES)に注意

データベースへ接続

接続するデータベース名をdatabase_nameとする.

terminal
mysql> USE database_name;

データベースの削除

削除するテーブル名をdatabase_nameとする.

terminal
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
terminal
mysql> CREATE TABLE table_name (number INTEGER,name TEXT);

テーブル一覧を表示(テーブルが作成されたか確認)

terminal
mysql> SHOW TABLES;

※複数形(TABLES)に注意

テーブル構造の確認

確認するテーブル名をtable_nameとする.

terminal
mysql> DESC table_name;

テーブルの削除

削除するテーブル名をtable_nameとする.

terminal
mysql> DROP TABLE table_name;

テーブルへのデータ登録

table_name テーブルに対し,データを登録する.
データは テーブルの作成 で説明に使ったものと同じとする.

terminal
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
terminal
mysql> UPDATE table_name SET name = 'foo' WHERE number = 1;
mysql> UPDATE table_name SET name = "bar" WHERE number = 1;

※TEXT型などの数値型でないデータは,シングルクォート'またはダブルクォート"で囲うことに注意
(囲わなくても正常に動作する場合もある)
WHEREを用いて条件を指定する場合,列は2つ以上必要であることに注意
SETWHEREには異なるカラム(列)を使うため)
(上記の場合,numbername
WHEREを用いない,すなわち条件を指定しない場合は全てのレコード(行)が更新される
(上を実行した場合,最終的には1,bar2,bar,すなわち全てのnamebarになる)

データの削除

上記のデータのうち,次のデータを削除する.
削除対象:2,bar

terminal
mysql> DELETE FROM table_name WHERE number = 2;

または

terminal
mysql> DELETE FROM table_name WHERE name = 'bar';

※TEXT型などの数値型でないデータは,シングルクォート'で囲うことに注意
(囲わなくても正常に動作する場合もある)
※何のデータを削除するかにより,WHEREの条件を指定することに注意
(上記の場合,「number2であるレコードを削除する」のか「namebarであるレコードを削除する」のかによりどちらを実行するかが決まる.)

データの表示

上記のデータを表示する.

terminal
mysql> SELECT * FROM table_name;

ワイルドカード*を用いない場合は次のようになる.
列名にあるカンマ,は複数指定時のみ使用する.

terminal
mysql> SELECT number,name FROM table_name;

3. おわりに

MySQLの基本操作を記載したつもりが,SQL文の基礎の説明みたいな感じになってしまいました・・・.
昇順・降順,合計・平均の表示などは気が向いたら追記します.

申し遅れました.
Qiitaでmp4やzipもアップロードできるといいなと感じているQiita初心者の「林檎」と申します.
よろしくお願いします.

8
12
2

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
8
12