【SQL】SQLの基本まとめ|DQL・DML・DDL・DCL・TCLとデータベースの違いを解説
アプリ開発や業務システム開発をしていると、よく出てくるのが SQL です。
SQLはデータベースに保存されたデータを取得したり、追加・更新・削除したりするために使われます。
たとえば、次のような場面で使います。
- ユーザー情報を保存する
- 商品一覧を検索する
- 売上データを集計する
- 業務システムの一覧を表示する
- ゲームのランキング情報を取得する
- アプリの設定情報を管理する
SQLは、Webアプリ・業務システム・スマホアプリ・ゲーム・データ分析など、幅広い分野で使われています。
この記事では、SQLの基本、SQLコマンドの種類、代表的なデータベース、ローカル・クラウドでの使い分けについて解説します。
この記事でわかること
- SQLとは何か
- SQLとデータベースの関係
- SQLコマンドの種類
- RDBMSとは何か
- RDBMS以外のデータベースの種類
- ローカルDBとクラウドDBの違い
- 初学者がどのDBから学ぶべきか
SQLとは

SQLとは、Structured Query Language の略です。
日本語では 構造化照会言語 と呼ばれます。
簡単に言うと、SQLは データベースに命令を出すための言語 です。
たとえば、ユーザーテーブルの一覧を取得する場合は、次のように書きます。
SELECT * FROM users;これは、「usersテーブルのすべてのデータを取得してください」という意味です。
SQLとデータベースの関係
SQLを理解するには、まず次の3つを分けて考えるとわかりやすいです。
| 用語 | 意味 |
|---|---|
| データベース | データを保存する場所 |
| RDBMS | データベースを管理するソフトウェア |
| SQL | データベースを操作する言語 |
たとえば、学校の生徒データを管理する場合、次のような表を作れます。
| id | name | age | class_name |
|---|---|---|---|
| 1 | 田中 | 15 | A組 |
| 2 | 佐藤 | 16 | B組 |
| 3 | 鈴木 | 15 | A組 |
このような表形式でデータを管理する仕組みが、RDBMSです。
そして、この表に対して「データを取得する」「データを追加する」「データを更新する」「データを削除する」といった操作を行うためにSQLを使います。
RDBMSとは
RDBMSとは、Relational Database Management System の略です。
簡単に言うと、表形式のデータを管理するためのソフトウェア です。
代表的なRDBMSには、次のようなものがあります。
| RDBMS | 特徴 |
|---|---|
| MySQL | Web開発でよく使われる |
| PostgreSQL | 高機能で拡張性が高い |
| SQL Server | Microsoft系、C#、VB.NETと相性が良い |
| Oracle Database | 大規模な業務システムで使われる |
| SQLite | 軽量でローカル保存に向いている |
| MariaDB | MySQL互換のオープンソースDB |
初学者向けに言うなら、まずはこう覚えれば十分です。
SQLは言語、RDBMSはSQLを実行するデータベースソフト
SQLコマンドの種類
SQLには、役割ごとにいくつかの種類があります。
| 種類 | 役割 | 代表コマンド |
|---|---|---|
| DQL | データを取得する | SELECT |
| DML | データを追加・更新・削除する | INSERT / UPDATE / DELETE |
| DDL | テーブルなどの構造を作る | CREATE / ALTER / DROP |
| DCL | 権限を管理する | GRANT / REVOKE |
| TCL | 処理の確定・取消を行う | COMMIT / ROLLBACK |
DQL:データを取得するSQL

DQLは、データを取得するためのSQLです。
代表コマンドは SELECT です。
これでusersテーブルからname、ageを取得できます。
SELECT name, age FROM users;また、条件を付ける場合は WHERE を使います。
SELECT name, age FROM users WHERE age >= 20;DML:データを操作するSQL

DMLは、データを追加・更新・削除するSQLです。
代表コマンドは次の3つです。
| コマンド | 役割 |
|---|---|
| INSERT | データを追加する |
| UPDATE | データを更新する |
| DELETE | データを削除する |
使用例
UPDATE と DELETE は、条件を書き忘れると大量のデータを変更・削除してしまうため注意が必要です。
INSERT INTO users (name, age) VALUES ('田中', 25);
UPDATE users SET age = 26 WHERE name = '田中';
DELETE FROM users WHERE name = '田中';DDL:テーブル構造を作るSQL

DDLは、テーブルなどの構造を作るSQLです。
代表コマンドは次の通りです。
| コマンド | 役割 |
|---|---|
| CREATE | 作成する |
| ALTER | 変更する |
| DROP | 削除する |
使用例
アプリ開発では最初にテーブル設計を行い、その後にDDLでテーブルを作成します。
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name VARCHAR(100),
age INTEGER
);DCL:権限を管理するSQL

DCLは、ユーザー権限を管理するSQLです。
代表コマンドは次の通りです。
| コマンド | 役割 |
|---|---|
| GRANT | 権限を付与する |
| REVOKE | 権限を取り消す |
使用例
DCLは初学者が最初から深く学ぶ必要はありません。
ただし、本番環境や業務システムでは重要です。
GRANT SELECT ON users TO app_user;TCL:トランザクションを制御するSQL

TCLは、処理の確定や取り消しを行うSQLです。
代表コマンドは次の通りです。
| コマンド | 役割 |
|---|---|
| COMMIT | 変更を確定する |
| ROLLBACK | 変更を取り消す |
トランザクションを簡単に説明します。
たとえば、銀行振込のような処理では、
- Aさんの残高を減らす
- Bさんの残高を増やす
この2つがセットで成功する必要があります。
途中で失敗した場合は、最初からなかったことにする必要があります。
このような処理を安全に扱うために、トランザクションを使います。
BEGIN;
UPDATE accounts SET balance = balance - 1000 WHERE id = 1;
UPDATE accounts SET balance = balance + 1000 WHERE id = 2;
COMMIT;データベース製品ごとのSQLの違い
SQLは標準化されていますが、すべてのデータベースで完全に同じ書き方ができるわけではありません。
たとえば、次のような違いがあります。
| データベース | SQLの特徴 |
|---|---|
| SQL Server | T-SQLという独自拡張がある |
| Oracle Database | PL/SQLという独自拡張がある |
| PostgreSQL | 標準SQL準拠と拡張性が強い |
| MySQL | Web系でよく使われる書き方が多い |
| SQLite | 軽量だが一部機能に違いがある |
基本的な SELECT、INSERT、UPDATE、DELETE は似ています。
しかし、日付関数、文字列関数、ページング、ストアドプロシージャ、権限管理などは製品ごとに違います。
初学者の段階では、まず共通部分を学べば十分です。
RDBMS以外のデータベース
データベースには、RDBMS以外にもさまざまな種類があります。
ここは深掘りしすぎると難しくなるため、まずは全体像だけ押さえれば大丈夫です。
NoSQLデータベース
NoSQLとは、RDBMSとは違う形式でデータを管理するデータベースの総称です。
表形式にこだわらず、柔軟なデータ構造を扱いやすいのが特徴です。
代表的なNoSQLの種類は次の通りです。
| 種類 | 代表例 | 特徴 |
|---|---|---|
| ドキュメントDB | MongoDB / Firestore | JSONのような形式で保存 |
| キー・バリューDB | Redis / DynamoDB | キーと値で高速に保存 |
| グラフDB | Neo4j | データ同士の関係性に強い |
| ワイドカラムDB | Cassandra / HBase | 大量データの分散処理に強い |
NoSQLは、次のような場面で使われます。
- 大量アクセスがあるWebサービス
- 柔軟にデータ構造を変えたいアプリ
- リアルタイム性が必要なサービス
- キャッシュ
- ログ管理
- SNSのつながり分析
ただし、初学者がいきなりNoSQLから始める必要はありません。
まずはSQLとRDBMSを理解してから、必要に応じてNoSQLを学ぶのが現実的です。
ドキュメントDB
ドキュメントDBは、JSONのような形式でデータを保存するデータベースです。
例として、次のようなデータをそのまま保存しやすいです。
{
"id": 1,
"name": "田中",
"skills": ["SQL", "C#", "Unity"]
}代表例は次の通りです。
- MongoDB
- Cloud Firestore
- CouchDB
ドキュメントDBは、データ構造が変わりやすいアプリや、Webアプリのバックエンドで使われることがあります。
キー・バリューDB
キー・バリューDBは、キーと値のペアでデータを保存します。
イメージとしては、辞書や連想配列に近いです。
user:1:name = 田中
user:1:score = 5000代表例は次の通りです。
- Redis
- Amazon DynamoDB
- Memcached
キー・バリューDBは高速にデータを取り出せるため、キャッシュやセッション管理でよく使われます。
グラフDB
グラフDBは、データ同士の関係性を扱うのが得意なデータベースです。
たとえば、SNSの友達関係や、推薦システムなどに向いています。
代表例は次の通りです。
- Neo4j
- Amazon Neptune
時系列DB
時系列DBは、時間ごとのデータを扱うのが得意なデータベースです。
代表例は次の通りです。
- InfluxDB
- TimescaleDB
- Amazon Timestream
時間ごとの変化を分析したい場合に使われます。
検索エンジン系データベース
検索エンジン系DBは、全文検索やログ検索に強いデータベースです。
代表例は次の通りです。
- Elasticsearch
- OpenSearch
- Solr
通常のSQLでも検索はできます。
しかし、大量の文章から高速にキーワード検索したい場合は、検索エンジン系DBの方が向いていることがあります。
ブログ記事検索、商品検索、ログ分析などで使われます。
ローカルDBとクラウドDBの違い
SQLを学ぶときには、ローカルDBとクラウドDBの違いも押さえておくと実務で役立ちます。
ローカルDBとは
ローカルDBとは、自分のPCやアプリ内、社内サーバーなどで動かすデータベースです。
代表例は次の通りです。
| データベース | 特徴 |
|---|---|
| SQLite | サーバー不要。ファイル単位で使える |
| MySQL | Web開発でよく使われる |
| PostgreSQL | 高機能で拡張性が高い |
| SQL Server Express | .NETや業務アプリと相性が良い |
ローカルDBのメリットは、学習しやすく、無料で始めやすいことです。
SQL初心者は、まずローカル環境で試すのがおすすめです。
クラウドDBとは
クラウドDBとは、AWS、Azure、Google Cloudなどのクラウド上で使えるデータベースです。
代表例は次の通りです。
| サービス | 対応DB・特徴 |
|---|---|
| Amazon RDS | MySQL / PostgreSQL / SQL Server / Oracleなど |
| Azure SQL Database | SQL Server系のクラウドDB |
| Google Cloud SQL | MySQL / PostgreSQL / SQL Server対応 |
| Supabase | PostgreSQLベースのBaaS |
| Firebase Firestore | ドキュメントDB |
| DynamoDB | キー・バリュー / ドキュメントDB |
| MongoDB Atlas | クラウド版MongoDB |
クラウドDBのメリットは、サーバー管理やバックアップ、スケール対応をサービス側に任せやすいことです。
ただし、料金、セキュリティ、ネットワーク設定には注意が必要です。
SQLとNoSQLの違い
最後に、SQLとNoSQLの違いを簡単に整理します。
| 比較項目 | SQL / RDBMS | NoSQL |
|---|---|---|
| データ形式 | 表形式 | JSON、キー値、グラフなど |
| 構造 | きっちり決める | 柔軟に変えやすい |
| 得意分野 | 業務データ、集計、整合性 | 大量データ、柔軟なデータ、リアルタイム |
| 代表例 | MySQL / PostgreSQL / SQL Server | MongoDB / Redis / Firestore |
初学者にとって大切なのは、どちらが優れているかではありません。
重要なのは、用途によって使い分けること です。
業務データや売上データのように、正確性や整合性が重要なものはRDBMSが向いています。一方で、チャット、リアルタイム同期、キャッシュ、大量ログなどはNoSQLが向いている場合があります。
まとめ
SQLとは、リレーショナルデータベースを操作するための言語です。
データの取得、追加、更新、削除、テーブル作成、権限管理、トランザクション制御などに使われます。
SQLコマンドには、主に次の種類があります。
| 種類 | 役割 |
|---|---|
| DQL | データを取得する |
| DML | データを追加・更新・削除する |
| DDL | テーブルなどの構造を作る |
| DCL | 権限を管理する |
| TCL | 処理の確定・取消を行う |
SQLは主にRDBMSで使われます。
代表的なRDBMSには、MySQL、PostgreSQL、SQL Server、Oracle Database、SQLiteなどがあります。
一方で、データベースにはRDBMS以外にも、ドキュメントDB、キー・バリューDB、グラフDB、時系列DB、検索エンジン系DBなどがあります。
初学者〜中級者は、まず SQL + RDBMS を押さえるのがおすすめです。
そのうえで、目的に応じてNoSQLやクラウドDBを学んでいくと、実務でも個人開発でも使える知識になります。
サイトアイコン-2-150x150.png)