備忘録的プログラミングリファレンス
TOP > SQLリファレンス > DATABASE

DATABASE

 データベースは、実際にデータを収める複数のテーブルやテーブルの集合体であるスキーマ、ビュー,トリガといったスクリプトを統括し管理します。 まず先に統括し管理するためのデータベースを作成することから始めます。
 データベースを作成するCREATE DATABASE文は標準SQLにはありません。データベースの実装に依存しますのでお使いのデータベースを参照してください。

 PostgreSQLではpsqlインターフェイスを利用します。詳しくは「PostgreSQLの操作(postmasterとpsql)」を参照してください。

psqlにログイン
$ psql データベース名
psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
Type "help" for help.
...

 MySQLではmysqlインターフェイスを利用します。

mysqlにログイン
$ mysql -p データベース名
...
mysqlからログアウト
mysql> \q または quit
Bye

 簡単にデータベースを作成するには以下の構文を使います。データベースオーナーはログインしているユーザーに成ります。

データベース作成例
> CREATE DATABASE example;

 データベースを作成したら、そのデータベース内でテーブルを作成していきます。

CREATE DATABASEの構文

 CREATE DATABASEの構文は、例えばPostgreSQLでは以下のように示されています。

PostgreSQL CREATE DATABASEの構文
CREATE DATABASE name
    [ [ WITH ] [ OWNER [=] user_name ]
           [ TEMPLATE [=] template ]
           [ ENCODING [=] encoding ]
           [ LC_COLLATE [=] lc_collate ]
           [ LC_CTYPE [=] lc_ctype ]
           [ TABLESPACE [=] tablespace_name ]
           [ ALLOW_CONNECTIONS [=] allowconn ]
           [ CONNECTION LIMIT [=] connlimit ]
           [ IS_TEMPLATE [=] istemplate ] ]
	

 MySQLでは以下のように示されています。

MySQL CREATE DATABASEの構文
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_option] ...

create_option: [DEFAULT] {
    CHARACTER SET [=] charset_name
  | COLLATE [=] collation_name
  | ENCRYPTION [=] {'Y' | 'N'}
}
	

オプションの指定例

PostgreSQLでのオプション

 データベース所有者を指定する場合は以下のようにします。

データベースの所有者の指定例
psql> CREATE DATABASE example OWNER user_name;

 さらにテーブルスペースを指定する場合は以下のようにします。テーブルスペースはデフォルトでなければ、先にテーブルスペースを作成しておく必要があります。

データベースの所有者とテーブルスペースの指定例
psql> CREATE DATABASE example OWNER user_name TABLESPACE exmpl_tablespace;

MySQLでのオプション

 データベース所有者を指定する場合は以下のようにします。

データベースの所有者の指定例
mysql> CREATE DATABASE example user_name;