インタビューSQLのコンパイルでは、SQLインタビューの質問をテストする必要があります:20の古典的な質問

1.データベースとは何ですか?

データベースは、リモートまたはローカルのコンピュータシステムからデジタルで保存および取得できるデータの組織化されたコレクションです。データベースは大きく複雑になる可能性があり、そのようなデータベースの開発には固定の設計およびモデリング手法が使用されます。

2. DBMSとは何ですか?

DBMSはデータベース管理システムの略です。DBMSは、データベースの作成、取得、更新、および管理を担当するシステムソフトウェアです。データベースとそのエンドユーザーまたはアプリケーションソフトウェアとの間のインターフェイスとして機能することにより、データの一貫性、整理、および簡単なアクセスを保証できます。

3. RDBMSとは何ですか?それはDBMSとどう違うのですか?

RDBMSは、リレーショナルデータベース管理システムの略です。DBMSと比較すると、ここでの主な違いは、RDBMSがデータをテーブルのコレクションの形式で格納し、これらのテーブルの共通フィールド間の関係を定義できることです。最新のデータベース管理システム(MySQL、Microsoft SQL Server、Oracle、IBM DB2、Amazon Redshiftなど)は、RDBMSに基づいています。

4. SQLとは何ですか?

SQLはStructuredQueryLanguageの略です。これは、リレーショナルデータベース管理システムの標準言語です。これは、エンティティ(変数)で構成される組織データおよびデータの異なるエンティティ間の関係を処理する場合に特に役立ちます。

5. SQLとMySQLの違いは何ですか?

SQLは、構造化データベースを検索および操作するための標準言語です。それどころか、MySQLは、SQL Server、Oracle、IBMDB2などのSQLデータベースを管理するために使用されるリレーショナルデータベース管理システムです。

6.フォームとフィールドとは何ですか?

テーブルは、行と列に格納されたデータの整理されたコレクションです。列は垂直に分類でき、行は水平に分類できます。テーブルの列はフィールドと呼ばれ、行はレコードと呼ばれます。

7. SQLの制約は何ですか?

制約は、テーブル内のデータに関するルールを指定するために使用されます。テーブルの作成中、またはALTER TABLEコマンドを使用してテーブルを作成した後、SQLテーブルの単一または複数のフィールドに適用できます。制約は次のとおりです。

  • NOTNULL-列へのNULL値の挿入を制限します。
  • チェック–フィールドのすべての値が条件を満たしていることを確認します。
  • デフォルト値-フィールドに値が指定されていない場合、デフォルト値が自動的に割り当てられます。
  • 一意–必ず一意の値をフィールドに挿入してください。
  • INDEX-フィールドのインデックスを提供します。レコードをより高速に取得できます。
  • PRIMARYKEY-テーブル内の各レコードを一意に識別します。
  • FOREIGNKEY-別のテーブルのレコードの参照整合性を確保します。

8.主キーは何ですか?

PRIMARY KEY制約は、テーブルの各行を一意に識別します。UNIQUE値が含まれている必要があり、暗黙のNOTNULL制約があります。

SQLのテーブルは、単一または複数のフィールド(列)で構成される1つの主キーのみに厳密に制限されています。

 
CREATE TABLE Students (      /* Create table with a single field as primary key */
    ID INT NOT NULL
    Name VARCHAR(255)
    PRIMARY KEY (ID)
);

CREATE TABLE Students (      /* Create table with multiple fields as primary key */
    ID INT NOT NULL
    LastName VARCHAR(255)
    FirstName VARCHAR(255) NOT NULL,
    CONSTRAINT PK_Student
    PRIMARY KEY (ID, FirstName)
);

ALTER TABLE Students      /* Set a column as primary key */
ADD PRIMARY KEY (ID);

ALTER TABLE Students      /* Set multiple columns as primary key */
ADD CONSTRAINT PK_Student      /*Naming a Primary Key*/
PRIMARY KEY (ID, FirstName);

 

9. UNIQUE制約とは何ですか?

UNIQUE制約は、列のすべての値が異なることを保証します。これにより、列に一意性が提供され、各行を一意に識別できます。主キーとは異なり、各テーブルは複数の一意の制約を定義できます。UNIQUEのコード構文は、PRIMARY KEYの構文と非常によく似ており、同じ意味で使用できます。

 
CREATE TABLE Students (      /* Create table with a single field as unique */
    ID INT NOT NULL UNIQUE
    Name VARCHAR(255)
);

CREATE TABLE Students (      /* Create table with multiple fields as unique */
    ID INT NOT NULL
    LastName VARCHAR(255)
    FirstName VARCHAR(255) NOT NULL
    CONSTRAINT PK_Student
    UNIQUE (ID, FirstName)
);

ALTER TABLE Students      /* Set a column as unique */
ADD UNIQUE (ID);

ALTER TABLE Students      /* Set multiple columns as unique */
ADD CONSTRAINT PK_Student      /* Naming a unique constraint */
UNIQUE (ID, FirstName);

 

10.外部キーとは何ですか?

FOREIGN KEYは、テーブル内の単一またはコレクションのフィールドで構成されます。これは、基本的に、別のテーブル内のPRIMARYKEYを参照します。外部キー制約は、2つのテーブル間の関係の参照整合性を保証します。

外部キー制約のあるテーブルは子テーブルとしてマークされ、候補キーを含むテーブルは参照テーブルまたは親テーブルとしてマークされます。

 
CREATE TABLE Students (      /* Create table with foreign key - Way 1 */
    ID INT NOT NULL
    Name VARCHAR(255)
    LibraryID INT
    PRIMARY KEY (ID)
    FOREIGN KEY (Library_ID) REFERENCES Library(LibraryID)
);

CREATE TABLE Students (      /* Create table with foreign key - Way 2 */
    ID INT NOT NULL PRIMARY KEY
    Name VARCHAR(255)
    LibraryID INT FOREIGN KEY (Library_ID) REFERENCES Library(LibraryID)
);


ALTER TABLE Students      /* Add a new foreign key */
ADD FOREIGN KEY (LibraryID)
REFERENCES Library (LibraryID);

 

11.参加とは何ですか?そのさまざまなタイプを一覧表示します。

SQL結合句は、SQLデータベース内の2つ以上のテーブル間で関連する列に基づいてレコード(行)を結合するために使用されます。

  • (内部)結合:結合に関係する2つのテーブルで値が一致するレコードを取得します。これは、クエリで広く使用されている結合です。
  • SELECT  FROM Table_A JOIN Table_B; SELECT  FROM Table_A INNER JOIN Table_B;
  • 左(外部)結合:左からすべてのレコード/行を取得し、右側のテーブルから一致するレコード/行を取得します。SELECT * FROM Table_AA左結合Table_BB ON A.col = B.col;
  • 右(外部)結合:右側のテーブルからすべてのレコード/行を取得し、左側のテーブルから一致するレコード/行を取得します。SELECT * FROMTable_A右結合Table_BB ON A.col = B.col;
  • FULL(OUTER)JOIN:左側または右側のテーブルで一致するアイテムを持つすべてのレコードを取得します。SELECT * FROM Table_A A FULL JOIN Table_B B ON A.col = B.col;

12.自己結合とは何ですか?

自己結合は通常の結合の場合であり、テーブルはそれ自体の列間の何らかの関係に従ってそれ自体に結合されます。自己結合はINNERJOIN句またはLEFTJOIN句を使用し、テーブルエイリアスはクエリ内のテーブルに異なる名前を割り当てるために使用されます。

 
SELECT A.emp_id AS "Emp_ID",A.emp_name AS "Employee",
B.emp_id AS "Sup_ID",B.emp_name AS "Supervisor"
FROM employee A, employee B
WHERE A.emp_sup = B.emp_id;

 

## 13。相互結合とは何ですか?相互結合は、結合に含まれる2つのテーブルのデカルト積として定義できます。結合されたテーブルの行数は、2つのテーブルの行数の外積と同じです。クロス結合でWHERE句を使用すると、クエリはINNERJOINのように機能します。

 
SELECT stu.name, sub.subject 
FROM students AS stu
CROSS JOIN subjects AS sub;

 

14.インデックスとは何ですか?さまざまなタイプについて説明します。

データベースインデックスは、テーブルの1つ以上の列のデータをすばやく検索できるデータ構造です。インデックスデータ構造の追加の書き込みとメモリメンテナンスを犠牲にして、データベーステーブルからデータにアクセスする操作速度を向上させます。

 
CREATE INDEX index_name      /* Create Index */
ON table_name (column_1, column_2);

DROP INDEX index_name;      /* Drop Index */

 

15.クラスター化インデックスと非クラスター化インデックスの違いは何ですか?

上記のように、違いは3つの小さな要因に分けることができます-

  • クラスター化インデックスは、インデックス付き列に基づくレコードがデータベースに格納される方法を変更します。非クラスター化インデックスは、元のテーブルを参照するテーブル内に個別のエンティティを作成します。
  • クラスター化インデックスは、データベースからデータを簡単かつ迅速に取得するために使用されますが、非クラスター化インデックスからのレコードのフェッチは比較的低速です。
  • SQLでは、テーブルに単一のクラスター化インデックスを含めることができ、テーブルに複数の非クラスター化インデックスを含めることができます。

16.データの整合性とは何ですか?

データの整合性は、ライフサイクル全体にわたるデータの正確性と一貫性を保証するものであり、設計、実装、および使用においてデータを保存、処理、または取得するシステムの重要な側面です。また、データがアプリケーションまたはデータベースに入力されるときにデータにビジネスルールを適用するための整合性制約も定義します。

17.クエリとは何ですか?

クエリは、データベーステーブルまたはテーブルの組み合わせからデータまたは情報を取得するための要求です。データベースクエリは、選択クエリまたはアクションクエリにすることができます。

SELECT fname, lname          /* select query */
FROM myDb.students
WHERE student_id = 1;

 

 
UPDATE myDB.students          /* action query */
SET fname = 'Captain', lname = 'America'
WHERE student_id = 1;

 

18.サブクエリとは何ですか?どんなタイプですか?

サブクエリは、ネストされたクエリまたは内部クエリとも呼ばれる、別のクエリ内のクエリです。これは、メインクエリによってクエリされるデータを制限または拡張するために使用され、それによってメインクエリの出力をそれぞれ制限または拡張します。たとえば、ここでは、数学のコースに登録した学生の連絡先情報を取得します。

 
SELECT name, email, mob, address
FROM myDb.contacts
WHERE roll_no IN (
     SELECT roll_no
     FROM myDb.students
     WHERE subject = 'Maths');

 

サブクエリには、関連付けと非関連付けの2つのタイプがあります。

  • 関連するサブクエリは独立したクエリと見なすことはできませんが、メインクエリのFROMにリストされているテーブルの列を参照できます。
  • 無関係なサブクエリを独立したクエリとして扱い、サブクエリの出力をメインクエリのサブクエリに置き換えることができます。

19. SELECTステートメントとは何ですか?

SQLのSELECT演算子は、データベースからデータを選択するために使用されます。返されたデータは、結果セットと呼ばれる結果テーブルに格納されます。

 
SELECT * FROM myDB.students;

 

20. SQLのSELECTクエリで使用される一般的な句は何ですか?

SELECTクエリと組み合わせて使用​​される一般的なSQL句は次のとおりです。

  • SQLのWHERE句は、特定の条件に基づいて必要なレコードをフィルタリングするために使用されます。
  • SQLのORDERBY句は、特定のフィールドに従ってレコードを昇順(ASC)または降順(DESC)でソートするために使用されます。
  • SQLのGROUPBY句は、同じデータを持つレコードをグループ化するために使用され、特定の集計関数と組み合わせて使用​​して、データベースから集計結果を生成できます。
  • SQLのHAVING句は、GROUPBY句と一緒に使用してレコードをフィルタリングします。WHERE句は集計レコードをフィルタリングできないため、WHEREとは異なります。
  • 句内の各SELECTステートメントには、同じ数の列が必要です。
  • これらの列も同様のデータ型である必要があります
  • 各SELECTステートメントの列は同じ順序である必要があります
  • 変数を宣言した後、カーソルを宣言します。カーソル宣言は、常にSELECTステートメントに関連付ける必要があります。
  • カーソルを開いて結果セットを初期化します。結果セットから行をフェッチする前に、OPENステートメントを呼び出す必要があります。
  • FETCHステートメントは、結果セットの次の行を取得して移動します。
  • CLOSEステートメントを呼び出して、カーソルを非アクティブにします。
  • 最後に、DEALLOCATEステートメントを使用して、カーソル定義を削除し、関連するリソースを解放します。
  • 1対1は、2つのテーブル間の関係として定義できます。この場合、一方のテーブルの各レコードは、もう一方のテーブルのレコードの最大値に関連付けられます。
  • 1対多および多対1-これは最も一般的に使用される関係であり、1つのテーブルのレコードが別のテーブルの複数のレコードに関連付けられています。
  • 多対多-関係を定義するために両方の当事者が複数のインスタンスを必要とする場合に使用します。自己参照関係-テーブルがそれ自体との関係を定義する必要がある場合に使用されます。

自分で作成したPython学習グループ(721195303)を引き続きお勧めします。グループ内のすべての学生がPythonを学習しています。Pythonを学習したい、または学習している場合は、ぜひ参加してください。誰もがソフトウェア開発パーティーであり、共有しています。最新のPythonの高度な資料のコピーや、2021年に自分で編集したゼロベースの教育など、随時(Pythonソフトウェア開発に関連するもののみ)の商品。高度でPythonに興味のある友人を歓迎します。

おすすめ

転載: blog.csdn.net/aaahtml/article/details/114300604