この記事では、SQLの書き方をわかりやすく解説します。
SQLの書き方を覚えたいが難しい……
SQLとデータベースをマスターしたい!
SQLの書き方を習得したいけど、ほかの言語と比べ難しいのでは、と不安を感じる方もいるのではないでしょうか。
この記事では、SQLの書き方を初心者向けにわかりやすく解説します。
データベースとの関係や、SELECT文・INSERT文の書き方をサンプルコードつきで説明するので、最後まで読めばSQLを使いこなせるようになるでしょう。
- SQLはデータベース定義やデータの操作を行うための言語
- マスターするためには基本処理であるCRUDから理解しよう
- エラーが発生したときはエラーコードを確認・調査すれば解決しやすい
SQLの書き方を覚えるには?
SQLの書き方を覚えるには、基礎知識を押さえる必要があります。
SQLの基礎知識は下記の3つです。
- SQLはデータベース言語である
- SQLの基本操作はCRUDと呼ばれる
- SQLの動きは?Excelでイメージできる
それぞれ詳しく解説します。
SQLはデータベース言語である
SQLはプログラミング言語ではなく、データベース言語です。データベース言語とは、データの定義、操作、アクセス制御など、データベースを操作するための言語です。
SQLの書き方をマスターすれば、データの一括操作や、必要なデータの抽出ができるようになります。
SQLの基本操作はCRUDと呼ばれる
SQLで使う4つの基本操作はCRUD(クラッド)と呼ばれます。
CRUDとは、データベースに、新たにデータを追加するCreate(生成)、データを取得するRead(読取り)、データベースに存在するデータを更新するUpdata(更新)、データを削除するDelete(削除)の頭文字をとった言葉です。
CRUDの理解は、SQLの書き方をマスターするための第一歩です。
SQLのデータ処理はExcelでイメージできる
SQLを用いたデータ処理はExcelをイメージすればわかりやすいです。
Excelのシートにたくさんの行が存在するとき、「フィルタ機能」で条件を指定すると、その条件に合致した行のみが選択されます。これは、SQLのRead(読取り)に該当します。
また、フィルタ機能で条件に合致した行のデータを更新する処理はSQL文のUPDATE、削除はDELETEと同じような処理です。さらに、Excelで新しい行を追加するのはCreateと考えるとわかりやすいでしょう。
データベースの基礎
SQL構文をスムーズに習得するため、データベースを理解しましょう。
データベースの構造と種類、初心者向けのデータベースを紹介します。
データベースの構造
SQLで操作するデータベースは、下の図のような構造でできています。
データベースの中に複数のテーブルがあり、テーブルには1行(1レコード)ずつデータがあります。
SQLによるデータベースの操作手順は、下記のとおりです。
- 1.データベースの環境を作る
- 2.テーブルを作る
- 3.SQLでデータを取得する
データベースの種類
ここで、あらためてデータベースについてご紹介しておきます。データベースは、いくつか種類があります。
「どれを選べばいいの?」と思う方もいるかもしれませんが、初めてデータベースを使うならMySQLがおすすめです。
無料で使えますし、何より、環境構築が簡単です。また、インターネットの情報が多いので、エラーの解決法を見つけやすいというメリットがあります。
データベースの種類についてはこちらでも詳しく解説しています。もっと詳しく知りたい方は、併せてご覧ください。
SQL基礎構文6つの書き方
SQL入門者が習得すべき基礎構文は下表のとおりです。
SQLで覚えておきたい基礎構文
-
SELECT文
データベースからデータを取り出すための構文
-
INSERT文
データベースにデータを登録するための構文
-
UPDATE文
データベースの情報を更新するための構文
-
DELETE文
データベースのデータを削除するための構文
-
AS句
テーブルや列を別の名前に変更するための構文
-
ORDER BY
SELECTの結果を並び替えるための構文
ひとつずつ、書き方を詳しく解説します。
【SQLの基礎構文】SELECT文の書き方
SQLのSELECT文はデータベースからデータを取り出すための構文です。
SELECT文の書き方は、以下のとおりです。
SELECTの直後は、結果に表示する列名を指定します。
ここにアスタリスク(*)を入れると、すべてを表示できます。FROMはテーブル名で、WHEREは条件式です。
条件がないときはWHEREが不要になりますが、セットで覚えておくのがおすすめです。
SELECT文のサンプルコード
下記のテーブルを参考に、SELECT文のサンプルを見てみましょう。
SQLで、すべての行のデータを取得するときは下記のとおりに記述します。
-- SELECT文でレコード検索 SELECT * FROM users_list;
年齢が25歳以上のユーザーのIDと名前を取得するときはこのようになります。
-- SELECT文でレコード検索 SELECT id, name FROM users_list WHERE age >= 25;
【SQLの基礎構文】INSERT文の書き方
INSERT文はデータベースにデータを登録するための構文です。
SQLの基礎構文、INSERT文の書き方は、下記のとおりです。
INSERT INTO句の後に、テーブル名と新規登録する行の列名を指定します。ここで指定されなかった列については何も登録されていないことを示す「NULL」が設定されます。
また、列名の部分は省略可能です。その後、VALUESという定型の語句に続いて、新規登録する行の値を指定します。
INSERT INTO句で指定した列名の数とVALUES句で指定した値の数は一致していないとエラーになるので注意しましょう。
INSERT文のサンプルコード
つづいてSQLのINSERT文のサンプルをご紹介します。SELECTで使用したusers_listテーブルにデータを登録してみましょう。
列名をすべて指定した場合のINSERT文のサンプルです。
-- INSERT文でレコード挿入(カラム全指定) INSERT INTO users_list(id, name, age, created_at, updated_at) VALUES (1, '侍1', 18, '2019/7/1', '2019/7/26');
列名を省略した場合のINSERT文のサンプルです。
-- INSERT文でレコード挿入(カラム省略) INSERT INTO users_list VALUES (1, '侍1', 18, '2019/7/1', '2019/7/26');
なお、INSERT文の使い方を詳しく知りたい方は、併せて以下の記事をご覧ください。
【SQLの基礎構文】UPDATE文の書き方
SQLのUPDATE文はデータベースの情報を更新するための構文
SQLのUPDATE文の書き方は、以下のとおりです。
UPDATE句の次にテーブル名、SET句の次に列名とその列に設定する値を指定します。列名および値は複数指定できます。
条件に一致するものを一括で更新する場合はWHERE句を使いましょう。なお、WHERE句は省略可能です。省略した場合はすべての行が更新対象となるので注意してください。
UPDATE文のサンプルコード
つづいて、SQLのUPDATE文のサンプルをご紹介します。SELECTで使用したusers_listテーブルにデータを更新してみましょう。
-- idが5の行の名前を「侍5 New」、年齢を「29」に更新する UPDATE users_list SET name = '侍5 New' , age = 29 WHERE id = 5;
UPDATE文については、こちらの記事でも詳しく説明していますので、ぜひお読みください。
なお、IT企業への転職や副業での収入獲得を見据え、独学でSQLを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
\ 給付金で受講料が最大80%OFF /
【SQLの基礎】DELETE文の書き方
SQLのDELETE文はデータベースのデータを削除するための構文です。
SQLのDELETE文の書き方は、以下のとおりです。
DELETE FROM句の後にテーブル名を指定します。WHERE句を指定すると、条件に合致したものを削除できます。
UPDATE文と同様WHERE句は省略可能です。WHERE句を指定しないと、すべての行が削除されることになります。こちらも必要なデータを誤って削除しないように注意しましょう。
DELETE文のサンプルコード
DELETE文のサンプルは下記のとおりです。
-- idが5の行を削除する DELETE FROM users_list WHERE id = 5;
SQLのプログラミングで、DELETEを使ってデータを削除する方法について、以下の記事で詳しく解説しています。
【SQLの基礎構文】AS句の書き方
続いて、SQL文で利用する「AS」の書き方をご説明します。
AS句を使用すると、テーブル名や列名に別の名前を指定できます。まずはサンプルを見てみましょう。
AS句のサンプルコード
-- SELECT文でレコード検索 SELECT id AS ID, name AS 名前 FROM users_list WHERE age >= 25;
users_listの列名は「id」や「name」ですが、AS句を使用することで「ID」や「名前」というようにテーブルに存在しない名前で結果を取得できます。
AS句は複数のテーブルを一気に取得する場合、同名の行名などを区別するために使用します。
【SQLの基礎構文】ORDER BYの書き方
続いて、ORDER BYの書き方をご説明します。
ORDER BYを使用すると、SELECTの結果を並び替えることが可能です。ORDER BY句は複数の並べ替え条件を指定できます。
ORDER BY句を指定しない場合、SELECT結果が不定となります。複数の結果を取得する可能性がある場合は、ORDER BYを指定する習慣をつけておきましょう。
下記はSELECT結果をidの昇順で取得するサンプルです。
ORDER BYのサンプルコード
-- SELECTした結果をidの昇順で取得 SELECT id, name FROM users_list ORDER BY id ASC;
下記はSELECT結果を、ageの降順、idの昇順で取得するサンプルです。
-- SELECTした結果をageの降順、idの昇順で取得 SELECT id, name FROM users_list ORDER BY age DESC, id ASC;
なお、本当にSQLが自分にあう言語なのか、どう学習を進めればいいのかなどがあいまいな人は「プログラミング学習プラン診断」をお試しください。
かかる時間は1分ほど。4つの質問に答えるだけで、あなたにあう言語や学習プランを診断してもらえます。
効率よくプログラミングを学習したい人は、ぜひ一度お試しください。
\ 4つの質問に答えるだけ /
「*」「;」「’」記号の意味と使い方
SQLでは、いくつかの記号を使用します。
主な記号の意味と使い方は下記のとおりです。
- 「*」(アスタリスク):すべて/すべてを選択するときに使う
- 「;」(セミコロン):文の終わり/SQL文を終わりにするときに使う
- 「’」(シングルコーテーション):指定/文や句で条件を指定するときに使う
記号のサンプルコードは下記のとおりです。
-- SELECT文でレコード検索 SELECT id, name FROM users_list; WHERE -- 年齢は数値なので「’」不要。名前は文字列なので値を「’」で囲む age >= 25 OR name = ‘侍1’
SQLのDDLとDMLの書き方
SQLのDDLは「データ定義言語」、DMLは「データ操作言語」と呼ばれます。
次に、SQLのDDLとDMLついて説明します。
DDL
DDLは、Data Definition Languageの略でデータを定義するSQL文です。
- CREATE文:データベース・テーブルなどを作成する
- ALTER文:テーブル内の定義を変更する
- DROP文:データベース・テーブルを削除する
DML
DMLは、Data Manipulation Languageの略でデータを操作するSQL文です。
- SELECT文:レコード検索
- INSERT文:レコード挿入
- UPDATE文:レコード更新
- DELETE文:レコード削除
この記事でご紹介したものはDMLに属するSQL文です。
SQL入門者の方は、下記の順番で練習しましょう。
- 1.テーブルをCREATE文で作成
- 2.INSERT文でレコードを挿入
- 3.SELECT文でレコードを検索
- 4.UPDATE文でレコードを更新
なお、IT企業への転職や副業での収入獲得を見据え、独学でSQLを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
\ 給付金で受講料が最大80%OFF /
SQLを簡単に実行する方法とは?
次に、SQLを実行する環境について解説します。
SQLを実行する方法は、下記の2つです。
- Web版実行環境「paiza.io」を使う
- パソコンに開発環境をセットアップする
「paiza.io」を使えば、簡単にSQL実行環境を作れます。アカウント登録だけなので、すぐにSQLを試したい方におすすめです。
とはいえアプリ開発ではパソコンにセットアップしたデータベース環境を使うのが一般的です。いずれSQLを使いこなしたい!という方は、ある程度スキルを習得したのち、MySQLをインストールしてもいいでしょう。
MySQLのインストール方法は、以下の記事で詳しく解説しています。本格的にSQLを学びたい方は併せてご覧ください。
なお、ITの仕事に興味はあるものの、どの職種が自分にあうのかわからない人もいますよね。そんな人は「ITキャリア診断」をお試しください。
かかる時間はたったの1分。5つの質問に答えるだけで、自分にあうIT職種を診断してもらえます。
自身に適した職種が知りたい人は、手軽に試してみると良いですよ。
\ 5つの質問に答えるだけ /
SQLでエラーが発生した場合の対処法
SQLでエラーが発生したときは、まず、表示されるエラーコードを確認しましょう。
エラーコードは、SQL Server、MySQLなどといったご使用のデータベースによって異なります。
下記は、代表的なデータベースのエラーコード一覧です。
一覧を見ればエラーの内容と対処法を確認できます。
まとめ
SQLの書き方は、データベースの構造や基礎構文を理解すれば、スムーズに習得できます。
CREATE文、INSERT文、SELECT文など、サンプルコードを使って練習してみましょう。
ひとつずつ、覚えればSQLでデータベースを使いこなせるようになるはずです。
この記事のおさらい
SQLとは、リレーショナルデータベースに対して、参照、登録、更新、削除などの操作をするために使用するデータベース言語です。
SQLの書き方には、参照、登録、更新、削除などといった命令の種類によって記述ルールがあります。それぞれ定型の部分と範囲指定や条件設定などにより変動する部分があるので、基本的な記述ルールから覚えましょう。
この記事の監修者
株式会社SAMURAI
独学でプログラミング学習を始めるも挫折。プログラミングスクール「SAMURAI ENGINEER」を受講し、Web制作を学ぶ。副業でWeb制作を行いつつ、「初心者がプログラミングで挫折しないためのコンテンツ制作」をモットーにWebライターとして侍エンジニアブログ編集部に従事。