データベースの作成
データベースは、実際にデータを収める複数のテーブルやテーブルの集合体であるスキーマ、ビュー,トリガといったスクリプトを統括し管理します。
まず先に統括し管理するためのデータベースを作成することから始めます。
データベースを作成するには CREATE DATABASE 文を使用します。
CREATE DATABASE 文は標準SQLにはありません。データベースの実装に依存しますのでお使いのデータベースを参照してください。
PostgreSQLではpsqlインターフェイスを利用します。詳しくは「PostgreSQLの操作(postmasterとpsql)」を参照してください。
$ psql データベース名 psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1)) Type "help" for help. ...
MySQLではmysqlインターフェイスを利用します。
$ mysql -p データベース名 ...
mysql> \q または quit Bye
簡単にデータベースを作成するには以下の構文を使います。データベースオーナーはログインしているユーザーに成ります。
CREATE DATABASE example;
データベースを作成したら、そのデータベース内でテーブルを作成していきます。
CREATE DATABASEの構文
CREATE DATABASEの構文は、例えばPostgreSQLでは以下のように示されています。
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では以下のように示されています。
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;
MySQL データベースに接続
作成したデータベースにテーブルやビューを作成したりデータを編集するためには、データベースを指定し接続しなければなりません。
データベースに接続する方法には、mysql コマンドでデータベースを指定する、mysql コマンドプロンプトで USE コマンドを実行する方法があります。
$ mysql -u username -p db_name ... mysql>
使用するデータベースは -p オプションで指定します。-p オプションによる指定がない場合は使用する何もデータベースがない状態でログインします。
以下のように SELECT database(); クエリーを実行すると NULL と表示されます。
現在使用中のデータベース
現在接続中のデータベースを確認するには SELECT クエリーで databse() 関数を使用します。
mysql> SELECT databse();
+-------------------+
| database() |
+-------------------+
| current_database |
+-------------------+
...
データベースを切り替えるには以下のような use クエリーを実行します。
データベース切り替え
mysql にログインした状態でデータベースを切り替えるには USE コマンドを使用します。
mysql> use other_db; Database changed
詳しくは MySQL のデータベース
を参照してください。
テーブルの作成
テーブルとは、データベースにおいてデータを格納するために用意する表のようなものです。
表計算のような行列の概念があり、CREATE TABLE
では列の各カラム(項目)の定義をします。

例えば以下のようにテーブルを定義します。
CREATE TABLE sales_slip ( id SERIAL PRIMARY KEY, /* 行番号 */ date_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, /* 日付 */ goods_name VARCHAR(30), /* 商品名 */ unit_price INT, /* 単価 */ amount INT, /* 数量 */ price BIGINT GENERATED ALWAYS AS ( amount * unit_price ) STORED /* 金額 */ );
テーブルに格納されるデータは行と列として扱います。
ただし、データベースではデータの扱いがテキストベースで行われ、データがどのように扱われているかは想像力を働かせる必要があります。
詳しくはテーブル
を参照してください。