sql >> データベース >  >> RDS >> Oracle

Oracleインタビューの質問

    この記事には、 Oracle Interviewの質問と回答のトップ49:基本、Oracle SQL が含まれています。 様々なインタビューで尋ねた。インタビューに役立つことを願っています

    質問1。 テーブルクラスターとは何ですか?
    回答:テーブルクラスターは、共通の列を共有する関連テーブルのグループであり、関連データを同じブロックに格納します。

    質問2。 SQLにはどのような使用法がありますか?

    回答 「exists」ステートメントは、Ifステートメントの仕事をするのに役立ちます。サブクエリが少なくとも1つの行を返す場合、メインクエリが実行されます。したがって、サブクエリを「If条件」と見なし、メインクエリをIf条件内の「コードブロック」と見なすことができます。サブクエリでは、任意のSQLコマンド(Joins、Group By、haveなど)を使用できます。このコマンドは、イベントを検出して何らかのアクティビティを実行する必要があるクエリで役立ちます

    SELECT *
    FROM emp
    WHERE EXISTS (SELECT *
    FROM dept
    WHERE emp.dept_id = dept.dept_id);

    質問3。 Oracleデータベースで文字列を日付にどのように変換しますか?

    回答 :to_date関数を使用して、文字列を日付に変換できます

    to_date('2015/11/12', 'yyyy/mm/dd')

    関連リンク

    Oracle日付関数

    質問4。 Oracleデータベースのセーブポイントとは何ですか?

    回答 :SAVE POINTSは、トランザクションをより小さな部分に分割するために使用されます。トランザクションの一部をロールバックできます。最大5つのセーブポイントが許可されます。エラーが発生した場合はいつでも、SAVEPOINTを設定したポイントからロールバックできます。これは、コミットとロールバックが特定の条件に依存する多段階トランザクションと条件付きトランザクションに役立ちます。

    質問5。 オラクルで現在の日付と時刻をどのように見つけますか?

    回答: sysdate関数を使用して見つけることができます

    SQL> SELECT SYSDATE FROM dual;
    
    SYSDATE
    ---------
    2-Nov-16
    
     
    
    SQL> SELECT
    SYSDATE Today, SYSDATE - 1 Yesterday,
    SYSDATE + 1 Tomorrow
    FROM
    dual;
    
    TODAY YESTERDAY TOMORROW
    --------- --------- ---------
    2-Nov-16 1-Nov-16 3-Nov-16
    
    

    質問6。 Oracleでクエリはどのように実行されますか?関連する手順をリストできますか?
    回答:SQLクエリの解析には次の手順が含まれます:
    1)解析
    2)バインディング
    3)実行
    4)フェッチ


    質問7。 Oracleの日付から月と年をどのように見つけますか?
    回答 :EXTRACT関数を使用すると、DATEオブジェクトからMONTHとYEARを取得できます。

    SELECT EXTRACT(YEAR FROM DATE '2016-01-12')  Year_date FROM DUAL;
    Year_date
    ---------------------------------
    2016
    

    質問8。 Oracleビューとは何ですか?
    回答: Oracleビューは、データベースに格納されている事前定義された名前付きクエリです。作成すると、テーブルをクエリするのとほぼ同じ方法でビューをクエリできます。ビューには、テーブルと同様に行と列が含まれます。以下の利点があります
    1。オブジェクトにデータを保存せずにデータを表示します。
    2。テーブルの表示を制限します。つまり、テーブルの一部の列を非表示にすることができます。
    3。 2つ以上のテーブルを結合し、それらを1つのオブジェクトとしてユーザーに表示します。
    4。テーブルへのアクセスを制限して、誰も行をテーブルに挿入できないようにします。

    質問9。 Oracleテーブルとは何ですか?

    回答: テーブルは、Oracleデータベースのデータストレージの基本単位です。データは行と列に格納されます。従業員などのテーブル名と一連の列を使用してテーブルを定義します

    Oracleテーブルに関する詳細な記事

    Oracleでテーブルを作成する方法

    質問10。 VARCHARとVARCHAR2のOracleデータ型の違いは?

    回答: VARCHARは最大2000バイトを格納でき、varchar2は最大4000バイトを格納できます。 VARCHARはNULL値のスペースを占有し、VARCHAR2はスペースを占有しません。どちらもスペースに関して異なります。

    質問11。 CHARデータ型とVARCHARデータ型の違いは何ですか
    回答
    CHARデータ型は固定長データ型です。たとえば、CHAR(5)データ型の変数/列を宣言する場合、この変数または列に1文字を格納するか5文字を格納するかに関係なく、常に5バイトを使用します。この例では、この変数/列をCHAR(5)として宣言しているため、この列に最大5文字を格納できます。

    VARCHARは可変長のデータ型です。たとえば、VARCHAR(10)データ型の変数/列を宣言すると、この列に格納されている文字数と同じバイト数が必要になります。したがって、この変数/列では、1文字のみを格納する場合は、1バイトのみを使用し、10文字を格納する場合は、10バイトを使用します。この例では、この変数/列をVARCHAR(10)として宣言しているため、この列に最大10文字を格納できます

    質問12 NVL機能の用途は何ですか?

    回答: NVL関数は、NULL値を別の値または指定された値に置き換えるために使用されます。

    Example is –
    
    NVL(Value, replace value)

    質問13 DMLとは何ですか?

    回答: データ操作言語(DML)は、既存のオブジェクトのデータにアクセスして操作するために使用されます。 DMLステートメントは挿入、選択、更新、削除であり、現在のトランザクションを暗黙的にコミットすることはありません。

    質問14 DDLとは何ですか?

    回答: DDLは、データ定義言語の略語です。これは、データベース内のデータベースオブジェクトの構造を作成および変更するために使用されます。暗黙のコミットを行います

    質問15。 TRANSLATEとREPLACEの違いは何ですか?

    回答: Translateは文字ごとの置換に使用され、Replaceは単一の文字を単語に置換するために使用されます。

    質問16。 テーブルの行を重複せずに表示するにはどうすればよいですか?

    回答: selectステートメントでキーワードDISTINCTを使用すると、重複する行を削除できます。

    関連リンク

    oracleの重複行を削除する


    質問17。 oracleのNULL値とは何ですか?

    回答: NULL値は、欠落または不明なデータを表します。これはプレースホルダーとして使用されるか、実際のデータが存在しないことを示すデフォルトのエントリとして表されます。

    質問18。 マージステートメントの使用法は何ですか?

    回答:マージ ステートメントは、更新してテーブルまたはビューに挿入するために、1つ以上のデータソースから行を選択するために使用されます。複数の操作を組み合わせるために使用されます。

    質問19。 Oracleで使用されるさまざまな制約は何ですか?

    回答: 使用される制約は次のとおりです。

    NULL –特定の列にNULL値を含めることができることを示します
    NOT NULL –特定の列にNULL値を含めることができないことを示します
    チェック–指定された列の値が特定の基準を満たしていることを検証します
    DEFAULT –値がデフォルト値に割り当てられていることを示します

    質問20。 さまざまなOracleデータベースオブジェクトは何ですか?

    回答: Oracleにはさまざまなデータオブジェクトがあります–

    テーブル–垂直方向と水平方向に編成された要素のセット
    ビュー–1つ以上のテーブルから派生した仮想テーブル
    Oracleインデックス–レコードを処理するためのパフォーマンス調整方法
    同義語–テーブルのエイリアス名
    Oracleシーケンス–複数のユーザーが一意の番号を生成します
    Oracleテーブルスペース–Oracleの論理ストレージユニット

    質問21。 マテリアライズドビューとは何ですか?
    回答 マテリアライズドビューは、クエリの結果を含むデータベースオブジェクトです。単純な見方とは異なります。これらのマテリアライズド・ビューにはデータが保管されており、マテリアライズド・ビューを照会すると、保管されているデータからデータが返されます。クエリのFROM句は、テーブル、ビュー、およびその他のマテリアライズドビューに名前を付けることができます。これらのオブジェクトを総称して、マスターテーブル(レプリケーション用語)または詳細テーブル(データウェアハウス用語)と呼びます。このリファレンスでは、一貫性を保つために「マスターテーブル」を使用しています。マスターテーブルを含むデータベースは、マスターデータベースと呼ばれます。

    詳細については、以下のリンクを確認してください

    Oracleマテリアライズド・ビューおよびマテリアライズド・ビュー・ログ

    質問22。 デコードステートメントとは何ですか?

    回答

    Oracleデコード は、データ値をある値から別の値に変換するためのOracleデータベースの方法であり、理解しやすくなっています。 Oracle Decodeは、取得時にデータ値を変換します。

    質問23。 TRUNCATEとDELETEの違いは何ですか?

    回答: 切り捨てはテーブルの最高水準点をリセットしますが、削除はスペースを再利用しません

    質問24 参加とは何ですか?さまざまな種類の結合について説明しますか?
    回答: Oracle JOINは、SQLステートメントで2つ以上のテーブルが結合されるたびに実行されます。
    INNERJOIN操作
    LEFTOUTERJOIN操作
    RIGHTOUTERJOIN操作
    CROSSJOIN操作
    NATURALJOIN操作

    Oracleのさまざまな結合方法
    Oracleのハッシュ結合
    Oracleのネストされたループ結合

    質問25。 PL / SQLパッケージをコンパイルしたばかりですが、エラーが発生しました。エラーをどのように表示しますか?

    回答 dba_errorsまたはshowerrs

    質問26。 トランザクションとは何ですか?
    回答:

    セッションが/delete/ insertを更新すると、トランザクションが開始されます。コミットまたはロールバックが発生したときに完了します。トランザクションは、トランザクション識別子(XID)によって識別されます。識別されるトランザクションは、3つの部分で構成されます

    1. セグメント番号をロールバックまたは元に戻す
    2. トランザクションテーブルのスロット番号
    3. シーケンスまたはラップなし

    トランザクションとは

    質問27。 セッションのトレースを有効にするにはどうすればよいですか?

    回答:

    Normal trace
    
    execute dbms_system.set_sql_trace_in_session (‘sid’,’serial’,true);  — To put tracing on
    
    execute dbms_system.set_sql_trace_in_session (‘sid’,’serial’,true);   — To put tracing off
    
    Full level with wait event And bind trace
    
    execute dbms_system.set_ev(‘sid’,’serial’,10046,12,’’);
    
    To put trace off
    
    execute dbms_system.set_ev(‘sid’,’serial’,10046,0,’’);
    
    を実行します。

    データベースでトレースをオンにする方法

    質問28。 デカルト結合とクロス結合の違いは何ですか?

    回答: 結合に違いはありません。デカルトとクロスの結合は同じです。相互結合により、2つのテーブルのデカルト積が得られます。最初のテーブルの行は、デカルト積と呼ばれる別のテーブルで乗算されます。

    where句なしのクロス結合はデカルト積を与えます。

    質問29。 DUALテーブルのデータ型は何ですか?

    回答: DUALテーブルは、Oracleデータベースに存在する1列のテーブルです。このテーブルには、値が「X」のDUMMYという単一のVARCHAR2(1)列があります。

    質問30。 テーブル内の重複レコードを処理するにはどうすればよいですか?

    回答:

    create table my_table1 as select distinct * from my_table;
    drop my_table;
    rename my_table1 to my_table;
    
    Delete from my_table where rowid not in (
    select max(rowid) from my_table group by my_col_name );
    

    Oracleの重複レコードを削除する

    質問31。 テーブルからデータをフェッチするための最速のクエリ方法は何ですか?

    回答: ROWIDを使用して、テーブルから行をフェッチできます。 ROW IDの使用は、テーブルからデータをフェッチするための最速のクエリ方法です。

    質問32。 特権と助成金とは何ですか?

    回答 :特権はSQLステートメントを実行する権利です–接続および接続する権利を意味します。オブジェクトに許可が与えられるので、それに応じてオブジェクトにアクセスできます。助成金は、オブジェクトの所有者または作成者が提供できます。

    Oracle Create User、System Privileges、およびOracle Object Privileges

    質問33。 整合性制約とは何ですか?

    回答: 整合性制約は、テーブル列のビジネスルールを定義するための宣言です。整合性制約は、データベース内のデータの正確性と一貫性を確保するために使用されます。タイプには、ドメイン整合性、参照整合性、およびドメイン整合性があります。

    質問34。 参照整合性とは何ですか?
    回答:参照整合性ルールは、1つのテーブルのキー(列または列のセット)で定義されたルールであり、そのキーの値が関連するキーの値と一致することを保証します。テーブル(参照値)。

    質問35。 VARRAYとは何ですか?

    回答: VARRAYは、複数値の属性を含む列を持つために使用されるOracleデータ型であり、値の制限された配列を保持できます。

    質問36。 テーブルのフィールドの詳細を取得するにはどうすればよいですか?

    回答: 説明は、指定されたテーブルのフィールドの詳細を取得するために使用されます。

    質問37。 Oracleでの集計関数の使用法は何ですか?

    回答: 集計関数は、複数の行またはレコードの値を結合して単一の値を出力する関数です。一般的な集計関数は–

    平均
    カウント
    合計

    集計関数は、選択リスト、およびORDERBY句とHAVING句に表示できます。これらは通常、SELECT文のGROUP BY句で使用されます。この場合、Oracle Databaseは、照会された表またはビューの行をグループに分割します。 GROUP BY句を含むクエリでは、選択リストの要素は、集計関数、GROUP BY式、定数、またはこれらのいずれかを含む式にすることができます。 Oracleは、行の各グループに集計関数を適用し、グループごとに1つの結果行を返します。

    グループ関数を使用したデータの集約

    質問38。 GROUP BY句とはどういう意味ですか?
    回答:
    GROUP BY句は、複数のレコードにわたってデータを収集し、結果を1つ以上の列でグループ化するselectステートメントで使用できます。

    質問39 。名前の変更とエイリアスの違いは何ですか?
    回答:名前の変更はテーブルまたは列に付けられた永続的な名前ですが、エイリアスはテーブルまたは列に付けられた一時的な名前です。名前の変更は名前の置き換えに他ならず、エイリアスはテーブルまたは列の代替名です。

    質問40。 COALESCE機能とは何ですか?

    回答: COALESCE関数は、リストでnull以外に設定されている値を返すために使用されます。リスト内のすべての値がnullの場合、合体関数はNULLを返します。

    Coalesce(value1、value2、value3、…)

    質問41。 主キー、一意キー、外部キーの違いは何ですか?
    回答

    ORACLE PRIMARY KEYは、テーブルの行を一意に識別するために使用できるテーブルの列または列の組み合わせです。 PRIMARYKEYをnullにすることはできません。
    OracleUNIQUEKEYは、テーブルの列または列の組み合わせであり、テーブルの行を一意に識別するために使用できます。 UNIQUEKEYはnullにすることができます。
    OracleのFOREIGNKEYは、参照されるテーブルの主キーまたは一意キーである列または列の組み合わせです。 FOREIGNKEYはnullにすることができます。

    質問42。 テーブルの列の最初の5文字を​​取得するにはどうすればよいですか?

    回答

    これは、Substr関数を使用して実行できます

    select substr(ename,1, 5) from emp;
    

    質問43。 置換機能とは?

    回答
    置換関数は、文字列を別の文字列に置き換えるために使用されます

    質問44。 テーブルの統計をどのように分析しますか?

    回答

    dbms_stats.gather_table_statsプロシージャを使用して統計を生成します

    質問45。 オプティマイザーとは何ですか?

    回答

    オプティマイザは、参照されるオブジェクトとクエリで指定された条件に関連する多くの要因を考慮した後、SQLステートメントを実行する最も効率的な方法を決定するOracleデータベースのエンジンです。

    オプティマイザーからの出力は、最適な実行方法を説明する計画です。 Oracleサーバーは、コストベース(CBO)およびルールベース(RBO)の最適化を提供します。一般に、コストベースのアプローチを使用します。 Oracle CorporationはCBOを継続的に改善しており、新機能にはCBOが必要です。

    質問46。 Oracleのヒントは何ですか?

    回答
    ヒントは、特定の基準に基づいて特定のクエリ実行プランを選択するようにオプティマイザに指示するメカニズムを提供します。

    SELECT /*+ FULL(e) */ employee_id, last_name
    FROM employees e
    WHERE last_name LIKE :b1;
    

    質問47。 説明計画とは何ですか?

    回答

    EXPLAIN PLANステートメントは、SELECT、UPDATE、INSERT、およびDELETEステートメントに対してOracleオプティマイザによって選択された実行プランを表示します。ステートメントの実行計画は、Oracleがステートメントを実行するために実行する一連の操作です。行ソースツリーは実行プランの中核です。

    質問48。 日付形式を変更するにはどうすればよいですか?

    回答

    alter session set nls_date_format = 'dd-mon-yyyy hh24:mi:ss';
    

    質問49。 パッケージ本体とパッケージをコンパイルする方法は?

    回答

    Alter package <package name > compile;
    Alter package <package name > compile body;
    

    スキルを向上させるためのOracleの面接の質問に関する質問がさらにいくつかあります

    1.ビューに関する2つの説明のうち正しいものはどれですか。 (2つ選択してください。)
    A。ビューは読み取り専用として作成できます。
    B。ビューは、2つ以上のテーブルの結合として作成できます。
    C。ビューのSELECTステートメントにORDERBY句を含めることはできません。
    D。 SELECTステートメントのGROUPBY句を使用してビューを作成することはできません。
    E。ビューには、SELECTステートメントの列名にエイリアスが定義されている必要があります。

    回答: 、BAビューは読み取り専用オブジェクトとして作成できます。ただし、いくつかの制限付きで、
    基になるテーブルのデータを変更することは可能です。ビューは、2つ以上のテーブルの結合として作成することもできます。
    このタイプのビューは、複合ビューと呼ばれます。複雑なビューは、多くのベーステーブルが1つの仮想テーブルにまとめられた
    複雑なデータモデルを提供します。

    2.
    特定の列でユーザーに付与されたオブジェクト権限を表示するには、どのデータディクショナリテーブルをクエリする必要がありますか?
    A. USER_TAB_PRIVS_MADE
    B。 USER_TAB_PRIVS
    C。 USER_COL_PRIVS_MADE
    D。 USER_COL_PRIVS
    回答: D

    USER_COL_PRIVSデータディクショナリビューには、
    特定の列のユーザーに付与されたオブジェクト権限が表示されます。

    3. Oracle Serverが暗黙的に一意のインデックスを作成する2つの制約はどれですか?
    (2つ選択してください。)
    A。 NULLではありません
    B。主キー
    C。外部キー
    D。チェック
    E。ユニーク
    回答: B、E

    インデックスはOracleによって自動的に作成され、
    一意性を強制する整合性制約をサポートします。一意性を強制する2種類の整合性制約は、PRIMARY
    KEY制約とUNIQUE制約です。主キーまたはUNIQUE制約が宣言されると、列の一意性をサポートする
    一意のインデックスも作成され、
    主キーまたはUNIQUE制約の一部として定義されたすべての列のすべての値が配置されます。インデックスに

    4.集計関数について正しいのはどれですか。 (2つ選択してください。)
    A。 SELECTステートメントの任意の句で集計関数を使用できます。
    B。集計関数は、SELECT句の列リストとSELECTステートメントのWHERE句でのみ使用できます。
    C。単一行の列をグループ化することで、SELECTステートメントの列リストで単一行の列と集計関数を混在させることができます。
    D。列名、式、定数、または関数をパラメータとして集計関数に渡すことができます。
    E。テーブル全体を1つのグループとしてグループ化することによってのみ、テーブルで集計関数を使用できます。
    F。集計関数を使用している間は、テーブルの行を複数の列でグループ化することはできません。
    回答: C、D

    単一行の列をグループ化することで、SELECTステートメントの列リストで単一行の列と集計関数を混在させることができます。また、列名、式、制約、またはその他の関数をパラメータとして集計関数に渡すこともできます。

    5. WHERE句を含むSELECTステートメントで、GROUPBY句は
    SELECTステートメントのどこに配置されますか?
    A。 SELECT句の直後
    B。 WHERE句の前
    C。 FROM句の前
    D。 ORDERBY句の後
    E。 WHERE句の後
    回答: E

    GROUP BY句は、WHERE句の後、または
    ステートメントにWHERE句がない場合はFROM句の後にのみ配置できます。

    6. TO_CHAR関数のみを使用して実行できる2つのタスクはどれですか?
    A。 10を「TEN」に変換します
    B。 「10」を10
    Cに変換します。 「10」を「10」に変換します
    D。 「TEN」を10に変換します
    E。日付を文字表現に変換する
    F。文字表現を日付に変換する
    回答: C、E

    7.どちらの場合、完全な外部結合を使用しますか?
    A。両方のテーブルにNULL値があります。
    B。 1つのテーブルからすべての一致しないデータが必要です。
    C。両方のテーブルから一致するすべてのデータが必要です。
    D。両方のテーブルからの一致しないすべてのデータが必要です。
    E。テーブルの1つには、他のテーブルよりも多くのデータがあります。
    F。 1つのテーブルからのすべての一致および不一致のデータが必要です。
    回答: D

    8.CREATEVIEW特権が付与されます。これにより、何ができるようになりますか?
    A.テーブルビューを作成します。
    B。任意のスキーマでビューを作成します。
    C。スキーマにビューを作成します。
    D。任意のスキーマでシーケンスビューを作成します。
    E。誰もがアクセスできるビューを作成します。
    F。作成したテーブルに基づいている場合にのみビューを作成します。
    回答: C

    9.列レベルでのみ定義できる制約はどれですか?
    A。ユニーク
    B。 NULLではありません
    C。チェック
    D。主キー
    E。外部キー
    回答: B

    10.グループの結果を除外するには、どの句を使用する必要がありますか?
    A.場所
    B。持っている
    C。制限
    D。 GROUP BY
    E。注文者
    回答: B

    関連記事
    Oracle PlSQL面接の質問:25のOracle PLSQL面接の質問と、面接で成功するための詳細な説明と回答
    Oracle dba面接の質問と回答:oracledba面接の質問と回答Oracleデータベースの面接で成功するための回答
    br /> Oracleアプリの面接の質問と回答:あなたのキャリアで成功するための19のOracleアプリの技術面接の質問と回答

    開発者をインストールすることにより、SQLステートメントを試すことができます。以下のSQL開発者ガイドをダウンロードしてください

    Oracle-sql-developer
    Oracle-sql-developer.pdf
    354.4 KiB
    1327ダウンロード
    詳細
    日付: 2017年3月22日

    Oracleの面接の質問でこのようなものが気に入っていただければ幸いです。 答えを持って。これは、新入生と経験豊富な人の両方に役立ちます。フィードバックを提供してください

    推奨コース

    OracleSQLの優れたUdemyコースは次のとおりです。
    Oracle-Sql-ステップバイステップ:このコースでは、基本的なSQL、結合、テーブルの作成とその構造の変更、ビューの作成、ユニオン、ユニオンなどすべてについて説明します。 。 SQL初心者のための素晴らしいコースと必須のコース
    完全なOracleSQL認定コース :これは、SQL開発者のスキルに対応できるようになりたい人にとっては良いコースです。わかりやすい説明コース
    OracleSQLDeveloper:Essentials、Tips and Tricks :OracleSql開発者ツールは多くの開発者によって使用されています。このコースでは、それを効果的に使用して生産的なSQL開発者になるための秘訣とレッスンを提供します。
    Oracle SQL Performance Tuning Masterclass 2020 :パフォーマンスの調整は、重要で最も求められているスキルの1つです。これは、それについて学び、SQLパフォーマンスの調整を開始するための良いコースです


    1. SQLServerの複雑さを軽減するためのヒント

    2. Postgresでのみ関数のバックアップを取る方法

    3. SQLServerのOUTPUTINSERTED。*に相当するOracleはありますか?

    4. SQL ServerビューへのODBCリンクテーブルをプログラムで作成し、編集可能にするにはどうすればよいですか?