SQLのチートシート

SQL SQL

基本

命令句用途使用例
SELECT検索SELECT [カラム名] FROM [テーブル名]
SELECT * FROM [テーブル名]
UPDATE更新UPDATE [テーブル名] SET [カラム名] = [更新内容] WHERE [更新対象の条件]
INSERT追加INSERT INTO [テーブル名] VALUES ([追加するデータ])
DELETE削除DELETE FROM [テーブル名] WHERE [削除対象の条件]
WHERE条件SELECT * FROM [テーブル名] WHERE id = 001
AS別名SELECT a as A FROM [テーブル名] as Table
LIKE正規表現SELECT * FROM [テーブル名] WHERE date LIKE ‘%1月%’
BETWEEN範囲判定SELECT * FROM [テーブル名] WHERE money BETWEEN 100 AND 1000
IN比較SELECT * FROM [テーブル名] WHERE money IN(’pay’)
SELECT * FROM [テーブル名] WHERE money NOT IN(’pay’)
AND論理演算SELECT * FROM [テーブル名] WHERE title = ‘A’ AND price = 1000
OR論理演算SELECT * FROM [テーブル名] WHERE title = ‘A’ AND title = ‘B’
EXISTS相関副問い合わせSELECT 列 FROM [テーブル名A] WHERE EXISTS
( SELECT * FROM [テーブル名B] WHERE [テーブル名B].列 = [テーブル名A].列)
JOIN ONテーブル結合(nullはskip)SELECT [カラムA], [カラムB] FROM [テーブル名A] JOIN [カラムB] ON [テーブル名A].[カラムB] = [テーブル名B].[カラムB]
LEFT JOIN[テーブルA]の行を必ず表示SELECT [カラムA], [カラムB] FROM [テーブル名A] LEFT JOIN [カラムB] ON [テーブル名A].[カラムB] = [テーブル名B].[カラムB]
RIGHT JOIN[テーブルB]の行を必ず表示SELECT [カラムA], [カラムB] FROM [テーブル名A] RIGHT JOIN [カラムB] ON [テーブル名A].[カラムB] = [テーブル名B].[カラムB]
ALL JOIN全ての行を必ず表示SELECT [カラムA], [カラムB] FROM [テーブル名A] ALL JOIN [カラムB] ON [テーブル名A].[カラムB] = [テーブル名B].[カラムB]

検索結果加工用

命令句用途使用例
DISTINC重複行削除SELECT DISTINCT [カラム名] FROM [テーブル名]
ORDER BY並べ替えSELECT [カラム名] FROM [テーブル名] ORDER BY DESC SELECT [カラム名] FROM [テーブル名] ORDER BY ASC
OFFSET-FETCH件数を限定SELECT [カラム名] FROM [テーブル名] ORDER BY [カラム名] DESC OFFSET 0 ROWSFETCH NEXT 3 ROWS ONLY
UNION結合SELECT [カラム名] FROM [テーブル名1] UNION SELECT [カラム名] FROM [テーブル名2]
EXCEPT差し引きSELECT [カラム名] FROM [テーブル名1] EXCEPT SELECT [カラム名] FROM [テーブル名2]
INTERSECT重複部分取得SELECT [カラム名] FROM [テーブル名1] INTERSECT SELECT [カラム名] FROM [テーブル名2]
GROUP BY文グループ化SELECT [カラム名] ,SUM([カラム名]) FROM [テーブル名] GROUP BY [カラム名]
HVING文グループ化に対する絞り込みSELECT [カラム名] ,SUM([カラム名]) FROM [テーブル名] GROUP BY [カラム名] HAVING SUM([カラム名]) > 0

基本的な関数

命令句用途使用例
LENGTH関数文字列の長さSELECT [カラム名] , LENGTH([カラム名]) AS 文字列の長さ FROM [テーブル名]
TRIM関数除去SELECT [カラム名] , TRIM([カラム名]) AS 除去後 FROM [テーブル名]
REPLACE関数置換UPDATE [テーブル名] SET [カラム名] = REPLACE(文字列, 置換前,置換後)
SUBSTRING関数抽出SELECT * FROM [テーブル名] WHERE SUBSTRING(カラム名,1,3)
CONCAT関数結合SELECT CONCAT([[カラム名],’:’ || [カラム名]) FROM [テーブル名]
ROUND関数四捨五入SELECT ROUND([カラム名], -2) FROM [テーブル名]
TRUNC関数切り捨てSELECT TRUCN([カラム名], -2) FROM [テーブル名]
POWER関数べき乗SELECT POWER([カラム名], 2) FROM [テーブル名]
CURRENT_TIMESTAMP関数タイムスタンプINSERT INTO [テーブル名] VALUES(CURRENT_TIMESTAMP)
CURRENT_DATE関数日付INSERT INTO [テーブル名] VALUES(CURRENT_DATE)
CURRENT_TIME関数時刻INSERT INTO [テーブル名] VALUES(CURRENT_TIME)
CAST関数型変換CAST (変換する値 AS 変換する型)
COALESCE関数nullに反応するCOALESCE(列や式)

集計関数

関数用途使用例
SUM関数合計SELECT SUM([カラム名]) FROM [テーブル名]
MAX関数最大値SELECT MAX([カラム名]) FROM [テーブル名]
MIN関数最小値SELECT MIN([カラム名]) FROM [テーブル名]
AVG関数平均値SELECT AVG([カラム名]) FROM [テーブル名]
COUNT関数カウントSELECT COUNT([カラム名]) FROM [テーブル名] SELECT COUNT(DISTINCT [カラム名]) FROM [テーブル名]

トランザクション

記法用途使用例
BEGIN~COMMITトランザクション処理を明記BEGIN;
INSERT INTO
~~
COMMIT;
READ COMMITEDある程度のロックSET TRANSACTION ISOLATION LEVEL READ COMMITTED
SERIALIZABLE完全なるロックSET TRANSACTION ISOLATION LEVEL SERIALIZABLE
FOR UPDATE明示的な行ロックSELECT * FROM Table WHERE a = 100 FOR UPDATE
LOCK明示的なテーブルロックLOCK TABLE tableName IN EXCLUSIVE(排他ロック) MODE

テーブル関係

記法用途使用例
CREATE TABLE新規テーブルCREATE TABLE [テーブル名]( [カラム名], [型] )
DROP TABLEテーブル削除DROP TABLE [テーブル名]
ALTER TABLE列追加/削除ALTER TABLE [テーブル名]ADD [カラム名]
ALTER TABLE [テーブル名]DROP [カラム名]
NOT NULL入力制約(null)CREATE TABLE [テーブル名]( [カラム名] 型 NOT NULL )
CHECK入力制約(条件文)CREATE TABLE [テーブル名]( [カラム名] 型 CHECK([カラム名] ≥ 0) )
UNIQUE入力制約(重複禁止)CREATE TABLE [テーブル名]( [カラム名] 型 UNIQUE )
CREATE INDEXインデックスの作成CREATE INDEX [インデックス名] ON [テーブル名]([カラム名])
DROP INDEXインデックスの削除DROP INDEX [インデックス名]
CREATE VIEWビューの作成CREATE VIEW [ビュー名] AS [SELECT文]
DROP VIREビューの削除DROP VIRE [ビュー名]
タイトルとURLをコピーしました