Lesson 4
CUIを使う
目次
Lesson 4
Chapter 1
PowerShellからコマンドラインでMySQLに接続
本レッスンでは、PowerShell からコマンドラインで MySQL の操作を行います。
具体的には Lesson 3 で TablePlus を使用して行った「Chapter2 DBに接続する」と「Chapter3 SQLを実行する」と同じ処理を、コマンドのみで実行していきます。
それでは、進めていきましょう。
PowerShell を起動する
まずは、スタートメニューから PowerShell を起動しましょう。
PowerShell から MySQL に接続する
環境変数に MySQL の Path を通していることが前提となります(Path を通していない場合は後述します)。
PowerShellに mysql -u root -p
と入力してください。
Enter キーを押すと次のようにパスワードが求められます。
ここに、設定した「管理者パスワード」を入力して Enter キーを押します。
PowerShell
> mysql -u root -p
Enter password:
MySQLに接続するコマンドについて
MySQLの接続には次のコマンドを入力します。
> mysql -h host -u user -p
・「host」にはMySQLが稼働しているホストの名前を入力します。
・「user」にはMySQLアカウントのユーザー名を入力します。
ただし、今回のようにMySQLが稼働しているマシンと同じマシンにログインしている場合は、次のようにホストを省略して使用できます。
> mysql -u user -p
パスワードの入力後、次のような画面が表示されたら接続成功です。
PowerShell
> mysql -u root -p
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.30 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>
(参考)環境変数に Path を通していない場合の MySQL 接続
環境変数に Path を通していない場合は、mysql の「実行ファイル」が保存されているディレクトリでコマンドを実行する必要があります。
<実行ファイルの場所>
実行ファイルがどこにあるのか確認してみましょう。
このカリキュラム通りに MySQL をインストールしている場合は
C:\Program Files\MySQL\MySQL Server 8.0\bin\
内に、mysql.exe
というファイルが存在しています(下図)。
これが、MySQL の実行ファイルとなります。
つまり、以下のように、PowerShell 上でこのディレクトリまで移動してから、MySQL を実行する必要があります。
PowerShell
PS C:\Users\UserName> cd 'C:\Program Files\MySQL\MySQL Server 8.0\bin\'
PS C:\Program Files\MySQL\MySQL Server 8.0\bin> mysql -u user -p

Lesson 4
Chapter 2
ヘルプでコマンドを見てみる
ヘルプコマンドを使用することにより、MySQL で実行できるコマンドの確認をすることができます。
以下、利用方法を確認していきましょう。
MySQL クライアントコマンド(help コマンド)
MySQL に接続している状態で、コマンドラインに「help」と入力してみましょう。
次のような、一覧が表示されます。
PowerShell
mysql> help
For information about MySQL products and services, visit:
http://www.mysql.com/
For developer information, including the MySQL Reference Manual, visit:
http://dev.mysql.com/
To buy MySQL Enterprise support, training, or other products, visit:
https://shop.mysql.com/
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
notee (\t) Don't write into outfile.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
resetconnection(\x) Clean session context.
For server side help, type 'help contents'
これは、MySQL 自体が解釈するコマンドとなります(SQL 文の実行のためのコマンドは、次の Chapter を参照)。
これらのコマンドは、全て覚える必要はなく、必要な時に調べて使用することでも十分だと思います。
よく使用されるコマンドは以下のとおりです。こちらは覚えておくと良いでしょう。
No | コマンド | 省略形 | 説明 |
---|---|---|---|
1 | ? | \? |
ここで入力した help コマンドの別名となります。 (同じ結果が表示されます) |
2 | clear | \c |
SQLの入力をキャンセルする場合に使用します。 使用例: > SELECT * FROM user WHE\c
|
3 | delimiter | \d |
SQL文の区切り文字を設定します。デフォルトは ; 使用例: delimiter //
|
4 | ego | \G |
SQL の出力結果を縦に表示します。 使用例: > SELECT * FROM user WHERE id = 1\G
|
5 | exit | \q | mysql を終了します。quit と同じです。 |
6 | help | \h | ここで実行した help コマンドです。 |
7 | quit | \q | mysql を終了します。 |
8 | status | \s | サーバーからステータス情報を取得します。 |
SQL 文で使用するコマンドを確認する(help contents コマンド)
次は、SQLで使用するコマンドを確認してみます。
help contents
と入力することで、SQLで使用するコマンドのカテゴリを取得することができます。
PowerShell
mysql> help contents
You asked for help about help category: "Contents"
For more information, type 'help <item>', where <item> is one of the following
categories:
Account Management
Administration
Compound Statements
Contents
Data Definition
Data Manipulation
Data Types
Functions
Geographic Features
Help Metadata
Language Structure
Loadable Functions
Plugins
Prepared Statements
Procedures
Replication Statements
Storage Engines
Table Maintenance
Transactions
Utility
こちらも、必要な時に調べて使用するものですので、全て覚える必要はありません。
使用頻度が高いカテゴリは、以下のとおりです。
No | カテゴリ | 内容 |
---|---|---|
1 | Account Management |
MySQL 自体のアカウントを管理するコマンド一覧を表示。 ユーザー作成を行う CREATE USER コマンドなどが含まれます。 |
2 | Administration |
MySQL 全般の管理コマンド一覧を表示。 テーブル一覧を表示する SHOW TABLES コマンドなどが含まれます。 |
3 | Data Definition |
データ定義に関するコマンド一覧を表示。 テーブルを作成する CREATE TABLE コマンドなどが含まれます。 |
4 | Data Manipulation |
データ操作に関するコマンド一覧を表示。 テーブルからデータを取得する SELECT コマンドなどが含まれます(後述参照)。 |
5 | Data Types |
データ型の一覧を表示。 整数型 INT や文字列型 CHAR などが含まれます。 |
6 | Functions |
MySQL で使用できる関数の一覧を表示。 日付操作関数を表示する Date and Time Functions などが含まれます。 |
HELP コマンドの使用例
ここでは、次の Chapter3 で使用する SELECT コマンドを確認してみましょう。
まず、help Data Manipulation
と入力し、データ操作に関するコマンドの一覧を表示してみます。
PowerShell
mysql> help Data Manipulation
You asked for help about help category: "Data Manipulation"
For more information, type 'help <item>', where <item> is one of the following
topics:
CALL
DELETE
DO
DUAL
HANDLER
INSERT
INSERT DELAYED
INSERT SELECT
JOIN
LOAD DATA
LOAD XML
REPLACE
SELECT
UNION
UPDATE
ここで調べたいコマンドは「SELECT」です。
ということで、help SELECT
と入力してみてください。
すると、次のように、SELECT 文の基本構文や説明などの詳細が表示されます。
PowerShell
mysql> help SELECT
Name: 'SELECT'
Description:
Syntax:
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr [, select_expr] ...
[into_option]
[FROM table_references
[PARTITION partition_list]]
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[into_option]
[FOR UPDATE | LOCK IN SHARE MODE]
into_option: {
INTO OUTFILE 'file_name'
[CHARACTER SET charset_name]
export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name] ...
}
# 以下省略
最初は、難しく見えるかもしれません。
ある程度慣れてくると、実務上で使用できるオプションなどを調べるときに大変便利ですので、ここでは HELP 構文の使い方だけは覚えておきましょう。

Lesson 4
Chapter 3
SQLを実行する
それでは、実際にデータベース上で SQL の実行をしてみましょう。
ここでは、SELECT 文を使って、目的のデータを取得するまでを実践していきます。
MySQL の構成イメージ
最初に、データベース管理システム(MySQL)の全体のイメージを確認しておきます。
次の図のように、1つのデータベース管理システムの中に、複数のデータベース(DB)が存在します。
このデータベースの中に、更に複数のテーブル(Table)が存在しています。
必要なデータを取得するには、次の3つの指定が必要になります。
① どのデータベースが対象か
② そのデータベースの中のどのテーブルが対象か
③ そのテーブルの中のどのレコード(データ)が対象か
この Chapter で取得するデータ
このレッスンどおりに進めている場合は、まだ、新たなデータベースを1つも作っていない状態だと思います。
そのため、この Chapter では、MySQL にデフォルト登録されている次のデータを取得するようにします。
① MySQL にデフォルトで入っている mysql
というデータベースを対象とする。
② mysql
データベースの中の user
というテーブルを対象とする。
③ user
テーブルの中の全てのデータを取得する。
※ 本 Chapter の目的は基本操作の確認のため、個別のレコードの指定はせず全てのデータを取得します。
使用するデータベースを指定する
データベースの一覧を表示
まず、MySQL の中に、どのようなデータベースがあるかを確認してみましょう。
使用するコマンドは、SHOW DATABASES
となります。
コマンドを実行すると、以下のようにデータベースの一覧が表示されます。
PowerShell
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
使用するデータベースを選択
表示されている4つのデータベースのうち、ここでは mysql
というデータベースを選択します。
データベースを選択するコマンドは、USE (データベース名)
となります。
では、以下のようにコマンドを実行してみましょう。
PowerShell
mysql> use mysql;
Database changed
データベースの選択ができるとDatabase changed と表示されます。
テーブルの一覧を表示
ここで、 mysql
データベースの中にあるテーブル一覧を取得しておきます。
使用するコマンドは、SHOW TABLES
となります。
コマンドを実行すると、以下のようにテーブルの一覧が表示されます。
PowerShell
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| engine_cost |
| event |
| func |
| general_log |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
31 rows in set (0.00 sec)
一番最後にある user テーブルが、今回のデータ取得対象となるテーブルとなります。
SELECT 文を実行する
テーブル全体を表示する
テーブルからデータを取得するには、テーブルのカラム名などを把握しておく必要があります。
カラム
カラムとは、テーブル(表)の「列」を表す言葉です。
データベースにおけるテーブルの列(カラム)には、「名前」「メールアドレス」「携帯番号」というような特定の情報を示す項目名が入ります(これを「カラム名」といいます)。
ここでは、一旦、user テーブルの全てのデータを取得してみます。
次のように、SELECT * FROM user;
というコマンド(※)を実行してみてください。
※ 以下のサンプルでは表の右側部分を省略しています。実際は、折り返しが重なって見えづらい形で表示されますが、それで大丈夫です。
PowerShell
mysql> SELECT * FROM user;
+-----------+---------------+-------------+-------------+-------------+------------
| Host | User | Select_priv | Insert_priv | Update_priv | Delete_priv
+-----------+---------------+-------------+-------------+-------------+------------
| localhost | root | Y | Y | Y | Y
| localhost | mysql.session | N | N | N | N
| localhost | mysql.sys | N | N | N | N
+-----------+---------------+-------------+-------------+-------------+------------
3 rows in set (0.00 sec)
3つのレコード(行)と、横に展開されたカラム(列)が確認できます。
SELECT 文について
SELECT 文は Lesson 6 で改めて詳細を解説しますので、ここでは、簡単に説明します。
テーブルの全レコードを取得する構文は次のとおりです。
SELECT [カラム名] FROM [テーブル名];
次のように指定すると、user テーブルから全てのカラムを取得することになります。
アスタリスク(*)の指定は、全てのカラムを取得する命令になります。
SELECT * FROM user;
カラムを指定して表示する
全てのカラムを取得すると横長のテーブルとなり、PowerShell ではきれいに表示できません。
そこで、取得するカラムを Host と User の2つに絞り込むようにしてみます。
以下のように SELECT Host, User FROM user;
というコマンドを実行してみてください。
PowerShell
mysql> SELECT Host, User FROM user;
+-----------+---------------+
| Host | User |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
3 rows in set (0.00 sec)
以上の例では、カラム名をカンマ区切りで Host, User
と指定しています。
このように指定することで、必要なカラムのみに絞ってデータを取得することができます。
SELECT 文の詳細は、改めて Lesson 6 で解説します。

Lesson 4
Chapter 4
MySQLを抜ける
最後に、MySQL を終了する方法です。
Chapter 2 の「MySQL クライアントコマンド」のところでも出てきましたが、MySQLを抜ける場合は、
quit
コマンドまたは exit
コマンドを実行すれば OK です。
PowerShell
mysql> quit
Bye
以上のように quit
または exit
と入力し、
「Bye」と表示されたら MySQL から切断できたことになります。
再度 MySQL に接続する場合は、Chapter 1 に戻って mysql -u root -p
を実行れば OK です。
本レッスンはこれで終了です。TablePlusとコマンドラインの表示や操作の違いはあれど、やっていることは同じです。
好みや環境により適宜使い分けられるようにどちらも使えるようにしましょう。
