MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLにおけるスキーマとデータベースの違いとは?違いをわかりやすく解説

MySQLのスキーマとデータベースの関係

MySQLにおいて、スキーマ(Schema)データベース(Database)は実質的に同じものを指します。つまり、データベースを作成するSQL文が書けるなら、同じようにスキーマを作成するSQL文も書くことができます。

スキーマとデータベースの概念的な違い

両者には概念的な役割の違いがあります。一般的に、以下のように説明されます。

  • スキーマ: データを格納するための論理的な構造として機能します。テーブルやビューなどのオブジェクト定義の集まりです。
  • データベース: データを実際に保持するための物理的な領域(メモリコンポーネント)を含むものです。

また、「スキーマはテーブルの集合であり、データベースはスキーマの集合である」という階層関係で捉えることもできます。

実際にデータベースとスキーマを作成して確認してみよう

概念を明確に理解するために、実際にデータベースとスキーマを作成してみましょう。手順は以下の通りです。

1. データベースを作成する

まず、次の構文でデータベースを作成します。

create database データベース名;

この構文を使ったクエリの実行例がこちらです。

mysql> create database DatabaseSample;
Query OK, 1 row affected (0.14 sec)

2. スキーマを作成する

続いて、スキーマを作成する構文は以下の通りです。

create schema スキーマ名;

実際にクエリとして実行すると、次のようになります。

mysql> create schema SchemaSample;
Query OK, 1 row affected (0.19 sec)

これで、データベースとスキーマの両方が作成されました。

3. 作成したデータベースとスキーマを確認する

作成されたデータベースおよびスキーマの一覧を表示するには、show databases コマンドを使用します。実行クエリは以下の通りです。

mysql> show databases;

上記クエリの実行結果は次の通りです。

+--------------------+
| Database           |
+--------------------+
| business           |
| databasesample     |
| hello              |
| information_schema |
| mybusiness         |
| mysql              |
| performance_schema |
| sample             |
| schemasample       |
| sys                |
| test               |
+--------------------+
11 rows in set (0.07 sec)

出力結果を見ると、databasesampleschemasample の両方が「Database」カラムに表示されていることがわかります。これは、MySQLではスキーマとデータベースが同一の存在として扱われていることを示しています。

Oracleデータベースの場合との違い

参考までに、Oracleデータベースでは事情が異なります。Oracleにおいてスキーマは、データベースの一部(特定ユーザーが所有するオブジェクトの集まり)を表すために使用されます。つまり、MySQLでは同義語ですが、他のRDBMSでは意味が変わる点に注意が必要です。

まとめ

  • MySQLではスキーマ=データベースであり、作成方法もほぼ同じ。
  • 概念的には、スキーマは論理構造、データベースは物理的な格納領域を含むものと説明される。
  • show databases で確認すると、スキーマもデータベースと同じ一覧に表示される。
  • Oracleなど他のDBMSではスキーマの意味が異なるため、製品ごとの仕様を理解しておくことが重要。
  1. MySQLにおける「!=NULL」と「IS NOT NULL」の違いとは?

    MySQLでは、値を!=NULLと比較すると、結果は必ずNULLになります。つまり、!=NULLという比較は意味を持ちません。NULLは「不明な値」を表すため、通常の比較演算子では判定できないのです。NULL値を判定するには、専用の演算子であるIS NOT NULLを使用します。ここでは、!=NULLとIS NOT NULLの違いを実際に確認するために、まずテーブルを作成します。テーブルの作成まず、次のコマンドでテーブルを作成します。mysql> create table DemoTable1970     (    

  2. MySQLとPostgreSQLの違いを徹底解説!特徴と比較ポイント

    データベースの選定において、多くの開発者が候補に挙げるのがMySQLとPostgreSQLです。どちらも世界中で広く利用されているオープンソースのデータベースですが、設計思想や搭載されている機能には重要な違いがあります。本記事では、それぞれの特徴と相違点をわかりやすく解説します。MySQLとはリレーショナルデータベース管理システム(RDBMS)です。Oracle Corporation(オラクル社)によって開発・提供されています。Windows、macOS、Linux、BSD、UNIX、z/OSなど、幅広いプラットフォームに対応しています。システムの拡張性には制約があり、基本的には標準的な構成