助け合いフォーラム
Oracle Master Silver SQL 2019(1Z0-071)
問題ID : 26754
問題を開く
オブジェクト作成時に、オブジェクト名として使用できるものはどれですか(該当するものを全て選択して下さい)。
ただし、オブジェクト名は二重引用符(") で囲まない場合とします。
ただし、オブジェクト名は二重引用符(") で囲まない場合とします。
正解
EMP_
Dept
解説
オブジェクト名は以下の命名規則に従う必要があります。
・オブジェクト名は30バイト以下(12c R2以降は128バイト以下)
・使用できる文字は、0~9,A~Z,a~z(日本語環境の場合は漢字,ひらがな,カタカナも使用可)
・使用できる記号は、_,$,#のみ
・オブジェクト名の先頭の文字は、数字,記号以外の文字
・Oracleの予約語は使用できない
この他、同一スキーマ内では重複するオブジェクト名は使用できません。また、アルファベットの大文字と小文字は区別されません。
大文字と小文字を区別したり、スペースを含めるなどネーミング規則に反する列別名を使用する場合は、オブジェクト名を 二重引用符(") で囲まなければなりません。
以上より、
・EMP_
・Dept
が正解となります。
その他の選択肢については次のとおりです。
・2012DEPT
・[employees]
オブジェクト名の先頭の文字に数字や記号は使用できません。また、"[]"はオブジェクト名に使用できません。
・DATE
DATEはOracleの予約語ですので、使用できません。
・オブジェクト名は30バイト以下(12c R2以降は128バイト以下)
・使用できる文字は、0~9,A~Z,a~z(日本語環境の場合は漢字,ひらがな,カタカナも使用可)
・使用できる記号は、_,$,#のみ
・オブジェクト名の先頭の文字は、数字,記号以外の文字
・Oracleの予約語は使用できない
この他、同一スキーマ内では重複するオブジェクト名は使用できません。また、アルファベットの大文字と小文字は区別されません。
大文字と小文字を区別したり、スペースを含めるなどネーミング規則に反する列別名を使用する場合は、オブジェクト名を 二重引用符(") で囲まなければなりません。
以上より、
・EMP_
・Dept
が正解となります。
その他の選択肢については次のとおりです。
・2012DEPT
・[employees]
オブジェクト名の先頭の文字に数字や記号は使用できません。また、"[]"はオブジェクト名に使用できません。
SQLを表示
CREATE TABLE 2012DEPT
(id NUMBER(2),
name VARCHAR2(10)
);
(id NUMBER(2),
name VARCHAR2(10)
);
SQLを表示
CREATE TABLE [employees]
(id NUMBER(2),
name VARCHAR2(10)
);
(id NUMBER(2),
name VARCHAR2(10)
);
・DATE
DATEはOracleの予約語ですので、使用できません。
SQLを表示
CREATE TABLE DATE
(id NUMBER(2),
name VARCHAR2(10)
);
(id NUMBER(2),
name VARCHAR2(10)
);
参考
データベースに格納できる表やビューなどを総称してデータベース・オブジェクトと言います。データベース・オブジェクトは必ずいずれかのユーザーに所有されており、スキーマ・オブジェクトとも呼ばれます。
主なスキーマ・オブジェクトは以下のとおりです。
スキーマとは、オブジェクトの所有者を表す論理的な概念です。データベースのユーザーは必ず1つのスキーマを所有し(スキーマ名はユーザー名と同じ名前になります)、ユーザーが作成したオブジェクトは、そのユーザーが所有するスキーマに格納されます。
ユーザーは別のユーザーが所有しているオブジェクトを参照することもできますが、その場合は、
スキーマ名.オブジェクト名
のように、オブジェクト名の前にスキーマ名をつけて、どのスキーマのオブジェクトを参照するのかを指定しなければなりません。
ただし、自分自身が有するオブジェクトを参照する場合には、スキーマ名を省略することができます。スキーマ名を省略した場合は、ログインしているユーザーのスキーマ内のオブジェクトを参照します。
なお、オブジェクト名は以下の命名規則に従う必要があります。
・オブジェクト名は30バイト以下(12c R2以降は128バイト以下)
・使用できる文字は、0~9,A~Z,a~z(日本語環境の場合は漢字,ひらがな,カタカナも使用可)
・使用できる記号は、_,$,#のみ
・オブジェクト名の先頭の文字は、数字,記号以外の文字
・Oracleの予約語は使用できない
この他、アルファベットの大文字と小文字は区別されません。
また、同一スキーマ内では重複するオブジェクト名は使用できません(異なるスキーマでは同じオブジェクト名を使用することができます)。
大文字と小文字を区別したり、スペースを含めるなどネーミング規則に反する列別名を使用する場合は、オブジェクト名を 二重引用符(") で囲まなければなりません。
主なスキーマ・オブジェクトは以下のとおりです。
スキーマとは、オブジェクトの所有者を表す論理的な概念です。データベースのユーザーは必ず1つのスキーマを所有し(スキーマ名はユーザー名と同じ名前になります)、ユーザーが作成したオブジェクトは、そのユーザーが所有するスキーマに格納されます。
ユーザーは別のユーザーが所有しているオブジェクトを参照することもできますが、その場合は、
スキーマ名.オブジェクト名
のように、オブジェクト名の前にスキーマ名をつけて、どのスキーマのオブジェクトを参照するのかを指定しなければなりません。
SQLを表示
connect userA/oracle
SELECT object_name, object_type FROM user_objects;
SELECT object_name, object_type FROM user_objects;
SQLを表示
connect pingt/oracle
SELECT * FROM dummytable;
SELECT * FROM userA.dummytable;
SELECT * FROM dummytable;
SELECT * FROM userA.dummytable;
ただし、自分自身が有するオブジェクトを参照する場合には、スキーマ名を省略することができます。スキーマ名を省略した場合は、ログインしているユーザーのスキーマ内のオブジェクトを参照します。
SQLを表示
connect pingt/oracle
SELECT object_name, object_type FROM user_objects;
SELECT * FROM pingt.departments;
SELECT * FROM departments;
SELECT object_name, object_type FROM user_objects;
SELECT * FROM pingt.departments;
SELECT * FROM departments;
なお、オブジェクト名は以下の命名規則に従う必要があります。
・オブジェクト名は30バイト以下(12c R2以降は128バイト以下)
・使用できる文字は、0~9,A~Z,a~z(日本語環境の場合は漢字,ひらがな,カタカナも使用可)
・使用できる記号は、_,$,#のみ
・オブジェクト名の先頭の文字は、数字,記号以外の文字
・Oracleの予約語は使用できない
この他、アルファベットの大文字と小文字は区別されません。
また、同一スキーマ内では重複するオブジェクト名は使用できません(異なるスキーマでは同じオブジェクト名を使用することができます)。
大文字と小文字を区別したり、スペースを含めるなどネーミング規則に反する列別名を使用する場合は、オブジェクト名を 二重引用符(") で囲まなければなりません。
SQLを表示
SELECT * FROM departments;
CREATE VIEW departments
AS
SELECT * FROM employees;
CREATE VIEW departments
AS
SELECT * FROM employees;
SQLを表示
connect pingt/oracle
SELECT * FROM departments;
SELECT * FROM userA.departments;
SELECT * FROM departments;
SELECT * FROM userA.departments;
オブジェクト名について
m
mmmss125
投稿日 2023/01/29
問題文言葉足らずだと思います。
これらのオブジェクト名はすべて「“」で囲めば使用できると思うのですが。。。
スタッフからの返信
この投稿に対して返信しませんか?
s staff_meg
2023/01/30 13:54
mmmss125さん、 ご指摘の点を修正致しました。 ご報告、誠にありがとうございました。