👽

【Oracleデータベース】表の作成・構造関係

2024/04/21に公開

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構文と解説

  1. 列の追加
列の追加
ALTER TABLE テーブル名
ADD (列名 データ型 [DEFAULT]);

列の追加にはADD句を使用します。
新しく追加された列は最後の列になります。

  1. 列の変更
列の変更
ALTER TABLE テーブル名
MODIFY (列名 データ型 [DEFAULT]);

MODIFY句を使用し、列のデータ型、サイズ、デフォルト値を変更できます。
デフォルト値を変更した場合は、今後行われる挿入のみが影響をうけます。

  1. 列の削除
列の削除
ALTER TABLE テーブル名
DROP COLUMN 列名;

DROP COLUMN句を使用して表から列を削除できます。

DROP TABLE文

DROP TABLE文は表の定義を削除します。

構文
DROP TABLE テーブル名;
  • 表内のデータおよび構造がすべて削除されます。
  • 保留中のトランザクションはすべてコミットされます。
  • すべての索引が削除されます。
  • この文はロールバックできません。

参考

Oracle9i 入門データベース編

Discussion