0Pricing
Coding Interview Prep · レッスン

SQLとは何か、なぜ面接で問われるのか

SQL、DDL・DML・DCL・TCLの違い、そしてSQLとリレーショナルデータベースエンジンの違いを説明します。

「SQLとは何か、なぜ面接で問われるのか」はCoddyKit上の無料Coding Interview Prepレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCoding Interview Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Coding Interview Prepコースには全4レッスンが含まれています。

この質問が面接の冒頭に出る理由

ほぼすべてのSQL面接は、「SQLとは何ですか?」という質問から始まります。これは、SQLとは何か、何を扱うのか、そしてステートメントの種類を説明できるかを見るふるいです。自分の回答を組み立ててみましょう。

SQLとは何か

SQLは、リレーショナルデータベースで使う宣言型言語です。望む結果を記述すると、その結果を得る方法はエンジンが判断します。SQLは、行と列で構成されたテーブルを扱います。

SELECT name, salary
FROM employees
WHERE department = 'Engineering';

SQLはデータベースエンジンではない

よくある落とし穴は、SQLが言語であり、MySQL、Postgres、Oracleはそれを実装するエンジンだという点です。それぞれが標準に独自の方言を加えています。

4つのステートメント分類

面接官は、SQLステートメントを分類させる質問を好みます。分類は4つあります。構造を扱うDDL、データを扱うDML、権限を扱うDCL、トランザクションを扱うTCLです。

DDL:構造を定義する

DDLはデータベースの構造を形作ります。CREATE、ALTER、DROP、TRUNCATEです。触れておきたい注意点として、ほとんどのDDLでは自動的にコミットされるため、通常はロールバックできません。

CREATE TABLE employees (
  id INTEGER PRIMARY KEY,
  name VARCHAR(100) NOT NULL,
  department VARCHAR(50),
  salary NUMERIC(10,2)
);

DML:データを操作する

DMLはテーブル内の行を変更します。INSERT、UPDATE、DELETE、そしてSELECTです。安全な答え方は、「SELECTは読み取り専用のDMLで、DQLとして分けて扱う場合もあります」です。

UPDATE employees
SET salary = salary * 1.10
WHERE department = 'Engineering';

DCL:アクセスを制御する

DCLは、誰が何を実行できるかを制御します。コマンドは2つだけで、GRANTは権限を付与し、REVOKEは権限を取り消します。データベースが複数のユーザーで利用されるものだと理解していることを示せます。

GRANT SELECT, INSERT ON employees TO analyst_role;
REVOKE INSERT ON employees FROM analyst_role;

TCL:トランザクションを制御する

TCLは、変更をすべて成功するか、すべて取り消すかのトランザクションにまとめます。BEGIN、COMMIT、ROLLBACK、SAVEPOINTです。重要なキーワードは原子性です。すべてが実行されるか、何も実行されないかのどちらかになります。

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

宣言型と手続き型

なぜSQLは宣言型なのでしょうか。望む結果を宣言し、そこに到達する方法はクエリオプティマイザーに任せるからです。また、SQLはセットベースでもあり、行を1行ずつではなく、まとまりとして一度に扱います。

例題:ステートメントを分類する

面接では、ステートメントを提示して分類させることがよくあります。以下のコードでは4つの分類を実際に確認でき、典型的な落とし穴も登場します。TRUNCATEはデータを削除しますが、DDLに分類されます。

30秒の回答にまとめる

プレッシャーの中でも答えられる、簡潔な30秒の回答を用意しておきましょう。以下の枠内の定義は、最初の質問と、続けて聞かれそうないくつかの質問を一息でカバーします。

理解度チェック

ステートメントの分類を理解できているか確認しましょう。

まとめ

まとめ:SQLは、リレーショナルデータを扱う宣言型かつセットベースの言語です。DDL、DML、DCL、TCLに分類されます。TRUNCATEはDDL、SELECTは読み取り専用のDMLである点に注意しましょう。

よくある質問

「SQLとは何か、なぜ面接で問われるのか」レッスンは無料ですか?

はい。「SQLとは何か、なぜ面接で問われるのか」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Coding Interview Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Coding Interview Prepコースには全4レッスンが含まれています。

「SQLとは何か、なぜ面接で問われるのか」で何を学びますか?

SQL、DDL・DML・DCL・TCLの違い、そしてSQLとリレーショナルデータベースエンジンの違いを説明します。 ブラウザで直接実行するハンズオンコードでCoding Interview Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Coding Interview Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCoding Interview Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「SQLとは何か、なぜ面接で問われるのか」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCoding Interview Prepレッスンでコードを書いて実行できますか?

はい。すべてのCoding Interview Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. SQLとは何か、なぜ面接で問われるのか
  2. 論理的なクエリ実行順序
  3. 主キー、外部キー、制約
  4. 緊張する面接でスキーマを読み解く
← Coding Interview Prepに戻る