👽
【Oracleデータベース】表の作成・構造関係
Olacleデータベースの表の作成・表構造で使用頻度が多いと聞いた以下3つの文についてメモします。
文 | 説明 |
---|---|
CREATE TABLE | 表を作成します。 |
ALTER TABLE | 表構造を変更します。 |
DROP TABLE | 表構造を変更します。 |
CREATE TABLE文
データを格納する表を作成するには、CREATE TABLE文を使用します。
CREATE TABLE構文
CREATE TABLE テーブル名 (
列名 データ型 [DEFAULT 式]
...
);
ユーザーが指定するのは
- 表名
- 列名、列のデータ型、列のサイズ
上記解説
-
テーブル名
は作成するテーブルの名前です。 -
列名
はテーブルの各列の名前です。 -
データ型
は各列のデータ型を指定します。例えば、NUMBER, VARCHAR2, DATEなどがあります。
DEFAULTオプション
DEFAULTオプションを使用して、列にデフォルト値を割り当てることができます。
DEFAULTオプション例
CREATE TABLE EMPLOYEES
(HIRE_DATE DATE DEFAULT SYSDATE,
・・・
- リテラル値、式、SQL関数が使用可能
- 別の列、疑似列は使用不可能
- デフォルト値のデータ型は、列のデータ型と一致させる
使用例
使用例
CREATE TABLE Employees (
FirstName VARCHAR2(100),
LastName VARCHAR2(100),
HireDate DATE
);
上記SQL文は、FirstName
(最大100文字の文字列)、LastName
(最大100文字の文字列)、HireDate
(日付)という3つの列を持つEmployees
という名前のテーブルを作成します。
副問合せを使用した表の作成
CREATE TABLE文とAS副問合せを組み合わせて使用すると、表の作成と行の挿入ができます。
列名、デフォルト値の定義も可能です。
CREATE TABLE 新しいテーブル名 AS
SELECT 列名1, 列名2, ...
FROM 既存のテーブル名
WHERE 条件;
上記解説
-
新しいテーブル名
は作成する新しいテーブルの名前です。 -
列名
は既存のテーブルから選択する列の名前です。 -
既存のテーブル名
は副問い合わせの対象となる既存のテーブルの名前です。 -
条件
は副問い合わせの結果をフィルタリングするための条件です。
ALTER TABLE文
列の追加、列定義の変更、列削除のため、表を作成した後で表構造を変更する際に使用されます。
ALTER TABLE構文と解説
- 列の追加
列の追加
ALTER TABLE テーブル名
ADD (列名 データ型 [DEFAULT 式]);
列の追加にはADD
句を使用します。
新しく追加された列は最後の列になります。
- 列の変更
列の変更
ALTER TABLE テーブル名
MODIFY (列名 データ型 [DEFAULT 式]);
MODIFY
句を使用し、列のデータ型、サイズ、デフォルト値を変更できます。
デフォルト値を変更した場合は、今後行われる挿入のみが影響をうけます。
- 列の削除
列の削除
ALTER TABLE テーブル名
DROP COLUMN 列名;
DROP COLUMN
句を使用して表から列を削除できます。
DROP TABLE文
DROP TABLE文は表の定義を削除します。
構文
DROP TABLE テーブル名;
- 表内のデータおよび構造がすべて削除されます。
- 保留中のトランザクションはすべてコミットされます。
- すべての索引が削除されます。
- この文はロールバックできません。
参考
Oracle9i 入門データベース編
Discussion