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