データベース、SQL文の"簡単な"覚え方 入門①
本ページはmySQLを想定して作成した記事です。一部内容は他DBでは実行できない可能性もあります。データベースの初期構築については省略します。
目次
1、前準備
2、単一テーブルでの検索(SELECT,FROM)
3、単一テーブルでの検索(WHERE句)
本文で分からない所がある場合は、Twitterのダイレクトメッセージでお気軽にお聞きください。 → 筆者にダイレクトメッセージ
1、前準備
下記の文を実行してください。
(下記のSQL文の意味については、まだ理解出来なくて問題ありません)
CREATE DATABASE shop;
CREATE TABLE shop.customer (
cusID char(4) comment '顧客ID' PRIMARY KEY,
Name varchar(255) comment '顧客名' ,
age int comment '年齢' ,
kingaku int comment '利用金額'
);
USE shop;
INSERT INTO customer VALUES('C001', '山田太郎',45,45000);
INSERT INTO customer VALUES('C002', '鈴木一郎',52,23000);
INSERT INTO customer VALUES('C003', '佐藤光一',23,33000);
INSERT INTO customer VALUES('C004', '福田美鈴',22,1000);
INSERT INTO customer VALUES('C005', '大山美香',31,150000);
INSERT INTO customer VALUES('C006', '木本康',75,450000);
INSERT INTO customer VALUES('C007', '島田浩平',33,87500);
INSERT INTO customer VALUES('C008', '中田拓哉',21,300000);
INSERT INTO customer VALUES('C009', '樋口一葉',20,230000);
INSERT INTO customer VALUES('C010', '野口英雄',42,6000);
2、単一テーブルでの検索(SELECT,FROM)
前準備では、顧客を管理するテーブルを作成しました。
作成したテーブルを使用して簡単な検索を行いましょう。
下記の文を実行してください。
SELECT cusID,Name
FROM customer;
実行結果
==================================
「SELECT」では、閲覧したい列を指定します。今回は cusID、Nameを指定しました。上記のコードのcusIDをageに変えたり、Nameを消したりすると表示される列が変わります。実際に書き換えて実行してみてください。複数の列選択する場合は「,」で区切る必要があります。
よくあるミス
→SELECT、FROMの後に半角スペースが入っていない
→文の最後に「;」を記述していない
→「;」は、”この文はココで終了です”の合図
==================================
「FROM」ではテーブルを指定しています。
今回の記述
SELECT <列名><列名>
FROM <テーブル名>
3、単一テーブルでの検索(WHERE句)
WHERE句は、SQLで最初につまずく問題です。
まずは数値に対して条件を付けるWHERE句をご紹介します。
下記の文を実行してください。
SELECT cusID,name,age
FROM customer
WHERE age <= 30;
実行結果
これは、age(年齢)が30以下の顧客を抽出しています。
さきほど使用した不等号「<=」は、〇〇より小さい"を表します。
よくあるミス
→不等号が全角になっている
今回の記述
SELECT <列名><列名><列名>
FROM <テーブル名>
WHERE <列名> <不等号> <数値>
==================================
では、上記以外のパターンを実行してもらいます。不等号や列名を変えて、どう書き換えたら良いか、考えて実行してみてください。
①age(年齢)が30歳より上のcusID(顧客ID),Name(顧客名),age(年齢)の顧客を抽出
②age(年齢)が42歳のcusID(顧客ID),Name(顧客名),age(年齢)の顧客を抽出
③kingaku(利用金額)が10万円以上のcusID(顧客ID),Name(顧客名),age(年齢),kingaku(利用金額)を抽出
解答(実行結果は省略)
↓
↓
↓
↓
↓
↓
↓
↓
①
SELECT cusID,name,age
FROM customer
WHERE age > 30;
②
SELECT cusID,name,age
FROM customer
WHERE age = 42;
③
SELECT cusID,name,age,kingaku
FROM customer
WHERE kingaku >= 100000;
または
SELECT *
FROM customer
WHERE kingaku >= 100000;
→SELECT文での「*」は、全てを表します。FROMで選択したテーブルの全ての列を抽出したい時に使用できる。
==================================
次に文字列に対して条件を付けるWHERE句をご紹介します。
下記を実行してください。
SELECT *
FROM customer
WHERE cusID = 'C002';
実行結果
上記は、cusID(顧客ID)が、’C002’という文字列と完全一致するデータを抽出する文です。上記の文の様に、文字列を条件とする場合は、対象の文字列を「’」シングルコーテーションで囲う必要があります。
下記を実行してください。
SELECT *
FROM customer
WHERE Name LIKE '%一_';
実行結果
上記で使用した「LIKE句」では、後ろから2番目の文字が'一'である顧客名を検索しています。
LIKE句を知らない人にとっては、これは少し複雑に感じますが、実は単純です。
今回の記述
SELECT <列名>
FROM <テーブル名>
WHERE LIKE <列名> <文字列>
まず、対象の列名を選択し、どういう文字列を検索したいか考えます。
それを、下記に当てはめて考えます。
例えば、’山’が含まれている顧客名を検索したい場合のLIKE句
→WHERE Name LIKE '%山%'
例えば ’山’が先頭から2番目に含まれている顧客名を検索したい場合のLIKE句
→WHERE Name LIKE '_山%'
例えば ’山’が後ろから3番目に含まれている顧客名を検索したい場合のLIKE句
→WHERE Name LIKE '%山__'
例えば ’一’が最後の文字になっている顧客名を検索したい場合のLIKE句
→WHERE Name LIKE '%一'
==================================
まだ複雑に感じていても、繰り返し実行してみることで、簡単に覚える事ができます。(LIKE句だけに限った話ではないが)
SQL文は、ノートに書き写したりするより、実行を繰り返して覚えた方が早いと思います。
WHERE句については、今ココに掲載した内容以外にも多くの条件式があります。その条件式については次の記事に掲載します。(要望があれば)
この記事が気に入ったらサポートをしてみませんか?