データベースを扱う際、テーブルに格納されたデータはもちろん、テーブルの一覧やカラムの情報など、様々なデータを確認したいケースが存在します。
本記事では、MySQLにおける各種データの確認コマンドをサンプルと共にご紹介していきたいと思います。
テーブル一覧を確認するSQLコマンド
最初にデータベースに存在するテーブル一覧を確認するSQLコマンドをご紹介していきます。
SELECTコマンド
データベース名を指定して、テーブル一覧を取得するにはSELECTコマンドを利用します。
SELECT カラム名(, カラム名, ...) FROM information_schema.tables (WHERE table_schema = 'データベース名');
実際にテーブル名とテーブルの種類に該当するカラムだけを取得するサンプルを作成してみます。
サンプルでは「test_db」というデータベースに存在するテーブル一覧を取得しています。
SELECT table_name, table_type FROM information_schema.tables WHERE table_schema = 'test_db';
実行した結果が下記の通りです。
+-------------+------------+ | TABLE_NAME | TABLE_TYPE | +-------------+------------+ | animal | BASE TABLE | | animal_name | VIEW | | product | BASE TABLE | | user | BASE TABLE | +-------------+------------+
SHOWコマンド
次にSHOWコマンドで同様にテーブル一覧を確認してみたいと思います。
まずは確認したいデータベースを選択しておく必要があります。
USE データベース名;
SHOWコマンドの記述方法は下記となります。
SHOW TABLES;
実行した結果が下記の通りです。
+-------------------+ | Tables_in_test_db | +-------------------+ | animal | | animal_name | | product | | user | +-------------------+
テーブルの種類まで取得したい場合には下記のように記述してください。
SHOW FULL TABLES;
上記のSQL文を実行すると、テーブルの種類まで表示されます。
+-------------------+------------+ | Tables_in_test_db | Table_type | +-------------------+------------+ | animal | BASE TABLE | | animal_name | VIEW | | product | BASE TABLE | | user | BASE TABLE | +-------------------+------------+
テーブル構造を確認するSQLコマンド
次にテーブル構造を確認するSQLコマンドについても確認しておきましょう。
こちらのSQLコマンドもデータベースを選択した状態で実施してください。
基本構文
既存のテーブル構造を確認したい場合には、「SHOW」コマンドで確認することが可能です。
SHOW CREATE TABLE テーブル名;
今回はサンプルとして用意した「user」テーブルの構造を確認してみましょう。
SHOW CREATE TABLE user \G
末尾に付けたGはオプションで、データの表示を見やすく整えてくれます。
通常のSQLのように末尾に「;」を付けるとエラーとなります。
サンプルSQLを実行した結果が下記となります。
Table: user Create Table: CREATE TABLE `user` ( `id` int NOT NULL, `name` varchar(30) NOT NULL, `age` int DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 1 row in set (0.00 sec)
テーブルのデータを確認するSQLコマンド
最後はテーブルに格納されたデータを確認するSQLコマンドです。
データベース関連の処理で最も利用することの多いコマンドでしょう。
基本構文
テーブルのデータを確認するには「SELECT」コマンドを利用します。
SELECT カラム名(, カラム名, ...) FROM テーブル名 (WHERE 条件式);
まずはサンプルとして、「user」テーブルのデータを全件取得するSQLを作成してみます。
SELECT * FROM user;
実行した結果が下記の通りです。
+----+-----------------+------+ | id | name | age | +----+-----------------+------+ | 1 | 山田太郎 | 30 | | 2 | 山田花子 | 25 | | 3 | 鈴木じろう | 20 | +----+-----------------+------+
次に取得するデータに条件を付けてみましょう。
サンプルでは、「name」と「age」のカラムだけを「山田」から始まる名前のデータという条件で取得するSQLを作成しました。
SELECT name, age FROM user WHERE name like '山田%';
実行した結果が下記の通りです。
+--------------+------+ | name | age | +--------------+------+ | 山田太郎 | 30 | | 山田花子 | 25 | +--------------+------+
狙ったデータだけが表示されていることをご確認いただけます。
さいごに:テーブル情報の確認方法はSQLを扱う上で理解しておこう
本記事では、様々なテーブル情報を確認するためのSQLコマンドについてご紹介してきました。
今回ご紹介したような、SQLでテーブル情報を確認する機会は、データベースを取り扱うシステム開発では頻繁に訪れます。
全てのコマンドを完璧に記憶しておく必要はありませんが、利用したいときにインターネットで調べ、すぐに自分自身が実行したい条件のSQLコマンドを作成出来るくらいには、概要を把握しておきましょう。
今回のサンプルではMySQLを使用したSQLコマンドをご紹介します。
データベース毎にSQLコマンドが異なりますので、ご利用のデータベースに合わせて読み替えをお願いします。