どうもニコイチです。今回ははじめてSQLを学ぶ方に向けて、資料の内容を踏まえながら「どんな基本文法があるのか」をわかりやすくまとめました。SQLはちょっと難しそうに感じるかもしれませんが、少しずつ覚えれば必ず使いこなせるようになります。自分のペースで学びながら「必ず前進・成長していける」と信じて進んでいきましょう。
目次
SQLってなんだろう?
- SQL(Structured Query Language) とは、データベースの操作に特化した言語のことです。
- 世の中にはPythonやJavaなどいろいろなプログラミング言語がありますが、それらは「アプリケーション開発」や「幅広い処理」に使われるのに対し、SQLは「データベースの中身を操作する」目的に絞って作られています。
- たとえば…
- 必要なデータだけを取り出す
- データを追加する
- 特定の条件に合ったデータだけを探す
…などの作業を、SQLを使えばスムーズに実行できます。
データベース製品ごとに文法が少し違う?
- データベースには「MySQL」「PostgreSQL」「Oracle Database」「Microsoft SQL Server」など、さまざまな製品があります。
- どれも基本文法は「標準SQL」と呼ばれる共通ルールに沿っているため、大きく変わることはありませんが、一部の書き方や拡張機能は製品ごとにわずかに異なる場合があります。
SQLの基本文法を押さえよう
SQLの文法では、以下の4つのポイントをまず覚えておきましょう。
- 命令(予約語)と項目(テーブル名やカラム名)をセットでつなぐ
- 例:
SELECT カラム名 FROM テーブル名;
SELECT
やFROM
を「命令(予約語)」、カラム名やテーブル名を「項目」として、セットで書きます。
- 予約語は、たとえば SELECT(データを取り出す命令)や FROM(どのテーブルからデータを取るか指定する)などがあります。
- 例:
- 予約語には大文字・小文字の区別がない
SELECT
でもselect
でも同じ動きをします。- ただし、テーブル名やカラム名は大文字・小文字を区別する場合があるので注意が必要です(製品によって異なる)。
- 空白文字(スペース)や改行の数は関係ない
SELECT カラム名 FROM テーブル名;
SELECT カラム名 FROM テーブル名 ;
- 上記のように空白が多くても、改行が入っても、同じ意味の命令文として認識されます。
- 文字列はシングルクォート(‘)で囲む
- SQLの条件文などで文字列を扱うときは
' '
で囲むルールです。 - たとえば
WHERE カラム名 = 'OK'
のように書きます。 - もし
'
そのものを文字として表したいときは、''
と2つ続けてエスケープ表現(文字として扱う)をします。
- SQLの条件文などで文字列を扱うときは
基本文法の例:SELECT文
いちばんよく使う命令が SELECT文 です。たとえば
SELECT COLUMN1
FROM TABLE1;
この命令は「TABLE1
というテーブルから COLUMN1
というカラムのデータを取り出す」ことを表しています。
- 先頭にある
SELECT
は「抽出する」命令(予約語) - その次に指定する
COLUMN1
は「どのカラムを取ってくるか」 FROM TABLE1
は「どのテーブルから取ってくるか」を指定- 最後の
;
はSQL文の終わりを示す合図です。
このように、命令(SELECT)+ 項目(COLUMN1)+ FROM TABLE1 + 終わりのセミコロン という流れで書くのが基本となります。
確認問題
ここでは理解度をチェックする課題を2つ紹介します。頭の中で整理しながら挑戦してみてください。
課題1
SQLに関する説明として、次の中から正しいものを「全て」選んでください。
- SQLとは、データベースの一種である
- SQLとは、データベースを操作することに特化した言語である
- SQLとは、Pythonと同じようにコンピュータに様々な処理をさせるプログラミング言語の一種である
- SQLの使い方(文法)は、データベースの種類によって変わらない
- SQLの使い方(文法)は、データベースの種類によって変わることがある
<ヒント>
- SQLは「データベースそのもの」ではなく「データベースを操作するための言語」。
- PythonやJavaなどとは区別される、特化型の言語。
- データベースの種類によって、わずかに文法や書き方が異なることがあります。
【正解】
- SQLとは、データベースを操作することに特化した言語である
- SQLの使い方(文法)は、データベースの種類によって変わることがある
課題2
「SELECT COLUMN1 FROM TABLE1;」というSQL命令文(クエリ)と同じ意味をもつものを、次の中から「全て」選んでください。
SELECT COLUMN1 FROM TABLE1
SELECT COLUMN1 FROM TABLE1;
select COLUMN1 from TABLE1;
Select Column1 From Table1;
SELECT column1 FROM table1;
select column1 from table1;
select column1 from table1;
SELECT COLUMN1 FROM TABLE1;
<ヒント>
- SQLの末尾には基本的に「;」(セミコロン)を書く。
- 予約語に大文字・小文字の区別はないが、テーブル名やカラム名については区別される場合もある。
- 空白や改行の違いはあまり気にしなくてもOK。
【正解】
SELECT COLUMN1 FROM TABLE1;
select COLUMN1 from TABLE1;
SELECT COLUMN1 FROM TABLE1;
上の3つは「セミコロンが付いていて」「予約語が大文字・小文字入り混じっていても問題ない」ため、同じ意味になります。テーブル名やカラム名の大文字・小文字に違いがあるものは、データベースの設定次第ではエラーになるかもしれません。
まとめ
- SQLはデータベース操作に特化した言語で、基本文法はどの製品でもほとんど同じです。
- 予約語の大文字・小文字は気にしなくてOKですが、テーブル名やカラム名は製品ごとに区別される場合がある点に注意が必要。
- 空白や改行は見やすさを調整するものと考え、自由に使って問題ありません。
- 文字列は
' '
で囲むのがルール。 - 分からない点があれば、最初のうちは何度でも試して確かめてOK。
- いきなり完璧に覚えなくても、一つひとつの命令文を写経や練習しながら進めば、必ず前進・成長していけます。
SQLを使えるようになると、データの抽出・分析・集計が圧倒的にラクになります。大きなシステムや身近なサービスの裏側でSQLがどう動いているのか、少しずつ見えてくるはずです。
コメント