構文まとめ(初心者向け)
職業訓練校(Webプログラマー養成科)の授業で習ったMySQLの構文をまとめPart2です。
▽ 前回のPart1はこちらです。

「構文」と「その後に表示される文章」を分けて、2つのボックスに書いています。
ポイントとなるワードは大文字にしていますが、小文字でもOKです。
※現在レイアウトがズレているため、後日画像に変えます(たぶん)
1.使用するメンバー表(テーブル名:nogizaka)
no | name | birth | address |
---|---|---|---|
1 | 白石 麻衣 | 1992-08-20 | maiyan@passport.com |
2 | 齋藤 飛鳥 | 1998-08-10 | ashu@myanmar.com |
3 | 秋元 真夏 | 1993-08-20 | manattan@zukkyun.com |
4 | 生田 絵梨花 | 1997-01-22 | ikuta-gian@piano.com |
5 | 橋本 奈々未 | 1993-02-20 | 773@yahho.com |
6 | 西野 七瀬 | 1994-05-25 | na-chan@doiya.com |
7 | 堀 未央奈 | 1996-10-15 | miona@valletta.com |
8 | 山崎 怜奈 | 1997-05-21 | renachi@quiz.com |
9 | 北野 日奈子 | 1996-07-17 | kii@hina.com |
10 | 佐々木 琴子 | 1998-08-28 | kotoko@gundam.com |
11 | 与田 祐希 | 2000-05-05 | yoda-chan@gonzo.com |
12 | 山下 美月 | 1999-07-26 | mizuki@xxx.com |
13 | 田村 真佑 | 1999-01-12 | mayu@xxx.com |
14 | 嘉喜 遥香 | 2001-08-08 | kakki@xxx.com |
15 | 矢久保 美緒 | 2002-08-14 | yakubo@yakisoba.pan |
※
前回の記事で、database「idol」の中に、table「nogizaka」を作成しています。
「nogizaka」のフィールドには、「no」「name」「birth」「address」があります。
2.条件を指定して抽出する
2000年以降に生まれたメンバーを抽出する
メンバー表から、2000年以降に生まれたメンバーのみを抽出しています。
「2000」年も含まれるので、「>」ではなく「>=」になっています。
1900年代生まれのメンバーを出したいときはこういう書き方もできます。
(または where < '2000'でもOK)
複数条件を指定する
番号が偶数(2,4,6)のメンバーを抽出しています。
逆に「not in」にすると、番号が偶数(2,4,6)ではないメンバーを抽出されます。
betweenの使い方
no(ナンバー)が1以上5以下のメンバーを抽出しています。
betweenは「以上」「以下」の意味で使っているので、未満の場合には使用できません。
3.ワイルドカードを使う
部分一致
名前に「田」のつくメンバーを抽出しています。
%はワイルドカードになります。
「田」の前後には文字が入っても入らなくてもOKでなので、「田村 真佑」も抽出されます。
前方一致
フィールド名「birth」で、「19」から始まるデータを抽出しています。
ここでは1900年代生まれのメンバーを抽出できます。
後方一致
名前の最後に「子」の付くのメンバーを抽出しています。
メンバー表の「name」から「北野 日奈子」、「佐々木琴子」が抽出されます。
ワイルドカードについて
% 任意の0文字以上の文字列
_ 任意の1文字
▽ 【MySQL】ワイルドカードを使って あいまい検索する
4.いろいろな関数
Substring関数
文字列の「指定した位置」から、「指定した文字数分」だけ取得する関数です。
この場合は、name(名前)の「2文字目」から「1文字分」が「石」のデータを抽出しています。
ここでは「白石麻衣」が抽出されます。
▽ SUBSTRING関数 (文字列の指定した位置から指定した文字数分だけ取得する)
Concat関数
| CONCAT(“★”,name,”♪”) |
+――――――――――――――+
| ★白石麻衣♪ |
| ★齋藤飛鳥♪ |
| ★秋元真夏♪ |
| ★生田絵梨花♪ |
| (以降省略) |
+――――――――――――――+
複数の文字列を連結した文字列を取得する関数です。
▽ CONCAT関数 (複数の文字列を連結した文字列を取得する)
5.集約関数(sum,avg,min,max)
合計(SUM)
「no」の数値の合計を出しています。
SUMを使うとフィールドの合計値を計算することができます。
平均値(AVG)
noの平均値を求めています。
「GROUP BY」句と組み合わせると、グループ単位での平均値を取得することができます。
▽ AVG関数 (指定のカラムに格納されている値の平均値を取得する)
最小値(MIN) / 最大値(MAX)
noの最小値を求めています。
noの最大値を求めています。
▽ MAX関数 / MIN関数 (指定したカラムに格納されている値の最大値または最小値を取得する)