SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

HRzine Day(エイチアールジン・デイ)は、人が活き会社が成長する人事のWebマガジン「HRzine」が主催するイベントです。毎回、人事の重要課題を1つテーマに設定し、識者やエキスパードが持つ知見・経験を、参加者のみなさんと共有しています。

直近開催のイベントはこちら!

HRzine Day 2024 Winter

2024年2月1日(木)12:00~17:40

主要製品スペック一覧

人事業務の効率・確度・精度を高めるために欠かせないHRテクノロジー。その主な製品の機能を分野ごとに比較できる資料群です。製品検討の参考資料としてご活用ください。

人事労務管理システム<br>主要製品スペック一覧 2023

人事労務管理システム
主要製品スペック一覧 2023

その他のスペック一覧

タレントマネジメントシステム<br>主要製品スペック一覧 2023

タレントマネジメントシステム
主要製品スペック一覧 2023

採用管理システム<br>主要製品スペック一覧 2023

採用管理システム
主要製品スペック一覧 2023

落とし穴はこれで回避! Oracle DB 12c SQL基礎 弱点克服スクール | 第10回

データ定義言語(DDL)の概要

  • Facebook
  • Twitter
  • Pocket
  • note
  • hatena

ここまで、SELECTに関する出題ばかり解説してきましたが、今回はDDL(データ定義言語)です。DDLを学ぶには、データ型、制約、オブジェクト作成/削除時の注意、変更時の制限など、復習しなければいけないことがたくさんあります。また、DDLはSELECTに比べ、実務で使用する頻度が少ないので、こういう機会にしっかり身に付けておきましょう。

  • Facebook
  • Twitter
  • Pocket
  • note
  • hatena

DDLの出題ポイント

データ定義言語といえば、CREATEALTERDROPですね。 定義するオブジェクトには、ビューシノニム順序があります。 12c SQLの試験対策的には、順序が重要オブジェクトです。

表の定義時に指定するものには、データ型と制約があります。 データ型は、LONGINTERVALが最重要ポイント。 制約は、CREATE TABLE AS SELECTまたはALTERとの合わせ技で出題されることが多く、要注意です。

なんだか、盛りだくさんですね。1つずつポイントを押さえていきましょう。

データ型

では、問題を解きながら、基本のおさらいをしましょう。

問1

EMPLOYEES表の構造を確認してください。

名前              NULL?    型
----------------- -------- ------------
EMPLOYEE_ID       NOT NULL NUMBER(6)
EMPLOYEE_NAME              VARCHAR2(50)
GENDER                     CHAR
PHONE_NUMBER               VARCHAR2(20)
HIRE_DATE         NOT NULL DATE
SALARY                     NUMBER
COMMISSION_PCT             NUMBER(2,2)
EMPLOYEE_IMAGE             LONG
DEPARTMENT_ID              NUMBER(4)  

この表の作成とデータ型について正しいものをすべて選択しなさい。

  • a. HIRE_DATE列には、世紀、年、月、日、曜日、時、分、秒、小数秒を格納できる
  • b. GENDER列は有効桁数を指定していないので、作成時エラーになる
  • c. SALARY列は有効桁数を指定していないので、作成時エラーになる
  • d. COMMISSION_PCT列に2桁の整数を入力するとエラーになる
  • e. データ型がLONGの新しい列をこの表に追加することができる
  • f. データ型がCLOBの新しい列をこの表に追加することができる

日付を扱うデータ型には、DATETIMESTAMPがあります。 小数秒を格納できるのはTIMESTAMPであって、DATE型ではありません(選択肢aは不正解)。

文字を扱うCHAR型、VARCHAR2型と数値を扱うNUMBER型は、格納できるデータの有効桁数(最大桁数)を指定できます。VARCHAR2は桁数の指定を省略するとエラーになりますが、CHARNUMBERにはデフォルト値が設定されるため(CHARは1文字、NUMBERは38桁)、エラーにはなりません(選択肢b、cは不正解)。

NUMBER型では、全体の桁数と小数点以下の桁数を指定できます。 例えば、NUMBER(5,2)は「全体の桁数が5桁そのうち小数点以下が2桁」という定義で、整数部に格納可能なのは3桁です。 ということは、NUMBER(2,2)は「全体の桁数2桁のうち2桁とも小数点以下」という定義ですから、整数2桁の値を入力(更新)すると次のとおりエラーになります(選択肢dは正解)。

SQL> SELECT commission_pct FROM employees
  2  WHERE employee_id = 178;

COMMISSION_PCT
--------------
           .15

SQL> UPDATE employees SET commission_pct = 98
  2  WHERE employee_id = 178;
UPDATE employees SET commission_pct = 98
                                      *
行1でエラーが発生しました。:
ORA-01438: この列に許容される指定精度より大きな値です

VARCHAR2で格納できるサイズよりも大きな文字列を格納できるデータ型として、LONGCLOBがあります。 CLOBは、最大「(4GB-1)× DB_BLOCK_SIZE初期化パラメータ[1]の値」まで文字を格納できるラージオブジェクトの1つで、Oracle8から実装されました。それ以前にはLONG型しかありませんでした。 LONG型には次のような制限があり、CLOBではそれらの制限が緩和されているのはそうした経緯によるものです(選択肢eは不正解、fは正解)。

LONG型の制限
  • 1つの表当たり1列しか定義できない
  • 制約を指定できない
  • GROUP BY句およびORDER BY句で使用できない
  • 副問合せを使用して表を作成した場合、コピーされない

試験でLONGの出題が多いのは、「LONGを使用するような案件があるならば、CLOBが適切でないか検討してください」と注意を促しているのでしょうね。

[1]: Oracleが使用するメモリやプロセスまたはデータベース全体に関わる設定値。

次のページ
データ型(続き)

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
  • hatena
めざせオラクルマスターホルダー! Oracle DB 12c SQL基礎 弱点克服スクール連載記事一覧

もっと読む

この記事の著者

林 優子(ハヤシ ユウコ)

日本オラクル株式会社の教育ビジネスのスタートアップを全面的に支援し、バージョン5の頃からOracleに携わるベテラン講師として知る人も多い。Oracle認定講師を表彰するExcellent Instructorを連続受賞。1ランク上のITスペシャリスト育成を目標に、データベース分野にとどまらず「プレゼンテーション」、「ロジカルシンキング」などのトレーニングも手がけている。著書に『オラクルマスター教科書』シリーズ(翔泳社)、『プロとしてのデータモデリング入門』(SBクリエイティブ)など。その他、雑誌執筆、著書・メディア出演も多数。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事をシェア

  • Facebook
  • Twitter
  • Pocket
  • note
  • hatena
HRzine
https://hrzine.jp/article/detail/297 2016/12/15 14:00

Special Contents

AD

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

HRzine Day(エイチアールジン・デイ)は、人が活き会社が成長する人事のWebマガジン「HRzine」が主催するイベントです。毎回、人事の重要課題を1つテーマに設定し、識者やエキスパードが持つ知見・経験を、参加者のみなさんと共有しています。

2024年2月1日(木)12:00~17:40

イベントカレンダーを見る

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング