SQLコマンドチートシート Descriptイオン (2026)

⚡ スマートサマリー

このSQLチートシートは、実務に携わる開発者が日常的に使用するコマンドをタスク別にまとめたものです。各セクションでは、データベースの作成、データ型、クエリ、フィルタリング、結合、インデックス作成など、正確な構文と分かりやすい説明を併記しています。

  • 🗄️ 構造コマンド: CREATE DATABASE、CREATE TABLE、ALTER、RENAME、DROPはスキーマを定義し、再構築します。
  • 🔢 データ型: 数値型、テキスト型、日付型、バイナリ型は、各列のストレージサイズと有効範囲を設定します。
  • 🔎 取得コマンド: WHERE、IN、LIKE、REGEXP を使用した SELECT は、結果セットを重要な行に絞り込みます。
  • ✍️ 変更コマンド: INSERT、UPDATE、DELETEは保存されている行を変更する操作であり、それぞれオプションの条件を指定できます。
  • 📊 集計コマンド: COUNT、MIN、MAX、SUMでグループ化し、 AVG データを要約し、HAVING句でグループをフィルタリングします。
  • 🔗 組み合わせコマンド: JOINはテーブルを横に並べて結合するのに対し、UNIONは2つのクエリの結果を積み重ねます。

SQLチートシート

データベースとテーブルの作成コマンド

すべてのSQLセッションは、データベースと、行を格納するための少なくとも1つのテーブルから始まります。

Command 詳細説明
CREATE DATABASE database1; データベースを作成する
CREATE DATABASE IF NOT EXISTS database1; IF NOT EXISTS を使用すると、指示を出すことができます MySQL サーバーは、データベースを作成する前に、類似の名前のデータベースが存在するかどうかを確認する。
CREATE DATABASE IF NOT EXISTS database1 CHARACTER SET latin1 COLLATE latin1_swedish_ci; latin1文字セットは、スウェーデン語の大文字小文字を区別しない順序であるlatin1_swedish_ci照合順序を使用します。
SHOW DATABASES; このSQLコマンドを実行すると、既存のデータベースの一覧が表示されます。
CREATE TABLE [IF NOT EXISTS] TableName (fieldname dataType [optional parameters]) ENGINE = storage Engine; テーブルの作成構文

SQL データ型のチートシート

列のデータ型によって、格納できるデータ量と各行が消費する容量が決まります。

数値データ型

Command 詳細説明
TINYINT( ) -128~127は通常値、0~255は符号なし整数。
SMALLINT( ) -32768~32767ノーマル
0 ~ 65535 符号なし。
MEDIUMINT( ) -8388608~8388607ノーマル
0 ~ 16777215 符号なし。
INT( ) -2147483648~2147483647ノーマル
0 ~ 4294967295 符号なし。
BIGINT( ) -9223372036854775808~9223372036854775807ノーマル
0 ~ 18446744073709551615 符号なし。
FLOAT 浮動小数点を含む小さな概数。
DOUBLE( , ) 小数点以下が変動する大きな概数。
DECIMAL( , ) 正確な固定小数点数。通貨値を格納するのに最適な選択肢です。

テキストデータ型

Command 詳細説明
CHAR( ) 0~255文字の固定長セクション。
VARCHAR( ) 長さが0~65535文字の可変長セクション。
TINYTEXT 最大長が 255 文字の文字列。
TEXT 最大長が 65535 文字の文字列。
BLOB 最大長65535バイトのバイナリデータ。
MEDIUMTEXT 最大長が 16777215 文字の文字列。
MEDIUMBLOB 最大長16777215バイトのバイナリデータ。
LONGTEXT 最大長が 4294967295 文字の文字列。
LONGBLOB 最大長4294967295バイトのバイナリデータ。

日付/時刻のデータ型

Command 詳細説明
DATE YYYY-MM-DD
DATETIME YYYY-MM-DD HH:MM:SS
TIMESTAMP YYYY-MM-DD HH:MM:SS 形式で、UTC で保存され、セッションのタイムゾーンに変換されます。
TIME HH:MM:SS

他のデータ型

Command 詳細説明
ENUM 定義済みのテキスト値のリストから選択した1つのテキスト値を保存します。
SET これは、あらかじめ定義されたテキスト値のリストから選択されたテキスト値を格納するためにも使用されます。複数の値を保持できます。
BOOL TINYINT(1) の同義語で、ブール値を格納するために使用されます。
BINARY CHAR型と似ていますが、違いはテキストがバイナリ形式で保存される点です。
VARBINARY VARCHARと似ていますが、違いはテキストがバイナリ形式で格納される点です。

SQL SELECT ステートメント コマンド

SELECTは、テーブルから行を読み込むために使用されるコマンドです。

Command 詳細説明
SELECT * FROM table1; テーブルからすべての列を選択してください
SELECT t1, t2, t3, t4 FROM table1; 我々はt1、t2、t3、t4フィールドのみを取得することに関心がある。
SELECT CONCAT(t1, ' (', t3, ')'), t4 FROM table2; 列の値を結合して単一の出力列にする
SELECT column_name | value | expression [AS] alias_name; エイリアスフィールド名の構文

AND、OR、IN、NOT IN コマンドを使用した SQL WHERE 句

WHERE句は行をフィルタリングし、以下の演算子をその中に組み合わせることができます。

Command 詳細説明
SELECT * FROM tableName WHERE condition; WHERE句の構文
SELECT * FROM table1 WHERE t1 = 2 AND t2 = 2008; WHERE句とAND論理演算子の組み合わせ
SELECT * FROM table1 WHERE t1 = 1 OR t1 = 2; WHERE句とOR論理演算子の組み合わせ
SELECT * FROM table2 WHERE t1 IN (1,2,3); WHERE句とINキーワードの組み合わせ
SELECT * FROM table2 WHERE t1 NOT IN (1,2,3); WHERE句とNOT INキーワードの組み合わせ
SELECT * FROM table2 WHERE t3 = 'Female'; WHERE句と等号(=)比較演算子の組み合わせ
SELECT * FROM table3 WHERE t3 > 2000; WHERE句と大なり比較演算子(>)の組み合わせ
SELECT * FROM table1 WHERE t1 <> 1; WHERE句と不等号(<>)比較演算子の組み合わせ

SQL コマンド INSERT INTO テーブル

Command 詳細説明
INSERT INTO table_name(column_1, column_2, ...) VALUES (value_1, value_2, ...); SQL INSERTコマンドの基本的な構文
INSERT INTO table1 (t1,t2,t3,t4) VALUES (X1,X2,X3,X4); テーブルにデータを挿入する
INSERT INTO table_1 SELECT * FROM table_2; 別のテーブルからテーブルに挿入する

SQL DELETEコマンド

Command 詳細説明
DELETE FROM table_name [WHERE condition]; の行を削除 MySQL

SQL更新コマンド

Command 詳細説明
UPDATE table_name SET column_name = new_value [WHERE condition]; 更新コマンドの構文

SQL の ORDER BY: DESC および ASC コマンド

Command 詳細説明
SELECT statement... [WHERE condition | GROUP BY field_name(s) HAVING condition] ORDER BY field_name(s) [ASC | DESC]; ORDER BY句の基本構文
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC | DESC [LIMIT N]; DESC および ASC 構文

SQL GROUP BY および HAVING 句コマンド

グループ化 HAVING句は行をグループにまとめ、グループが形成された後にそれらのグループをフィルタリングします。

グループ化する

Command 詳細説明
SELECT statements... GROUP BY column_name1[, column_name2, ...] [HAVING condition]; GROUP BY構文

グロウping 集計関数

Command 詳細説明
SELECT t2, COUNT(t1) FROM table1 GROUP BY t2; データベース内の t2 列値の合計数が必要だとします。

HAVING 句

Command 詳細説明
SELECT * FROM table2 GROUP BY t1_id, t4 HAVING t1_id = x1; t1_idがx1であるtable2の行に対応するすべてのt4値を返します。

Like、NOT Like、Escape、( % )、( _ ) の SQL ワイルドカード コマンド

ワイルドカードを使用すると、LIKE は部分的な文字列に一致させることができます。

% パーセンテージワイルドカードコマンド MySQL

Command 詳細説明
SELECT statements... WHERE fieldname LIKE 'xxx%'; 任意の数の文字に一致するパーセントワイルドカードの基本的な構文

_ アンダースコアワイルドカードコマンド

Command 詳細説明
SELECT * FROM table1 WHERE t3 LIKE 'x2_'; アンダースコアは、正確に1文字と一致します。

ワイルドカード コマンドとは異なります

Command 詳細説明
SELECT * FROM table1 WHERE t3 NOT LIKE 'x2_'; t3の値がパターンに一致しないtable1の行を取得したいとします。

エスケープキーワードワイルドカードコマンド

Command 詳細説明
LIKE '67#%' ESCAPE '#'; # はワイルドカードをエスケープするため、文字列「67%」そのものをチェックします。

SQL 正規表現 (REGEXP)

Command 詳細説明
SELECT statements... WHERE fieldname REGEXP 'pattern'; 正規表現のマッチの基本構文

正規表現のメタ文字

Command 詳細説明
* アスタリスク (*) メタ文字は、その直前の文字列の 0 回以上の出現に一致します。
+ プラス記号(+)は、その直前の文字列の1つ以上のインスタンスに一致します。
? 疑問符(?)メタ文字は、その直前の文字列に0回または1回出現するのと一致します。
. ドット(.)メタ文字は、改行を除く任意の1文字に一致します。
[abc] 文字リスト[abc]は、囲まれた文字のいずれかに一致します。
[^abc] 文字リスト [^abc] は、囲まれた文字を除く任意の文字に一致します。
[A-Z] [AZ] の範囲は、任意の大文字に一致します。
[a-z] [az] の範囲は、任意の小文字に一致します。
[0-9] [0-9]の範囲は、0から9までの任意の数字に一致します。
^ キャレット(^)は、マッチの開始位置を固定します。
| 縦棒(|)は選択肢を分離します。
[[:<:]] [[:<:]] マーカーは単語の先頭に一致します。
[[:>:]] [[:>:]] マーカーは単語の末尾に一致します。
[:class:] [:class:] マーカーは文字クラスに対応します。たとえば、[:alpha:] は文字、[:space:] は空白、[:punct:] は句読点、[:upper:] は大文字に対応します。

SQL関数コマンド

文字列関数

Command 詳細説明
SELECT t1_id, t2, UCASE(t2) FROM table1; UCASE関数は文字列を引数として受け取り、その文字列内のすべての文字を大文字に変換します。

数値関数

Command 詳細説明 例:
DIV 整数除算 SELECT 23 DIV 6;
/ ディビジョン SELECT 23 / 6;
- サブtrac生産 SELECT 23 - 6;
+ 追加 SELECT 23 + 6;
* 乗算 SELECT 23 * 6 AS multiplication_result;
% or MOD モジュラス SELECT 23 % 6; or SELECT 23 MOD 6;
FLOOR 数値から小数点以下の桁を削除し、最も近い整数に切り捨てます。 SELECT FLOOR(23 / 6) AS floor_result;
ROUND 小数点以下の桁数を持つ数値を、最も近い整数に丸めます。 SELECT ROUND(23 / 6) AS round_result;

格納された関数

Command 詳細説明
CREATE FUNCTION sf_name ([parameter(s)]) 必須。 MySQL サーバーは、括弧内に定義されたオプションパラメータを持つ sf_name という名前の関数を作成します。
RETURNS data type 必須。関数が返すデータ型を指定します。
DETERMINISTIC この関数は、同じ引数が渡された場合は常に同じ値を返します。
STATEMENTS 関数が実行するプロシージャ コード。

SQL集計関数コマンド

Command 詳細説明
SELECT COUNT(t1_id) FROM table1 WHERE t1_id = 2; COUNT関数
SELECT MIN(t3) FROM table2; MIN機能
SELECT MAX(t3) FROM table2; マックス機能
SELECT SUM(t4) FROM table3; SUM機能
SELECT AVG(t4) FROM table3; AVG function

SQL IS NULL および IS NOT NULL コマンド

A NULL は存在しない値なので、等号演算子ではなく IS NULL を使用してテストする必要があります。

Command 詳細説明
SELECT COUNT(t3) FROM table1; COUNT関数は、列内のNULL値を無視します。
CREATE TABLE table2(
t1_number int NOT NULL,
t2_names varchar(255),
t3 varchar(6)
);
NOT NULLは、列に空の値を入れることを禁止します。
column_name IS NULL
column_name IS NOT NULL
NULLキーワードの基本構文
SELECT * FROM table1 WHERE t2_number IS NULL; IS NULL の例
SELECT * FROM table1 WHERE t2_number IS NOT NULL; IS NOT NULL の例

SQL AUTO_INCREMENT コマンド

Command 詳細説明
CREATE TABLE table1 (
t1_id int(11) AUTO_INCREMENT,
t2_name varchar(150) DEFAULT NULL,
t3 varchar(500) DEFAULT NULL,
PRIMARY KEY (t1_id)
);
自動インクリメント構文

SQL – ALTER、DROP、RENAME、MODIFY

これらのコマンドは、既にデータが含まれているテーブルを変更します。

Command 詳細説明
ALTER TABLE table_name ADD COLUMN column_name data_type; ALTER構文
DROP TABLE sample_table; DROP TABLE 構文
RENAME TABLE current_table_name TO new_table_name; RENAMEコマンドの構文
ALTER TABLE table1 CHANGE COLUMN t1_names t1name char(250) NOT NULL; キーワードを変更する
ALTER TABLE table1 MODIFY t1name char(50) NOT NULL; キーワードの変更
ALTER TABLE table1 ADD t4 date NULL AFTER t3; AFTERキーワード

SQL の制限とオフセット

Command 詳細説明
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N; LIMIT キーワード構文
SELECT * FROM table1 LIMIT 1, 2; LIMITクエリのオフセット: 1行スキップしてから2を返します。

SQLサブクエリコマンド

Command 詳細説明
SELECT t1_name FROM table1 WHERE
category_id = (SELECT MIN(t1_id) FROM table2);
サブクエリ

SQL JOINS コマンド

参加する 2つのテーブルの列を結合して、1つの結果セットを作成します。

Command 詳細説明
SELECT * FROM table1 CROSS JOIN table2; クロス結合
SELECT table1.t1, table1.t2, table2.t1
FROM table1, table2
WHERE table2.id = table1.table2_id;
INNER JOINは
SELECT A.t1, B.t2, B.t3
FROM table2 AS A
LEFT JOIN table1 AS B
ON B.table2_id = A.id;
左結合します
SELECT A.t1, A.t2, B.t3
FROM table1 AS A
RIGHT JOIN table2 AS B
ON B.id = A.table2_id;
正しい参加
SELECT A.t1, B.t2, B.t3
FROM table2 AS A
LEFT JOIN table1 AS B
USING (table2_id);
「ON」句と「USING」句

SQL UNION コマンド

UNIONは2つのクエリの行を積み重ねるのに対し、JOINはそれらをより多くの列に広げます。

Command 詳細説明
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
UNION構文。重複する行は削除されます。
SELECT column1, column2 FROM table1
UNION ALL
SELECT column1, column2 FROM table2;
UNION ALLは重複する行を保持します。

ビュー内の SQL コマンド

ビュー クエリをテーブルのように再利用できるように、名前を付けて保存する。

Command 詳細説明
CREATE VIEW view_name AS SELECT statement; ビューの構文
DROP VIEW general_v_movie_rentals; ドロップping ビュー

SQL インデックスコマンド

インデックスとは、列に対する検索をはるかに高速化するルックアップ構造のことです。

Command 詳細説明
CREATE INDEX id_index ON table_name(column_name); インデックスの基本構文を追加する
DROP INDEX index_id ON table_name; インデックスの削除の基本構文

よくあるご質問

いいえ。SELECTやWHEREなどのキーワードは、大文字・小文字を問わず使用できます。大文字は、コマンドと識別子を区別するための慣例です。ただし、Linuxではテーブル名が大文字・小文字を区別する場合があります。

DELETEは選択した行を削除し、ロールバックできます。TRUNCATEはテーブル全体を素早く空にし、AUTO_INCREMENTをリセットします。DROPはテーブル定義自体を削除します。

FROM句とJOIN句が最初に実行され、次にWHERE句、GROUP BY句、HAVING句、SELECT句、ORDER BY句、最後にLIMIT句が実行されます。そのため、SELECT句で定義された列エイリアスはWHERE句内で使用できません。

はい。テキストからSQLへの変換アシスタントは、テーブルスキーマを使用して質問をクエリに変換します。生成されたWHERE句とJOIN句は必ず確認してください。もっともらしいクエリでも、誤った行を返す可能性があるからです。

Yes. RevAIの出力結果の確認、処理の遅いクエリの最適化、実行プランの読み取りなどには、コマンドの習熟が不可欠です。リファレンスシートは記憶の定着を早めるのに役立ちますが、理解そのものを代替するものではありません。