SQLコマンド:DQL、DDL、DML、DCL、TCL(例付き)

⚡ スマートサマリー

SQLコマンドは、リレーショナルデータベースを管理する5つのサブ言語に分類されます。DDLは構造を定義し、DMLはデータを変更し、DCLはアクセスを制御し、TCLはトランザクションを管理し、DQLはデータを取得します。それぞれに独自のステートメントと構文があります。

  • 🏗️ DDL: CREATE、DROP、ALTER、およびTRUNCATEは、テーブルとデータベースのスキーマを定義および変更します。
  • 会<XNUMXxEXNUMX><XNUMXxXNUMXF>️️<XNUMXxXNUMXF>️️ DML: INSERT、UPDATE、DELETEは、テーブル内の行を変更します。
  • 🔑 DCL: GRANTとREVOKEは、データベースオブジェクトに対するアクセス権限を付与および削除します。
  • 🔄 TCL: COMMIT、ROLLBACK、およびSAVEPOINTは、トランザクションの保存または取り消し方法を制御します。
  • 🔍 DQL: SELECT文は、WHERE句でフィルタリングされた行を取得します。
  • 🗄️ 標準言語: すべての主要な RDBMS は、 MySQL 〜へ Oracle SQL ServerはSQLを使用します。
  • ⚠️ 主な対比: TRUNCATEとDELETEはどちらも行をクリアしますが、TRUNCATEはDDLであり、行単位ではクリアしません。

SQLコマンド DQL DDL DML DCL TCL

SQLとは何ですか?

SQL は、リレーショナル データベース内のデータの取得と管理のために設計されたデータベース言語です。

SQL はデータベース管理の標準言語です。すべての RDBMS システムは次のようなものです MySQL、MSアクセス、 OracleSybase、Postgres、SQL Serverは、標準データベース言語としてSQLを使用しています。SQLプログラミング言語は、さまざまな操作に多様なコマンドを使用します。ここでは、SQLのDCL、TCL、DQL、DDL、DMLコマンドについて、例を交えながら解説します。

SQLを使用する理由

SQLを使用する重要な理由を以下に示します。

  • ユーザーがデータにアクセスするのに役立ちます RDBMSシステム.
  • それはデータの説明に役立ちます。
  • これにより、データベース内のデータを定義し、その特定のデータを操作できるようになります。
  • SQLコマンドを使用すると、データベースやテーブルを作成および削除できます。
  • SQLを使うと、データベース内の関数を利用したり、ビューやストアドプロシージャを作成したりできます。
  • テーブル、プロシージャ、ビューに権限を設定できます。

SQL の簡単な歴史

ここに重要なランドマークがあります SQLの歴史:

  • 1970 – エドガー F. “テッド” コッド博士がデータベースのリレーショナル モデルについて説明しました。
  • 1974年 – 構造化クエリ言語が登場。当初はSEQUELという名前だった。 IBM.
  • 1979 年 Oracle 初の商用利用可能なSQLベースのデータベースをリリースした。 IBMSystem Rの研究プロトタイプ。
  • 1986年 – ANSIは最初のSQL標準規格であるSQL-86を公表した。
  • 1989年 – SQL-89が標準規格の最初の改訂版として登場した。
  • 1992年 – SQL-92(SQL2)が主要なベースラインとなり、今日でもほとんどのデータベースで参照されている。
  • 1999年 – SQL:1999(SQL3)がリリースされ、トリガー、再帰クエリ、オブジェクト指向などの機能が導入された。
  • 2003年 – SQL:2003では、ウィンドウ関数、シーケンスジェネレータ、およびXML関連機能が追加されました。
  • 2006年 – SQL:2006では、XMLクエリ言語(XQuery)のサポートが追加されました。
  • 2008 – SQL:2008では、TRUNCATE文とINSTEAD OFトリガーが導入されました。
  • 2011年 – SQL:2011では、テンポラルデータベースのサポートが改善されました。
  • 2016 – SQL:2016 では JSON のサポートと行パターンマッチング (MATCH_RECOGNIZE) が追加されました。
  • 2019年 – SQL/MDA(パート15)は、標準規格に多次元配列のサポートを追加しました。
  • 2023 – SQL:2023では、ネイティブJSONデータ型とプロパティグラフクエリ(SQL/PGQ)が追加されました。
  • 2024年 – SQL以来初の新しいISOデータベース言語であるGQLが、グラフクエリの関連標準として公開された。
  • 2026年 – SQL:2023は現在の標準規格であり、次期改訂版はISO/IECで開発中です。

SQLコマンドの種類

広く使われているSQLコマンドの5つの種類を以下に示します。

  • データ定義言語(DDL)
  • データ操作言語(DML)
  • データ制御言語(DCL)
  • トランザクション制御言語 (TCL)
  • データクエリ言語(DQL)
SQLコマンドの種類
SQLの種類

以下の表は、各カテゴリーを詳細に説明する前に、5つのカテゴリーの概要を示しています。

カテゴリー 目的 主なコマンド
DDL 構造を定義する 作成、削除、変更、切り捨て
DML データを変更する 挿入、更新、削除
DCL アクセス制御 許可、取り消し
TCL トランザクションを管理する コミット、ロールバック、セーブポイント
DQL データを取得する SELECT

DDLとは何ですか?

データ定義言語(DDL)は、データベースの構造(スキーマ)を定義するのに役立ちます。ここでは、DDLコマンドとその構文について見ていきましょう。SQLの主なDDLコマンドは、CREATE、DROP、ALTER、TRUNCATEです。

CREATE

CREATE文は、データベースの構造またはスキーマを定義するために使用されます。

構文:

CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);

具体的な例を挙げますと、以下の通りです。

Create database university;
Create table students;
Create view for_students;

DROP

DROPコマンドは、RDBMSからテーブルとデータベースを削除します。

構文:

DROP TABLE ;

具体的な例を挙げますと、以下の通りです。

Drop object_type object_name;
Drop database university;
Drop table student;

変更する

ALTERコマンドを使用すると、データベースの構造を変更できます。

構文: テーブルに新しい列を追加するには:

ALTER TABLE table_name ADD column_name COLUMN-definition;

テーブル内の既存の列を変更するには:

ALTER TABLE MODIFY(COLUMN DEFINITION....);

具体的な例を挙げますと、以下の通りです。

Alter table guru99 add subject varchar;

切り捨てる

このコマンドは、テーブルからすべての行を削除し、テーブルを含むスペースを解放するために使用されます。

構文:

TRUNCATE TABLE table_name;

例:

TRUNCATE table students;

データ操作言語とは何ですか?

データ操作言語(DML)を使用すると、データベースインスタンスにデータを挿入、変更、削除することでデータベースインスタンスを変更できます。データベース内のあらゆる種類のデータ変更を実行する役割を担っています。SQLにおける重要なDMLコマンドは次のとおりです。

  • INSERT
  • UPDATE
  • DELETE

INSERT

このステートメントは、テーブルの行にデータを挿入するために使用されます。

構文:

INSERT INTO TABLE_NAME (col1, col2, col3,.... col N)
VALUES (value1, value2, value3, .... valueN);
Or
INSERT INTO TABLE_NAME
VALUES (value1, value2, value3, .... valueN);

具体的な例を挙げますと、以下の通りです。

INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', Erichsen');

UPDATE

このコマンドは、テーブル内の列の値を更新または変更するために使用されます。

構文:

UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]

具体的な例を挙げますと、以下の通りです。

UPDATE students
SET FirstName = 'Jhon', LastName= 'Wick'
WHERE StudID = 3;

DELETE

このコマンドは、テーブルから XNUMX つ以上の行を削除するために使用されます。

構文:

DELETE FROM table_name [WHERE condition];

具体的な例を挙げますと、以下の通りです。

DELETE FROM students
WHERE FirstName = 'Jhon';

DCLとは何ですか?

DCL(データ制御言語)には、GRANTやREVOKEといった、権限やアクセス許可を付与する際に役立つコマンドが含まれています。その他のコマンドは、データベースシステムのパラメータを制御します。

グラント

このコマンドは、ユーザーにデータベースへのアクセス権限を付与するために使用されます。

構文:

GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;

具体的な例を挙げますと、以下の通りです。

GRANT SELECT ON Users TO'Tom'@'localhost;

Revオーケー

このコマンドは、ユーザーから権限を取り戻すのに役立ちます。

構文:

REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}

具体的な例を挙げますと、以下の通りです。

REVOKE SELECT, UPDATE ON student FROM BCA, MCA;

TCLとは何ですか?

トランザクション制御言語(TCL)コマンドは、データベース内のトランザクションを処理します。これらは、以下で説明する状態と直接連携します。 トランザクション管理.

コミット

このコマンドは、すべてのトランザクションをデータベースに保存するために使用されます。

構文:

Commit;

具体的な例を挙げますと、以下の通りです。

DELETE FROM Students
WHERE RollNo =25;
COMMIT;

ロールバック

ロールバックコマンドを使用すると、データベースにまだ保存されていないトランザクションを取り消すことができます。

構文:

ROLLBACK;

例:

DELETE FROM Students
WHERE RollNo =25;

セーブポイント

このコマンドは、トランザクション内にセーブポイントを設定するのに役立ちます。

構文:

SAVEPOINT SAVEPOINT_NAME;

例:

SAVEPOINT RollNo;

DQLとは何ですか?

データクエリ言語(DQL)は、データベースからデータを取得するために使用されます。使用するコマンドはSELECTのみです。

SELECT

このコマンドは、WHERE句で指定された条件に基づいて属性を選択するのに役立ちます。

構文:

SELECT expressions
FROM TABLES
WHERE conditions;

具体的な例を挙げますと、以下の通りです。

SELECT FirstName
FROM Student
WHERE RollNo > 15;

DELETE、TRUNCATE、DROPの比較

これら3つのコマンドはいずれもデータを削除しますが、削除するデータの内容や、操作を元に戻せるかどうかが異なります。これらを混同するのは、初心者によくある間違いです。

側面 DELETE 切り捨てる DROP
カテゴリー DML DDL DDL
削除 選択された行 すべての行 テーブル全体
WHERE句 許可 許可されていない 適用されない
ロールバック 可能 通常はそうではありません ありえない
構造は維持された はい はい いいえ

要するに、特定の行を削除するにはDELETE、テーブルを素早く空にするにはTRUNCATE、テーブル全体を破棄するにはDROPを使用します。

よくあるご質問

DELETEは、選択した行を削除するDMLコマンドで、ロールバックが可能です。TRUNCATEは、すべての行を一度に削除するDDLコマンドで、処理速度が速く、通常はロールバックできません。

これらはデータ制御言語(DCL)に属します。GRANTはユーザーにデータベースオブジェクトに対する権限を与え、REVOKEはその権限を取り消します。これら2つを組み合わせることで、アクセスとセキュリティを制御できます。

はい。テキストからSQLへの変換モデルは、自然言語によるリクエストを、既知のスキーマに対するSELECT文などのクエリに変換します。生成されたクエリは、本番データで実行する前に必ず確認してください。

はい。AIは実行プランを読み取ることで、コストを削減できるインデックス、書き換えられた結合、またはWHERE句の変更を提案できます。ただし、最適な実行プランはデータによって異なるため、提案されたプランはテストする必要があります。

DDLは、テーブルや列など、データベースの構造を定義または変更します。DMLは、INSERT、UPDATE、DELETE操作によって、その構造内に保持されているデータを変更します。構造と内容の違いが重要なポイントです。