SQL学習|初心者向けの基本的な書き方・ワイルドカードなど|基礎・勉強

man

困ってる人
SQLってよく聞くけど、一体何なんだろう?
書き方とかって難しいのかなぁ?
触りだけでもいいからちょっと学んでみたいなぁ
SQLは国際標準化されているので、一度書き方を覚えてしまえば、
他のデータベースでもほとんど同じように書く事が出来るようになりますよ
operator

オペレーター

こんにちは、ヨロと申します。

という事で、今回は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;

終わり。

続きはまた今度。