SQLのリファレンスをまとめています。
SQLの基本のリファレンス
基本のデータ定義文や、データ操作文の構文をリファレンスとしてまとめます。
データ定義(DDL)
DDLは、データ構造を定義するための命令です。データベースやテーブルを作成するほか、インデックスやトリガーなどを作成します。
create databaseの構文
データベースを作成するにはcreate databaseを使います。削除はdrop database。更新用の命令はなく、いったんdrop後に再作成する必要があります。構文は以下の通りです。
CREATE DATABASE データベース名;
【関連記事】
▶【MySQL】CREATE DATABASEで新規データベース作成
create tableの構文
create tableはテーブルを作成するDDL。カラム名、データ型、NULL許可、デフォルト値などを定義してテーブルを生成できます。削除はdrop database。更新にはalter databseを使います。
CREATE TABLE `employees_copy` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` enum('M','F') NOT NULL, `hire_date` date NOT NULL, PRIMARY KEY (emp_no) )
【関連記事】
▶MySQLのcreate tableサンプルコード集 カラム定義を自動出力する方法は? | 「ポテパンスタイル」
データ操作(DML)
DMLは、データベース内のデータを取り出したり更新したりと、データの操作そのものをおこなうためのものです。大きく分けて、select、insert、update、deleteの4種類があります。
selectの構文
select文はデータベースからデータを取得するDMLです。抽出条件やソート指定が可能です。
SELECT * FROM `employees` where hire_date > '1990/01/01' +--------+------------+------------+-------------+--------+------------+ | emp_no | birth_date | first_name | last_name | gender | hire_date | +--------+------------+------------+-------------+--------+------------+ | 4 | 1982-01-01 | Siro | Takahashi | M | 2003-07-01 | | 5 | 1979-08-12 | Yuji | Satoh | M | 2003-04-05 | | 6 | 1981-12-05 | Kyoko | Shimada | F | 2005-09-01 | | 7 | 1975-03-15 | Yuri | Ooishi | F | 2004-04-15 | | 10008 | 1958-02-19 | Saniya | Kalloufi | M | 1994-09-15 | | 10011 | 1953-11-07 | Mary | Sluis | F | 1990-01-22 | | 10012 | 1960-10-04 | Patricio | Bridgland | M | 1992-12-18 | | 10016 | 1961-05-02 | Kazuhito | Cappelletti | M | 1995-01-27 | | 10017 | 1958-07-06 | Cristinel | Bouloucos | F | 1993-08-03 | | 10019 | 1953-01-23 | Lillian | Haddadi | M | 1999-04-30 | +--------+------------+------------+-------------+--------+------------+ 10 rows in set (0.16 sec)
【関連記事】
▶SQL select文のサンプル集 結合、ソート、別テーブル生成の記述方法は?
insertの構文
insert文はテーブルにデータを挿入するDML。指定した値を挿入するほか、selectで取得した値を挿入することも可能。
INSERT `employees`( `emp_no`, `birth_date`, `first_name`, `last_name`, `gender`, `hire_date` ) VALUES ( 1, '1982-01-01', 'Taro', 'Yamada', 'M', '2002-04-01' )
【関連記事】
▶MySQL Insert サンプルコード集 一文で一括挿入する方法とは?
updateの構文
updateは、データを更新するDML。条件指定したカラムを、指定した値で書き換えます。
UPDATE cars SET price * 3 WHERE name = ‘ラパン’;
【関連記事】
▶【実例で学ぶ】SQL「UPDATE」文の使い方 基礎・応用編
deleteの構文
deleteはテーブルのデータを削除するDML。削除対象の条件を指定できます。なお、データを全て削除しても、テーブル自体はなくなりません。
DELETE FROM `deltest` WHERE no=4 or no=5;
【関連記事】
▶MySQL deleteのサンプルコード集 複数テーブルの削除やエイリアス制限とは
SQL リファレンスリンク(データベースごと)
SQLにはデータベースごとに独自拡張使用があり、記述方法が異なります。インターネットに各データベースのリファレンスが公開されています。
SQL Serverのリファレンス
参考)Transact-SQL リファレンス (データベース エンジン) – SQL Server | Microsoft Docs
postgreSQLのリファレンス
MySQLのリファレンス
参考)MySQL :: MySQL Documentation
Oracleのリファレンス
参考)Oracle Database Documentation – Oracle Database
まとめ
- SQLのDDL、DMLの記述方法は主要データベースごとに異なる
- SQLの標準部分以外の記述方法は、リファレンスを参照する必要あり
- ネット上にデータベースごとのリファレンスが公開されている