SQLの基本的なデータ型
属性 | データ型 | 単位 | 適用(上限・精度) |
文字 | VARCHAR2 | [byte|char ] | 最大 4000 バイト可変長文字列型 |
NVARCHAR2 | [char] | 最大 4000 バイト | |
CHAR | [byte|char ] | 最大2000 バイト固定長文字列型 | |
NCHAR | [char] | 最大2000 バイト | |
LONG (下位互換) | 2G-1 バイト | ||
CLOB | 4G-1 バイト (~ Oracle 9i) 標準ブロックサイズ×(4G-1) バイト |
||
数値 | NUMBER | (精度,位取り) | 精度(38桁)、位取り(-84~127桁) |
BINARY_FLOAT | 単精度浮動小数点 | 正の最小 1.17549E-38、最大 3.40282E+38 | |
BINARY_DOUBLE | 倍精度浮動小数点 | 正の最小値 2.22507485850720E-308 正の最大値 1.79769313486231E+308 |
|
日時 | DATE | 日~秒 | -4712/01/01 ~ 9999/12/31 -4712/01/01 ~ 4712/12/31 (R 8.1 より以前) |
TIMESTAMP | (小数秒の精度) | DATE 型に加えてミリ秒、最小でナノ秒単位 | |
TIMESTAMP WITH TIMEZONE | タイムスタンプ型に加えてタイムゾーン情報 | ||
TIMESTAMP WITH LOCAL TIMEZONE | タイムスタンプ型にローカルタイムゾーン属性 | ||
INTERVAL YEAR TO MONTH | 年、月 | ||
INTERVAL DAY TO SECOND | 日~秒 | ||
バイナリ | RAW | [byte] | 2000 バイト |
LONG RAW (下位互換) | 2G-1 バイト | ||
BLOB | 4G-1 バイト (~ Oracle 9i) 標準ブロックサイズ×(4G-1) バイト |
||
BFILE | 4G-1 バイト かつ ファイルシステム依存 | ||
ROWID |
制約の設定
制約の設定
【列制約】
1 2 3 4 5 6 7 8 9 10 11 12 |
//主キー制約 PRIMARY KEY //一意制約 UNIQUE //NOT NULL制約 NOT NULL //チェック制約 CHECK(正当条件) //外部参照制約 REFERENCES 外部テーブル名(一意キー) //DEFAULT制約 DEFAULT 初期値 |
《列制約 :例》
1 2 3 4 5 6 7 |
CREATE TABLE Emp( emp_id VARCHAR2(10) PRIMARY KEY, emp_name VARCHAR2(10) NOT NULL, tel VARCHAR2(10) UNIQUE, age NUMBER(2) CHECK(age BETWEEN 18 AND 65), dept_id CHAR(2) REFERENCES Dept(dept_id) ); |
【表制約】
1 2 3 4 5 6 7 8 |
//主キー制約 CONSTRAINT 制約名 PRIMARY KEY (項目名, 項目名, …) //一意制約 CONSTRAINT 制約名 UNIQUE (項目名, 項目名, …) //チェック制約 CONSTRAINT 制約名 CHECK(正当条件) //外部参照制約 CONSTRAINT 制約名 FOREIGN KEY(項目名, 項目名, …) REFERENCES 外部テーブル名(一意キー, 一意キー, …) |
《表制約 :例》
1 2 3 4 5 6 7 8 9 10 11 12 |
CREATE TABLE Emp( emp_id_1 VARCHAR2(5), emp_id_2 VARCHAR2(10), emp_name VARCHAR2(10), tel VARCHAR2(10), age NUMBER(2), dept_id CHAR(2), CONSTRAINT cons_p1 PRIMAEY KEY(emp_id_1, emp_id_2), CONSTRAINT cons_u1 UNIQUE(tel), CONSTRAINT cons_c1 CHECK(age BETWEEN 18 AND 65), CONSTRAINT cons_f1 FOREIGN KEY(dept_id) REFERENCES Dept(dept_id) ); |
CREATE TABLE 文
1 テーブルの作成
1 2 3 4 5 6 7 8 9 |
CREATE TABLE <テーブル名> (<列名 1><データ型><この列の制約>, <列名 2><データ型><この列の制約>, <列名 3><データ型><この列の制約>, <列名 4><データ型><この列の制約>, ・ ・ ・ <このテーブルの制約 1>,<このテーブルの制約 2>,……); |
ALTER TABLE 文
2-1 列の追加
1 |
ALTER TABLE <テーブル名> ADD <列の定義>; |
2-2 複数列を追加
1 |
ALTER TABLE <テーブル名> ADD (<列の定義>,<列の定義>,……); |
3-1 列の定義を変更
1 |
ALTER TABLE <テーブル名> MODIFY <列の定義>; |
3-2 複数列の定義を変更
1 |
ALTER TABLE <テーブル名> MODIFY (<列の定義>,<列の定義>,……); |
4 列名の変更
1 |
ALTER TABLE <テーブル名> RENAME COLUMN <列名> TO <新列名>; |
5 テーブル名の変更
1 |
ALTER TABLE <テーブル名> RENAME TO <新テーブル名>; |
6-1 列の削除
1 |
ALTER TABLE <テーブル名> DROP (<列名>); |
6-2 )複数列を削除
1 |
ALTER TABLE <テーブル名> DROP (<列名>,<列名>,……); |
DROP TABLE 文
1 テーブルを削除
1 |
DROP TABLE <テーブル名>; |
関連記事
Oracle研修1:データベースの概要とOracleの特徴、ユーザーと権限
Oracle研修3: INSERT 文、SELECT文、UPDATE 文、DELETE文、TRUNCATE 文
ピンバック: Oracle研修1:データベースの概要とOracleの特徴、ユーザーと権限 – 原始人みかこのIT奮闘記
ピンバック: Oracle研修4:演算子、曖昧検索、集約関数、重複、グループ化、並び替え – 原始人みかこのIT奮闘記