Database OracleDB インフラ

[OracleDB] テーブル作成のSQL「create table」文とポイントを紹介

投稿日:2018年6月6日 更新日:

こんにちは!シミダイ(@shimidai2100)です。

Oracle Databaseのテーブル作成SQLと作成時のポイントを紹介します。

単純なテーブル作成SQLは各種メディアやブログで紹介されており、指定できるパラメータも多くあります。

この記事では初心者向けにテーブルを作成する時の重要なポイントも合わせて紹介します。

何も考えなくてテーブルは作成できますがこの記事を読んで最適にテーブルを作成を実施してください。

この記事の内容

  • テーブルの作成SQLの基本構文を紹介
  • プライマリーキー、ユニークキー、外部キーの指定方法
  • NOT NULL制約・DEFAULT制約・表領域の指定方法

テーブルの作成SQL:create table

まずはテーブル作成のSQL「create table」を紹介したいと思います。

create table文は、テーブルを作成するコマンドになります。

テーブル後に変更ができないパラメータが多く存在するため作成SQLを間違えないようにしましょう。

下がサンプルSQLになります。

テーブル名を指定指定する時は、「スキーマ名.テーブル名」の形で作成しましょう。

列名の指定カンマ区切りで行います。

データ型の種類と指定方法

OracleDatabaseでは文字列・数値・文字列・バイナリデータのデータ型をよく使用します。

下に最も利用するデータ型の一覧を作成しましたの参考にしてください。

データ型名データ型の説明サイズ範囲
VARCHAR2可変長の文字列最大4000Byte
NVARCHAR2可変長の各国語文字列最大4000Byte
CHAR固定長の文字列最大2000Byte
NCHAR固定長の各国語文字列最大2000Byte
CLOB4KBを超える文字列最大2^32-1Byte
NCLOB4KBを超える各国語文字列最大2^32-1Byte
NUMBER固定小数点数値型精度p(1〜38桁)、位取りs(-84〜127桁:省略時は0)
BINARY_FLOAT32Bit浮動小数点数値型1.17549E-38F~3.40282E+38F
BINARY_DOUBLE64Bit浮動小数点数値型2.22507485850720E-308~1.79769313486231E+308
DATE日付データ。-
TIMESTAMPDATE型+ミリ秒のデータ型。-
TIMESTAMP WITH TIMEZONEDATE型+ミリ秒+タイムゾーンのデータ型。-
BLOBバイナリデータを格納。(4GB-1Byte)×LOB記憶域のCHUNKサイズ

プライマリーキー(主キー)を指定:constraint ~ primary key

テーブルを作成時に合わせてプライマリーキーを作成するには「constraint ~ primary key」を指定します。

列名を指定した後に「constraint 」句をしますが、カンマを忘れないようにしましょう。

下がサンプルSQLになります。

また主キーとする列を複数指定する「複合プライマリーキー」の例は↓になります。

私個人的にはテーブルとプライマリーキーやインデックスは別で作成することが多いです。

テーブルとインデックスを分けておくとDDLの管理が分かりやすくなるからです。

ユニークキー(一意制約)を指定:constraint ~ unique 

テーブルを作成時に合わせてユニークキーを作成するには「constraint ~ unique ()」を指定します。

列名を指定した後に「constraint 」句をしますが、カンマを忘れないようにしましょう。

下がサンプルSQLになります。

外部キー(参照整合性)を付与:constraint ~ foreign key references ~

テーブルを作成時に合わせて外部キーを作成するには「constraint ~ foreign key () references ~()」を指定します。

列名を指定した後に「constraint 」句をしますが、カンマを忘れないようにしましょう。

下がサンプルSQLになります。

NOT NULL制約を付与:NOT NULL

テーブルを作成時に合わせてNOT NULL制約を付与する場合には、対象列に「NOT NULL」句を付与します。

下がサンプルSQLになります。

デフォルト値を指定:DEFAULT

テーブルを作成時に合わせてデフォルト値を指定する場合には、対象列に「DEFAULT」句+「デフォルト値」を付与します。

下がサンプルSQLになります。

デフォルト表領域を指定:TABLESPACE

テーブルを作成時に合わせてデフォルト表領域を指定する場合には、「TABLESPACE」句を付与します。

このパラメータはテーブル作成時に最も重要なパラメータの1つです。

記憶域のパラメータはカッコ内()ではなく、カッコ外に書く点に注意してください。

下がサンプルSQLになります。

 

参考:しばちょう先生の試して納得!DBAへの道 第2回 表と表領域の関係

スポンサードリンク

関連記事

-Database, OracleDB, インフラ

Translate »

Copyright© shimidai2100 , 2018 All Rights Reserved.