SQLでデータベースを作成する方法
- データをデータベースに保存するには、データベースを作成する必要があります。
- データベース名は常に一意である必要があります。
- SQLでは、サーバーにすでに存在する同じ名前のデータベースを作成することはできません。
- 新しいデータベースを作成するときに一意性を確保するには、データベース管理者がサーバーにすでに存在するデータベースを認識している必要があります。
- データベースを表示 コマンドはSQLで使用され、サーバーに存在するすべてのデータベースを一覧表示します。
例:
利用可能なすべてのデータベースを確認します。
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | demo | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.05 sec)
上記の例では、システムデータベース(information_schema、performance_schema、mysql)およびユーザー作成データベース(demo、test)を含む、サーバーに存在するすべてのデータベースが表示されます。
- データベース管理者がSQLサーバーに存在する既存のデータベースの名前を理解すると、データベース管理者はSHOWDATABASESコマンドの出力を考慮して任意の名前のデータベースを作成できるようになります。
SQLでデータベースを作成するための構文:
CREATE DATABASE DATABASENAME;
例: 「Exampledb」という名前の新しいデータベースを作成します。
mysql> CREATE DATABASE Exampledb;
「exampledb」という名前の新しいデータベースがサーバーに正常に作成されました。
- データベースが正常に作成されるようにするために、SHOWDATABASESコマンドを再度使用します。
例:
「exampledb」が作成されているかどうかを確認するために、使用可能なすべてのデータベースを表示します。
mysql> SHOW DATABASES;
出力:
+--------------------+ | Database | +--------------------+ | information_schema | | demo | | exampledb | | mysql | | performance_schema | | test | +--------------------+
これで、「exampledb」という名前で新しく作成されたデータベースもリストされていることがわかります。
- CREATEDATABASEコマンドの代わりに使用できるのはCREATESCHEMA COMMAND 。どちらのクエリも、データベース作成の同じタスクを実行します。
構文:
CREATE SCHEMA DATABASENAME;
例: 別のクエリを使用して、「testDB」という名前のデータベースを作成します。
mysql> CREATE SCHEMA testDB;
例: 「testdb」が作成されているかどうかを確認するために、使用可能なすべてのデータベースを表示します。
mysql> SHOW DATABASES;
出力
+--------------------+ | Database | +--------------------+ | information_schema | | demo | | exampledb | | mysql | | performance_schema | | test | | testdb | +--------------------+ 7 rows in set (0.05 sec)
- 次のコマンドを使用して、作成済みのデータベースを確認することもできます。
SHOW CREATE DATABASE DATABASE_NAME;
例:
We will review the already created database named as “exampledb”. mysql> SHOW CREATE DATABASE exampledb;
出力:
+------------+-----------------------------------------------------------------------+ | Database | Create Database | +------------+-----------------------------------------------------------------------+ | exampledb | CREATE DATABASE ` exampledb ` /*!40100 DEFAULT CHARACTER SET latin1 */ | +------------+-----------------------------------------------------------------------+ 1 row in set (0.00 sec)
ここでは、「exampledb」という名前のデータベースを作成するために使用されたコマンドが、文字セットとともに表示されます。そのデータベースの作成中に文字セットが指定されなかったため、データベースはデフォルトの文字セット、つまり latin1で作成されます。 。
- データを特定のデータベースに保存するには、管理者が使用する特定のデータベースをサーバーに通知する必要があります。
構文:
USE DATABASE_NAME;
例:
特定のデータベースを操作するには、ユーザーは「exampledb」でさらにクエリを実行することをサーバーに通知する必要があります。
mysql> USE exampledb;
出力:
Database changed
「exampledb」という名前のデータベースを使用したため、以降のすべてのクエリはこの特定のデータベースで実行されます。
CREATEステートメントのパラメーター
パラメータと仕様を追加することで、CREATEDATABASEクエリを即興で作成することもできます。
- 存在しない場合
1つのMySQLサーバーに複数のデータベースが存在する場合があります。 MySQLサーバー内にすでに存在するデータベースを作成しようとする場合があります。したがって、その場合、CREATEDATABASEクエリで「IFNOTEXISTS」パラメータを使用すると目的が果たされます。新しいデータベースを作成する前に、指定された名前でデータベースがすでに存在するかどうかを確認するようにサーバーに指示します。
構文:
CREATE DATABASE IF NOT EXISTS DATABASENAME;
例:
新しいデータベース「demodb」を作成するために、最初に使用可能なすべてのデータベースを表示し、次にその名前のデータベースがまだ存在しない場合は「demodb」を作成します。
mysql> SHOW DATABASES;
出力:
+--------------------+ | Database | +--------------------+ | information_schema | | demo | | exampledb | | mysql | | performance_schema | | test | | testdb | +--------------------+ 7 rows in set (0.05 sec)
mysql> CREATE DATABASE IF NOT EXISTS demodb; Query OK, 1 row affected (0.00 sec)
以前は、「demodb」という名前のデータベースはありませんでした。これで、「demodb」という名前のデータベースが作成されます。 IF NOT EXISTSを使用せずに既存の名前でデータベースを作成しようとすると、その場合、SQLはエラーをスローします。
例:
次に、使用可能なすべてのデータベースを表示して、データベース「demodb」が作成されていることを確認します。
mysql> SHOW DATABASES;
出力:
+--------------------+ | Database | +--------------------+ | information_schema | | demo | | demodb | | exampledb | | mysql | | performance_schema | | test | | testdb | +--------------------+ 8 rows in set (0.00 sec)
ここで、「demodb」という名前のデータベースが作成されます。
- 照合と文字セット
照合は、比較に役立つ一連のルールです。 SQLデータを英語以外の異なる言語で保存できます。データを他の言語で保存するには、その特定の言語の文字セットを選択する必要があります。さまざまなレベルの文字セットには、サーバー、データベース、テーブル、および列が含まれます。文字セットを選択すると、照合のルールのみを選択できます。
例:
文字セットが「latin1」で照合ルールが「latin1_swedish_ci」の「sample」という名前の新しいデータベースを作成します。
mysql> CREATE DATABASE IF NOT EXISTS sample CHARACTER SET latin1 COLLATE latin1_swedish_ci;
ここで、「サンプル」データベースは、文字セットとしてlatin1を使用し、照合ルールとしてlatin1_swedish_ciを使用して作成されます。