【MySQL】データベースの基本操作 - 作成・情報表示・削除・使用選択

【MySQL】データベースの基本操作 - 作成・情報表示・削除・使用選択

MySQLは複数のRDBを管理できます。

ここではリレーショナルデータベースの基本操作について解説します。

検証環境

MySQLのRDB

MySQLは複数のRDB(リレーショナルデータベース)を管理できます。

RDBの作成や情報表示、削除など様々な操作が可能です。

作成(CREATE DATABASE

データベースの作成はCREATE DATABASE文を使います。

基本構文

CREATE DATABASE データベース名;

サンプル

mysql> CREATE DATABASE mydb;
Query OK, 1 row affected (0.01 sec)

一覧表示(SHOW DATABASES

データベース一覧の表示はSHOW DATABASES文を使います。

基本構文

SHOW DATABASES;

サンプル

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
9 rows in set (0.01 sec)

MySQLには4つのデフォルトデータベースが存在します。

  • information_schema
  • mysql
  • performance_schema
  • sys

これらはMySQLのシステムやデータベースなど様々な情報を保持するデータベースです。

情報表示

データベースの情報や作成SQLクエリを表示できます。

情報(SELECT FROM information_schema

information_schemaデータベースからデータベースの情報を取得できます。
取得にはSELECT文を使用しますが、未学習の方は構文を覚えておきましょう。

基本構文

SELECT * FROM information_schema.SCHEMATA where SCHEMA_NAME = 'データベース名';

'データベース名'から分かるように、データベースは文字列で指定します。

サンプル

mysql> SELECT * FROM information_schema.SCHEMATA where SCHEMA_NAME = 'mydb';
+--------------+-------------+----------------------------+------------------------+----------+
| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
+--------------+-------------+----------------------------+------------------------+----------+
| def          | mydb        | utf8mb4                    | utf8mb4_0900_ai_ci     |     NULL |
+--------------+-------------+----------------------------+------------------------+----------+

作成SQLクエリ(SHOW CREATE DATABASE

データベースの作成SQLクエリを表示できます。

基本構文

SHOW CREATE DATABASE データベース名;

サンプル

mysql> SHOW CREATE DATABASE mydb;
+----------+--------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                                                |
+----------+--------------------------------------------------------------------------------------------------------------------------------+
| mydb     | CREATE DATABASE `mydb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

文字セットや照合順序はデータベース作成時に指定しなかった場合、デフォルトの値が設定されています。

使用選択(USE

使用するデータベースをUSE文で選択できます。

クエリは使用選択したデータベースを起点に実行するため、データベース名の記述が不要になります。

基本構文

USE データベース名;

サンプル

information_schemaを使用選択し、データベース名を省略したクエリを実行します。

___ih_hl_start
mysql> USE information_schema;
___ih_hl_end
Database changed

mysql> SELECT * FROM SCHEMATA where SCHEMA_NAME = 'mydb';
+--------------+-------------+----------------------------+------------------------+----------+--------------------+
| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH | DEFAULT_ENCRYPTION |
+--------------+-------------+----------------------------+------------------------+----------+--------------------+
| def          | mydb        | utf8mb4                    | utf8mb4_0900_ai_ci     |     NULL | NO                 |
+--------------+-------------+----------------------------+------------------------+----------+--------------------+
1 row in set (0.00 sec)

4行目のmydbデータベースの情報表示クエリでは、information_schemaデータベースを選択中のため、省略して実行できました。

また、選択中のデータベースはDATABASE関数で確認できます。

mysql> SELECT DATABASE();
+--------------------+
| DATABASE()         |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)

削除(DROP DATABASE

データベースの削除はDROP DATABASE文を使います。

基本構文

DROP DATABASE データベース名;

サンプル

mysql> DROP DATABASE mydb;
Query OK, 0 rows affected (0.01 sec)