なんやかんや前はいじっていたMySQLの使い方を完全に忘れたのでメモ。
目次
MySQLをインストールする
下記からインストーラーをダウンロードしてインストールします。本記事執筆時点で「Windows (x86, 32-bit), MSI Installer(mysql-installer-community-5.7.40.0.msi)」を使用しました。バージョンは5.7.40です。
https://dev.mysql.com/downloads/windows/installer/5.7.html
インストール方法については省略しますが、基本的にデフォルト設定のままです。インストール時に設定したパスワードは後ほど使用しますので必ず覚えておいてください。インストールされる場所は下記の通りです。
C:\Program Files\MySQL\
特に「mysql.exe」がある場所は下記の通りです。おそらくバージョンが変わるとディレクトリも変わります。
C:\Program Files\MySQL\MySQL Server 5.7\bin
環境変数を設定する
Pathを変更します。先ほどの「mysql.exe」がある場所を追加します。
C:\Program Files\MySQL\MySQL Server 5.7\bin
コマンドプロンプトを起動する
必ず管理者モードで起動します。管理者モードでなければコマンドを入力した際に、
システム エラー 5 が発生しました。
アクセスが拒否されました。
等が表示されます。
MySQLを起動する
コマンドプロンプトに、
net start mysql57
と入力します。下記の通り表示されれば成功です。
MySQL57 サービスを開始します.
MySQL57 サービスは正常に開始されました。
おそらくバージョンが変わると「57」の数字も変化すると思われます。
MySQLにログインする
コマンドプロンプトに、
mysql --user=root --password
と入力します。下記の通り表示されるので、インストール時に設定したパスワードを入力します。
Enter password: ********
ログインに成功すると下記の通り表示されます。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.40-log MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
ここから先、コマンドプロンプトではなくMySQLのコマンドを使用します。
データベースの表示
次のコマンドでデータベースを表示できます。
mysql> SHOW DATABASES;
MySQLのインストール直後は次のように表示されます。
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
6 rows in set (0.02 sec)
先頭一致した名前のデータベースを表示できます。例えば’my%’とすると’my’から始まる名前のデータベースだけ表示されます。コマンドと結果は下記の通りです。
mysql> SHOW DATABASES LIKE 'my%';
+----------------+
| Database (my%) |
+----------------+
| mysql |
+----------------+
1 row in set (0.00 sec)
後方一致した名前のデータベースを表示できます。例えば’%schema’とすると’schema’で終わる名前のデータベースだけ表示されます。コマンドと結果は下記の通りです。
mysql> SHOW DATABASES LIKE '%schema';
+--------------------+
| Database (%schema) |
+--------------------+
| information_schema |
| performance_schema |
+--------------------+
2 rows in set (0.00 sec)
データベースの作成
コマンド「CREATE DATABASE データベース名;」でデータベースを作成できます。例えばpython_test_dbという名前のデータベースを作成したい場合のコマンドと結果は下記の通りです。
mysql> CREATE DATABASE python_test_db;
Query OK, 1 row affected (0.00 sec)
データベース一覧を表示すると追加されていることが分かります。
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| python_test_db |
| sakila |
| sys |
| world |
+--------------------+
7 rows in set (0.00 sec)
文字コードを指定して作成することができます。例えばutf8を指定する場合、コマンドと結果は下記の通りです。
mysql> CREATE DATABASE python_test_db CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
データベースの削除
コマンド「DROP DATABASE データベース名;」でデータベースを削除できます。例えばpython_test_dbという名前のデータベースを削除したい場合のコマンドと結果は下記の通りです。
mysql> DROP DATABASE python_test_db;
Query OK, 0 rows affected (0.02 sec)
データベース一覧を表示すると削除されていることが分かります。
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
6 rows in set (0.00 sec)
いったんは削除しましたが、ここから先「python_test_db」というデータベースを作成した前提で進めます。
操作するデータベースを切り替える
コマンド「USE DATABASE データベース名;」で使用するデータベースを切り替えられます。例えばpython_test_dbという名前のデータベースを使用したい場合のコマンドと結果は下記の通りです。
mysql> USE python_test_db
Database changed
データベースにテーブルを作成する
コマンド「CREATE TABLE テーブル名 (カラム名 データ型, カラム名 データ型, …);」でテーブルを作成できます。例えばpersonという名前で、カラムにidとnameを持つテーブルを作成したい場合のコマンドと結果は下記の通りです。
mysql> CREATE TABLE person (id INT, name VARCHAR(100));
Query OK, 0 rows affected (0.02 sec)
データ型は下記の通りです。
型 | 説明 | 備考 |
INT | 整数 | |
DECIMAL(全体の桁数, 小数点以下の桁数) | 小数 | 引数で整数部の桁数と小数の桁数を指定する。例えばDECIMAL(5, 2) と指定すると、123.45 のような数値が保存できる。 |
VERCHAR(文字数) | 文字列 | 引数で文字数を指定する。例えばVARCHAR(100) と指定すると、100文字まで保存できる。 |
DATETIME | 日時 | |
DATE | 日付 |
テーブルの表示
次のコマンドでテーブルを表示できます。
mysql> SHOW TABLES;
+--------------------------+
| Tables_in_python_test_db |
+--------------------------+
| person |
+--------------------------+
1 row in set (0.00 sec)
テーブルの構造を確認する
次のコマンドでテーブルの構造を確認できます。
mysql> DESCRIBE person;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(100) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
次のコマンドは同じ効果です。
mysql> DESC person;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(100) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> SHOW COLUMNS FROM person;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(100) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> SHOW FIELDS FROM person;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(100) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
テーブルの削除
次のコマンドでテーブルを削除できます。
mysql> DROP TABLE person;
Query OK, 0 rows affected (0.01 sec)
テーブルが削除されていることを確認します。
mysql> SHOW TABLES;
Empty set (0.00 sec)
MySQLからログアウトする
次のコマンドでログアウトできます。ログアウト後はコマンドプロンプトに戻ります。
mysql> exit;
Bye
MySQLを停止する
次のコマンドでMySQLを停止できます。
C:\Users\user>net stop mysql57
MySQL57 サービスを停止中です.
MySQL57 サービスは正常に停止されました。