SQLとは
SQLとは「Structured Query Language」の略で「構造化問い合わせ言語」という意味です。SQLは、米国の米国の米国規格協会(ANSI)と国際標準化機構(ISO)で、リレーショナルデータベースの標準言語であることが認められています。
SQLにはデータ定義機能、データ操作機能、データ制御の3つの機能があります。
DDL | |
Data Definition Language データ定義命令 |
データベース、表、ユーザー等の作成、変更、削除を行うCREATE、ALTER、DROPなど |
DML | |
Data Manupilation Language データ操作命令 |
データの検索、挿入、更新、削除を行うSELECT、INSERT、UPDATE、DELETEなど |
DCL | |
Data Control Language データ制御文 |
データの変更を確定、取り消すためのコマンド COMMIT、ROLLBACKなど |
SQLの記述について
予約後の扱いについて
DMLの「SELECT」、「FROM」、「WHERE」、「INSERT」、「UPDATE」、「DELETE」など、DDLの「CREATE TABLE」、「DROP TABLE」命令、DCLの「GRANT」、「REVOKE」命令などの単語は予約語です。
予約語は表名(テーブル名)、列名(カラム名)などとして使用できません。しかし、どうしても予約語を表名や列名として使用した場合は、予約語を[]で囲んで指定します。
SELECT
[INSERT],
[UPDATE]
FROM [UPDATE]
;

システム開発の現場では、予約語を表名、列名などとして使用することは紛らわしく、システムトラブルの温床となるため使用することはありません。
大文字と小文字の区別
SQL文では大文字と小文字は区別していません。以下のSQLはいずれも同じ結果が返ってきます。
SELECT * FROM COMMON;
SELECT * FROM common;
SELECT * FROM Common;
ただし、データベース製品によってはオブジェクト名(テーブルなど)は大文字と小文字を区別されることがあります。また、データベース内の文字列データは大文字と小文字を区別されます。ただし、これもデータベース製品や設定などによって区別されないこともあります。
SELECT * FROM COMMON WHERE NAME = 'parts';
SELECT * FROM COMMON WHERE NAME = 'Parts';
空白文字
空白文字とは半角スペース、タブ、改行などです。
SQL文内では空白文字が連続した場合でも1つの空白文字として扱われます。長いSQL文を記述する場合は、改行や空白を入れて整形すると読みやすくなります。
以下のSQLはいずれも同じ結果が返ってきます。
SELECT * FROM COMMON WHERE NUMBER = 1;
SELECT * FROM COMMON WHERE NUMBER = 1;
SELECT
*
FROM COMMON
WHERE NUMBER = 1;
コメントの記述
1行のコメントを記述する場合は「–」(マイナス記号を2つ連続)に続けて記述します。
複数行のコメントを記述する場合は、コメント文を「/*」(開始)と「*/」(終了)で囲みます。SQL文中であっても「/*」「*/」で囲みます。
1行コメント行
--SELECT * FROM COMMON WHERE NUMBER = 1;
SELECT * FROM COMMON WHERE NUMBER = 1;
SELECT
*
FROM COMMON
WHERE NUMBER = 1;
複数行コメント行
/*
SELECT
NUMBER,
MAKER,
ID,
NAME
FROM COMMON
WHERE NUMBER = 1
;
*/
文中コメント行
SELECT
NUMBER,
/* MAKER,
ID,
NAME */
FROM COMMON
WHERE NUMBER = 1
;
SQL文末のカンマ要否
MySQL、Oracle、PostgreSQL、SQL ServerともSQL文の入力の最後に「;」つけます。DB2は「ステートメント終了文字」の指定として「;」(セミコロン)または「@」などを指定しますがデフォルトでは「;」でプロシージャの終わりが「@」。
AccessはSQL文末に「;」をつけません。
SQLServerではコマンド入力の場合は改行して「GO」があればSQL文のおわりとみなされます。また、SQL文をスクリプトとして記述しない場合も「;」は不要です。SQLLiteをSQLLiteManagerから使う場合は、SQL文の入力の最後には「;」をつけてもつけなくてもどうちらもで構いません。
SQL基本操作
テーブルからデータ(レコード)を抽出する基本的なやり方
条件にマッチするレコードの検索方法
テーブルとテーブルを結合する方法
RDBは複数のテーブルを作成しそれぞれのキー同士を結合してデータを抽出するのが基本となります。テーブル同士を結合して抽出する方法を解説しています。
行を並び替え(ソート)して抽出する方法
データを登録する
データ更新する
データを削除する
お手軽テーブルバックアップ方法
テーブルを参照する必要がない関数やシステム日付を取得する場合(仮想表)
Oracle MySQL SQLServer
関数テストやDB日付の取得等、実テーブル参照をする必要がない場合は仮想表を使います。