データベースの作成と削除
どのようなRDBMS製品でも、データを扱うためには、データベースをつくらなくてはなりません。データベースを作成するには CREATE DATABASE コマンドを使います。
CREATE DATABASE <データベース名> ;
また、RDBMS製品のGUIから作成する方法もあります。GUIからデータベースを作成する方法は、製品ごとに異なります。マニュアルなどで作成方法を確認してください。
データベースを削除するには、DROP DATABASE コマンドを使います。
DROP DATABASE <データベース名> ;
表を作成する
RDBの基本となるのは表です。表の作成は CREATE TABLE文を用います。表の作成には、表名や列名、データ型などを定義する必要があります。それらの情報をもとに、次のような書式で記述すると表を作成することができます。
CREATE TABLE <表名> (
<列名1> <データ型>,
<列名2> <データ型>,
<列名3> <データ型>,
...);
CREATE TABLE 学生名簿 (学生番号 INT,名前 VARCHAR2(16),入学年度 VARCHAR2(4));
値が必須の列を作る
表を作成するときに、値を必須とする列を作成することができます。例えばキーになる列や業務上必ず必要になるデータを格納する列などです。値が必須の列とするには、列の定義に「NOT NULL」を指定します。
CREATE TABLE <表名> (
<列名1> <データ型> [NOT NULL],
<列名2> <データ型> [NOT NULL],
<列名3> <データ型> [NOT NULL],
...);
CREATE TABLE 学生名簿
(学生番号 INT NOT NULL, 名前 VARCHAR2(16) NOT NULL, 入学年度 VARCHAR2(4));
一意の列を作る
表を作成するときに、列内の値に重複がないように指定することもできます。この指定にはUNIQUEキーワードを指定します。UNIQUEを指定すると、データの挿入、データの更新などで、その列に重複するデータを入れようとするとエラーとなります。UNIQUEを指定する書式は次のようにになります。
CREATE TABLE <表名> (
<列名1> <データ型> [NOT NULL] [UNIQUE],
<列名2> <データ型> [NOT NULL] [UNIQUE],
<列名3> <データ型> [NOT NULL] [UNIQUE],
...);
UNIQUEの指定は列ごとに行います。次のように記述すると、「学生番号」列には重複したデータを入れられなくなります。
CREATE TABLE 学生名簿
(学生番号 INT NOT NULL UNIQUE, 名前 VARCHAR2(16) NOT NULL, 入学年度 VARCHAR2(4));
デフォルト値を設定する
CREATE TABLE <表名> (
<列名1> <データ型> [NOT NULL] [UNIQUE] [DEFAULT <値>],
<列名2> <データ型> [NOT NULL] [UNIQUE] [DEFAULT <値>],
<列名3> <データ型> [NOT NULL] [UNIQUE] [DEFAULT <値>],
...);
「学生番号」列にデフォルト値として「0」を指定するときには、次のように記述します。
CREATE TABLE 学生名簿 (
学生番号 INT DEFAULT 0, 名前 VARCHAR2(16) NOT NULL, 入学年度 VARCHAR2(4));
主キーを設定する
表には、その表の行を一意にするための列であるキーが存在する場合があります。キーの中でも主キーは、行を特定するための列になり、表を作成するときに設定することができます。この設定のことを「主キー制約」とも呼びます。主キーの設定には、CONSTRAINT(制約)キーワードを使います。このCONSTRAINTキーワードの記述には、1つの列を指定するときと、複数の列を指定するときで、2種類の方法がありますから、それぞれ紹介しておきます。
1つの列に主キー制約を指定する場合には次のような記述になります。
CREATE TABLE <表名> (
<列名1> <データ型> [NOT NULL] [UNIQUE] CONSTRAINT <識別名> PRIMARY KEY,
<列名2> <データ型> [NOT NULL] [UNIQUE] ,
<列名3> <データ型> [NOT NULL] [UNIQUE] ,
...);
この書式では、<列名1>が主キーとして設定されています。そして、任意の<識別名>を指定することでキーを識別できるようにしています。この識別名は、後でキーを削除するときにも使いますので、覚えておきやすいものを指定しましょう。主キーとして指定するにはNOT NULL制約も必要となります。
CREATE TABLE 学生名簿
(学生番号 INT NOT NULL CONSTRAINT pkey PRIMARY KEY,
名前 VARCHAR2(16) NOT NULL, 入学年度 VARCHAR2(4));
CREATE TABLE <表名> (
<列名1> <データ型> [NOT NULL] [UNIQUE] ,
<列名2> <データ型> [NOT NULL] [UNIQUE] ,
<列名3> <データ型> [NOT NULL] [UNIQUE] ,
...
CONSTRAINT <識別子> PRIMARY KEY (<列名1>,<列名2>,...)
);
この書式のように、列ごとにCONSTRAINTキーワードの記述を行うのPではなく、最後にまとめて記述します。PRIMARY KEYキーワードの後ろで指定した複数の列で主キーを設定するのです。このように指定して、複数の列で構成されるキーを連結キーと呼びます。
実際の記述では、次のようになります。
CREATE TABLE 学生名簿
(学生番号 INT NOT NULL, 名前 VARCHAR2(16) NOT NULL, 入学年度 VARCHAR2(4)
CONSTRAINT pkey PRIMARY KEY (学生番号,名前));
表の削除
表を削除する場合には、DROP TABLE文を使います。DROP TABLE文では、表の中にデータが入っていても、表ごとすべて削除されてしまいます。しかも、前の状態に戻るロールバック機能も有効ではないので、操作には十分注意してください。
DROP TABLE文の書式は、次のように、DROP TABALEの後ろに削除する表名を入れるだけです。
DROP TABLE <表名>;