Oracle管理者のためのSQLリファレンス
■表の確認/作成/変更/削除
表はデータを格納する領域の基本単位で、表名と列の集合で定義され、行には列で定義されたデータが記録されます。各列には、列名、データ型、幅を割り当てます。また列には整合性制約(ルール)を指定できます。表データは、SQLを使用して問い合わせ、削除、更新ができます。(SQLの表記ルールは、こちらから参照できます)
表の定義を確認する | |
DESC
[schema.]table[@connect_identifier] |
|
┗ | 表の定義を確認するには、SQL*PLUSのDESCRIBE(省略形はDESC)コマンドを使用し表名を指定します。DESCRIBEコマンドでは列名、データ型、NOT NULL制約を確認できます。 |
リレーショナル表を作成する | |
CREATE
[GLOBAL TEMPORARY]
TABLE [schema.]table
|
|
┗ | 表を作成するには、CREATE
TABLE文を使います。必須の項目は表名(table)、列名(column)、列のデータ型(datatype)です。 GLOBAL TEMPORARY/ON COMMITオプション 一時表を作成する場合、 GLOBAL TEMPORARYを指定します。作成された表は一時的で、その定義はすべてのセッションから参照できます。ON COMMIT句は、一時表のデータ保持期間を指定します。DELETE ROWSはトランザクション固有で、デフォルトです。コミット後に表は切り捨てられます。PRESERVE ROWSはセッション固有で、セッション終了時に表は切り捨てられます。 SORTキーワード 表をハッシュ・クラスタの一部として作成する場合、およびクラスタ列でもある列にはSORTキーワードを指定します。これにより、ハッシュ・ファンクションを適用する前にこの列でクラスタの行をソートするように指示できます。 DEFAULTオプション DEFAULT句で値(expr)を指定ておくと、INSERT文が発行されたときに列の値を省略した場合、この値が自動的に挿入されます。 制約句オプション(表内指定) 制約句(inline_constraint)を使用して、整合性制約を列定義の一部として作成できます。ここで指定できる制約は、一意制約、主キー制約、参照制約、NOT NULL制約、CHECK制約、REF制約です。制約の指定方法は「制約の確認/作成/削除」を参照してください。制約の作成方法は2つあり、1つは列定義の一部として作成する表内定義、もう1つは表定義の一部として作成する表外指定です。 制約句オプション(表外指定) 制約句(out_of_line_constraint)を使用して、整合性制約を表定義の一部として作成できます。ここで指定できる制約は、一意制約、主キー制約、参照制約、CHECK制約、REF制約です。NOT NULL制約は表外指定では作成できません(表内指定で行う)。制約の指定方法は「制約の確認/作成/削除」を参照してください。制約の作成方法は2つあり、1つは列定義の一部として作成する表内定義、もう1つは表定義の一部として作成する表外指定です。 物理プロパティ(PCTFREE、PCTUSED、INITRANS) 物理プロパティを使ってPCTFREE、PCTUSED、INITRANSのパラメータ値および表の記憶特性を指定できます。この句を省略すると、PCTFREE=10、PCTUSED=40、INITRANS=1、に設定されます。 STORAGE句オプション STORAGE句オプションを使って、オブジェクトの格納方法(記憶域パラメータ値)を指定できます。storageに指定できるパラメータは、INITIAL、NEXT、MINEXTENTS、MAXEXTENTS、PCTINCREASE、FREELISTS、FREELIST GROUPS、OPTIMAL、BUFFER_POOL、です。それぞれのパラメータに必要な値を指定します。 TABLESPACE句オプション 表を作成する表領域(tablespace)を指定します。TABLESPACE句を省略すると、その表を含むスキーマ所有者のデフォルト表領域内に作成されます。 ロギング属性オプション 表の記憶特性の作成をREDOログ・ファイルに記録する(LOGGING)、しない(NOLOGGING)を指定します。 表圧縮オプション 表圧縮オプションは、ヒープ構成表に対してのみ有効で、ディスク使用量を削減するためにデータ・セグメントの圧縮を指定できます。COMPRESSキーワードを指定すると表の圧縮が使用可能になり、NOCOMPRESSキーワード(デフォルト)で表の圧縮が使用禁止になります。 |
関連項目:表のデータを切り捨てる 表を削除する 制約の確認/作成/削除 |
表に列を追加する | |
ALTER TABLE
[schema.]table ADD |
|
┗ | 既存の表に列を追加するには、ALTER TABLE文で表名(table)を指定し、ADD句で追加する列名(column)と列のデータ型(datatype)を指定します。オプションのDEFAULT句を使用してデフォルト値(expr)を指定できます。オプションの制約句(inline_constraint)を使用して、整合性制約を作成できます。制約の指定方法は「制約の確認/作成/削除」を参照してください。 |
関連項目:制約の確認/作成/削除 列の定義を変更する 列を削除する |
列の定義を変更する | |
ALTER
TABLE [schema.]table MODIFY |
|
┗ | 既存の表の列定義を変更するには、ALTER TABLE文で表名(table)を指定し、MODIFY句で変更する列名(column)と列のデータ型(datatype)を指定します。既存データがある場合、変更する列がすべてNULLであれば列のデータ型を変更できます。文字型とRAW型の列のサイズ、数値型の列の精度は、いつでも大きくできます。また、変更を行ってもデータを変更しなくて済む場合に限り、列のデータ型のサイズを小さくできます。オプションのDEFAULT句を使用してデフォルト値(expr)を指定できます。オプションの制約句(inline_constraint)を使用して、整合性制約を作成できます。制約の指定方法は「制約の確認/作成/削除」を参照してください。 |
関連項目:制約の確認/作成/削除 表に列を追加する |
表の名前を変更する | |
ALTER
TABLE [schema.]table RENAME TO new_table_name; |
|
┗ | 表名を変更するには、ALTER TABLE文で表名(table)を指定し、RENAME TO句で新たな表名(new_table_name)を指定します。 |
列を削除する | |
ALTER
TABLE [schema.]table DROP |
|
┗ | 特定の列を削除するには、ALTER TABLE文で表名(table)を指定し、DROP句で削除したい列名を指定します。列データを削除した場合、その列に定義されているすべての索引、その列を参照しているすべての制約、その列に関連付けられていた統計タイプを使用して収集したすべての統計情報は削除されます。 CASCADE CONSTRAINTS CASCADE CONSTRAINTSを指定すると、削除する列を参照する外部キー制約やすべての複数列制約を削除できます。ほかの表の列や対象の表でほかの列が参照している制約がある場合は、CASCADE CONSTRAINTSを指定する必要があります。 INVALIDATE INVALIDATEキーワードを使用するとビュー、トリガー、ストアド・プログラム・ユニットなどのすべての依存オブジェクトを無効にできます。ただし、無効にできるのはローカル依存性のみです。 CHECKPOINT CHECKPOINTを使用すると、integerで指定した行を処理した後にDROP COLUMN操作のチェックポイントが適用されます。integerはオプションで、指定しないとデフォルトの512が設定されます。 |
関連項目:表に列を追加する |
エラーで中断した列削除を再開させる | |
ALTER
TABLE [schema.]table |
|
┗ | 列の削除中にエラーが発生して処理が中断した場合、ALTER TABLE文のDROP
COLUMNS CONTINUE句を指定することで列削除処理をを続行できます。 CHECKPOINT CHECKPOINTを使用すると、integerで指定した行を処理した後にDROP COLUMN操作のチェックポイントが適用されます。integerはオプションで、指定しないとデフォルトの512が設定されます。 |
関連項目:列を削除する |
列に未使用マークを付ける | |
ALTER
TABLE [schema.]table SET UNUSED |
|
┗ | 列を削除するのは負荷の大きい処理です。このため、列を未使用としてマーク付けしておき、夜間などサーバの負荷が小さいときに削除するといった運用が可能です。列に未使用マークを付けるには、ALTER
TABLE文でSET UNUSED句を使用し、マーク付けする列を指定します。 CASCADE CONSTRAINTS CASCADE CONSTRAINTSを指定すると、削除する列を参照する外部キー制約やすべての複数列制約を削除できます。ほかの表の列や対象の表でほかの列が参照している制約がある場合は、CASCADE CONSTRAINTSを指定する必要があります。 INVALIDATE INVALIDATEキーワードを使用するとビュー、トリガー、ストアド・プログラム・ユニットなどのすべての依存オブジェクトを無効にできます。ただし、無効にできるのはローカル依存性のみです。 |
関連項目:未使用マークを付けた列を削除する 列を削除する エラーで中断した列削除を再開させる |
未使用マークを付けた列を削除する | |
ALTER
TABLE [schema.]table |
|
┗ | 未使用マークを付けた列を削除するには、ALTER TABLE文でDROP
UNUSED COLUMNS句を指定します。未使用マークされているすべての列を表から削除できます。 CHECKPOINT CHECKPOINTを使用すると、integerで指定した行を処理した後にDROP COLUMN操作のチェックポイントが適用されます。integerはオプションで、指定しないとデフォルトの512が設定されます。 |
関連項目:列に未使用マークを付ける 列を削除する エラーで中断した列削除を再開させる |
表のデータを切り捨てる | |
TRUNCATE
TABLE [schema.]table |
|
┗ | 表のすべてのデータ(行)を切り捨てるには、TRUNCATE TABLE文で表(table)を指定します。 MATERIALIZED VIEW LOG句 MATERIALIZED VIEW LOG句を使用すると、この表に定義されているマテリアライズド・ビュー・ログを保存するか(PRESERVE)、削除するか(PURGE)を指定できます。デフォルトはPRESERVEです。 STORAGE句 DROP STORAGE句を指定すると、削除された行が使用していたすべての領域(MINEXTENTS記憶域パラメータで指定された領域は除く)の割当ては解除されます。NEXT記憶域パラメータは、切捨て処理によってセグメントから最後に削除されたエクステントのサイズに設定されます。これはデフォルトです。REUSE STORAGE句を指定すると、表に割り当てられた削除行の領域は確保されます。 |
関連項目:リレーショナル表を作成する |
表を削除する | |
DROP
TABLE [schema.]table |
|
┗ | 表を削除するには、DROP TABLE文で表(table)を指定します。 CASCADE CONSTRAINTS句 削除される表の主キーまたは一意キーを参照する参照整合性制約がある場合は、CASCADE CONSTRAINTS句を指定し、これらの参照整合性制約を表とともに削除します。 PURGE句 PURGE句を指定すると、表を削除すると同時に、その表に関連付けられた領域を解放できます。PURGE句を指定した場合、DROP TABLE文はロールバックできません。 |
関連項目:リレーショナル表を作成する |
Oracle管理者のためのSQLリファレンス |
Oracle関連記事リンク集 | |
Database Expert フォーラム 新着記事
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|