SQLは国際標準化されているので、一度書き方を覚えてしまえば、
他のデータベースでもほとんど同じように書く事が出来るようになりますよ
こんにちは、ikuxxと申します。
という事で、今回はSQLの基本的な書き方を「Progate」などを参考にしつつ簡単に内容をまとめてみました。
【初心者向け】SQLの基本的な書き方
SQL(シークェル) = データベース言語で、データの取得や登録、更新、削除などの操作をする時に使う言語。
「SQL」は一度習得すれば「MySQL」や他のデータベースでもほとんど同じように操作が出来るようになります。
データはExcelのような表形式のイメージで保存されているので、簡単に表示するとこんな感じ。
・テーブル (テーブル名は適当で、今回はfruitsテーブル)
※データベースの縦の列の事を「カラム」、横の行の事を「レコード」と呼ぶ。レコードは文字列や数値などの型を持っている。
SQLの基本的な書き方:SELECT文
データを呼び出すには「SELECT文」を使用する
1 |
SELECT カラム名 |
複数のテーブルの中から「FROM」というSQLを使って、どのテーブルのカラムかを選ぶ
1 2 3 4 5 6 7 8 9 10 |
// FROM SELECT カラム名 FROM テーブル名; 例えば、 SELECT name // nameカラム FROM fruits; // fruitsテーブル こんな感じ |
そうすると「fruitsテーブル」の「nameカラム」の情報を取得出来る。
複数のカラムを選択する場合は、
1 2 3 4 |
// 複数のカラムを選択 SELECT name, price FROM テーブル名; |
など
全てのカラムを選ぶ場合は、
1 2 3 4 5 |
// 全てのカラムを選ぶ場合 SELECT * FROM テーブル名 |
SQLの基本的な書き方:WHERE
例えば「夕食」のデータだけを取得したい場合は「WHERE」を使用する。
1 2 3 4 5 6 7 8 9 10 11 12 |
// 夕食のデータのみを取得 WHERE category = "夕食" ↓ 【例】 SELECT * FROM テーブル名 WHERE category = "夕食"; こんな感じ。 |
データ型の種類には「テキスト」「数値」「日付型」などがある。
テキストデータや日付データを取得する場合は””で囲む必要があるが、数値型の場合は囲まなくてもOK。
1 2 3 4 5 6 7 |
// WHERE price >= 1000; // 数字だから""で囲む必要なし WHERE category = "夕食"; // テキスト型なので""が必要 WHERE date <= "2019-08-01"; // 日付型なので""が必要 |
比較演算子
比較演算子も使える
1 2 3 4 5 |
// 比較演算子 SELECT * FROM テーブル名 WHERE price >= 1000; // 100以上のデータを取得する。 |
これが日付の場合、
1 2 3 4 5 |
// 日付の部分 SELECT * FROM テーブル名 WHERE date <= "2019-08-01"; // 2019-08-01以前のデータを取得する。 |
LIKE演算子
ある文字を含むデータを取得する場合は「LIKE演算子」
1 2 3 4 5 6 7 8 |
// LIKE演算子 SELECT * FROM テーブル名 WHERE name LIKE "%文字列%"; // ここが例えば豚だと、豚という文字を含んだ全てのデータを取得 (LIKEを使用する時は = は必要なし。) |
“% %”の使い方:応用編
ここが例えば、“%豚%” だと、豚という項目のデータを取得する、
例えば“豚%” だと、豚から始まる文字列を探す事が出来る(豚の生姜焼き、豚まん、豚骨ラーメンなど)
“%定食” だと、ハンバーグ定食、唐揚げ定食など、定食で終わる文字列を検索可能。
こういった%を使った書き方を「ワイルドカード」と呼ぶ。
NOT演算子
指定した文字列以外のものを検索する場合は「NOT」を使用する
1 2 3 4 5 |
// NOT演算子 WHERE NOT name = "豚" // 豚じゃないデータ( = が必要) WHERE NOT name LIKE "%豚%" // 豚という文字を含まないデータ(LIKEなので = は必要なし) |
NULL(データがない場合)
「NULL」のデータを取得する場合は「IS NULL」を使う。
1 2 3 4 5 |
// NULL WHERE price IS NULL; (NULLの場合 = は使用不可) |
「NULL」ではないデータを取得する場合は「IS NOT NULL」を使う。
1 |
WHERE price IS NOT NULL; |
複数の条件からのデータを受け取る:AND, OR演算子
この中から例えば、たけしの食材に関するデータのみを取得する場合、
1 2 3 4 |
// たけしの食材代金のみを取得 WHERE name = "たけし" AND category = "食材"; |
エマとキムのデータを取得する場合
1 2 3 4 |
// エマとキムのデータを取得する場合 WHERE name ="エマ" OR name ="キム"; |
データの並び替え
1 2 3 |
// データの並べ替え ORDER BY カラム名 並べ方; // ORDER BYは末尾に書く |
並べ方は、昇順が「ASC」、降順が「DESC」で「WHERE文」と併用する事も可能。
(昇順 = 低 → 高, 降順 = 高 = 低)
1 2 3 4 5 |
// ORDER BYの書き方 SELECT * FROM テーブル名 ORDER BY price ASC; |
最大で何件表示させるかを決める:LIMIT
最大で何件表示させるかを決める場合は「LIMIT」というSQLを使う。
「LIMIT」これも末尾に書く必要がある(ORDER BYよりも後)
1 2 3 4 5 6 7 8 9 10 |
// LIMITの書き方 LIMIT データの件数; 【例】 SELECT * FROM テーブル名 ORDER BY price ASC; LIMIT 3; |
終わり。
続きはまた今度。
プログラミングが難しい, 挫折した, 勉強法が分からないという人におすすめのプログラミングスクール
SQLってよく聞くけど、一体何なんだろう?
書き方とかって難しいのかなぁ?
触りだけでもいいからちょっと学んでみたいなぁ