ブラウザだけでMySQLを即学習【サザエさんの例 その5】|テーブルの結合(内部結合)

この記事では、ブラウザだけでMySQLを「サザエさんの例」を通してサンプルのコードを書きながら学習する内容になっております。

途中からでもなるべく学習可能な様に書いております。

使用ブラウザはmyCompilerのMySQLを使っています。

今回は2つのテーブルを結合します。

1つ目のテーブルは、sazaefamilyです。

簡単にこのテーブルについて説明しますと、一番左のidが主キーで、あとはキャラクターの名前、性別、年齢、右端にjobIdというフィールドを新たに追加しました。

100が会社員、200が主婦、300が学生です。

2つ目のテーブルは、jobIdを主キーとして、それぞれの職業が書かれたテーブルjobcodeです。

jobIdはテーブルsazaefamilyでは外部キー、テーブルjobcodeでは主キーです。
この両方のテーブルにあるjobIdをINNER JOINを使って結合します。

結合のイメージ図です。

拙い図ですが、イメージをご覧頂いた所でブラウザにMySQLのコードを書いて行きます。


まず、新たにjobIdを付け足したテーブルsazaefamilyです。

-- sazaefamily table
CREATE TABLE sazaefamily (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL,
  age INTEGER NOT NULL,
  jobId INTEGER NOT NULL
);

-- sazaefamily values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性',54,100);
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性',24,200);
INSERT INTO sazaefamily VALUES (3, '磯野カツオ', '男性',11,300);
INSERT INTO sazaefamily VALUES (4, '磯野ワカメ', '女性',9,300);
INSERT INTO sazaefamily VALUES (5, '穴子さん', '男性',27,100);

-- fetch sazaefamily values
SELECT * FROM sazaefamily;

出力結果です。
無事にテーブルが表示されました。


次に、結合する新たなテーブルjobcodeを作って行きます。

-- jobcode table
CREATE TABLE jobcode (
  jobId INTEGER PRIMARY KEY,
  jobs TEXT NOT NULL
);


-- jobcode values
INSERT INTO jobcode VALUES (100, '会社員');
INSERT INTO jobcode VALUES (200, '主婦');
INSERT INTO jobcode VALUES (300, '学生');


-- fetch jobcode values
SELECT * FROM jobcode;

実行結果です。


2つのテーブルを結合して表示する表のイメージです。

nameとageはテーブルsazaefamilyから、jobsはテーブルjobcodeから取得しています。

結合して取得するコードと実行結果です。

SELECT sazaefamily.name, sazaefamily.age, jobcode.jobs FROM sazaefamily INNER JOIN jobcode ON sazaefamily.jobId = jobcode.jobId

ここまでのコードのまとめです。

-- sazaefamily table
CREATE TABLE sazaefamily (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL,
  age INTEGER NOT NULL,
  jobId INTEGER NOT NULL
);

-- sazaefamily values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性',54,100);
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性',24,200);
INSERT INTO sazaefamily VALUES (3, '磯野カツオ', '男性',11,300);
INSERT INTO sazaefamily VALUES (4, '磯野ワカメ', '女性',9,300);
INSERT INTO sazaefamily VALUES (5, '穴子さん', '男性',27,100);

-- fetch sazaefamily values
SELECT * FROM sazaefamily;



-- jobcode table
CREATE TABLE jobcode (
  jobId INTEGER PRIMARY KEY,
  jobs TEXT NOT NULL
);


-- jobcode values
INSERT INTO jobcode VALUES (100, '会社員');
INSERT INTO jobcode VALUES (200, '主婦');
INSERT INTO jobcode VALUES (300, '学生');


-- fetch jobcode values
SELECT * FROM jobcode;

-- inner join
SELECT sazaefamily.name, sazaefamily.age, jobcode.jobs FROM sazaefamily INNER JOIN jobcode ON sazaefamily.jobId = jobcode.jobId


お疲れ様でした。ブレイクタイムPhotoは、

しながわ花海道のコスモスです。

ご精読誠にありがとうございました。

【オススメ入門書】
3ステップでしっかり学ぶ My SQL入門

MySQL自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

Pythonの辞書をループを用いて「サザエさん」のキャラを取り出す

この記事を読むことで、

・Pythonの辞書の「キー」及び「値」とは何か

・辞書自体をそのまま表示

・「辞書.items()」を使って、辞書をループを使って取り出す

の学習が出来ます。

辞書の例として、国民的アニメの「サザエさん」のキャラクターの「職業をキー」に、「キャラクターを値」にしています。

辞書は{“キー”:”値” , “キー”:”値” ,・・・}の構造になっていて、サザエさんキャラを例にすると、{“大黒柱”:”磯野波平” , “主婦”:”フグ田サザエ”}などになります。

サザエさんキャラの中から、こちらの5名を用意しました。
辞書の名前は「chara_dic」です。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'フグ田タラオ','ペット':'タマ'}

まずは、ループで辞書のキーと値を取り出す前に、print関数でシンプルに辞書自体を表示させてみます。

コードはこちらです。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'フグ田タラオ','ペット':'タマ'}

#辞書自体を「そのまま」出力
print(chara_dic)

辞書を「そのまま」取り出した実行結果です。

無事に出力されましたが、少し見辛いですよね。

そこで、今度はこの辞書をループを使って出力してみます。


コードに下記を追加します。

キーになるのはkey:職業や特徴で、となるのはvalue:キャラクター名として、
forループで(key,value)を指定とすると、「大黒柱,磯野波平」から、「ペット,タマ」までの全てのメンバーを取り出せます。

#書き方は、「 辞書.items(): 」
chara_dic.items()

を使って、キーであるkeyと、であるvalueを取り出します。
ここまでのコードと実行結果です。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'フグ田タラオ','ペット':'タマ'}

#辞書.items()を使ってループで出力
for (key,value) in chara_dic.items():
  print(key,value)

これでも辞書の「キー」と「値」が表示されて、先程よりかは幾分見やすくなりましたが、もう少し日本語の体裁を整えたいと思います。


下記のようにprint文内の日本語を整えて表示します。

print(key+"の、"+value+"さんです。")

ここまでのコードと実行結果です。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'フグ田タラオ','ペット':'タマ'}

#辞書.items()を使ってループで出力
for (key,value) in chara_dic.items():
  print(key+"の、"+value+"さんです。")



もう少し「キー」と「値」を見やすくしたいので、コードをこの様に書き換えます。

print("【"+key+"】の、【"+value+"】さんです。")

ここまでのコードと実行結果です。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'フグ田タラオ','ペット':'タマ'}

#辞書.items()を使ってループで出力
for (key,value) in chara_dic.items():
  print("【"+key+"】の、【"+value+"】さんです。")

お疲れ様でした。ブレイクタイムPhotoは、

千葉県の房総半島、外房の御宿の海です。

ご精読ありがとうございました。

■ 独習Python ■
Kindle版
単行本(ソフトカバー)

Python自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

PythonのリストをループとIF文、enumerate関数を使ってサザエさんキャラを取り出してみた。

この記事を読むことで、

Pythonのリストを単純にループを使って取り出す方法

enumerate関数を使って取り出す方法

IF文の復習

strで数値と文字列をprint文で表示する方法

が可能になります

具体例として使うのは、国民的アニメのサザエさんです。
その中から4人の名前をcharacterというリストにこの様に格納しました。

chara=['波平','サザエ','カツオ','タマ']

リストの添え字は「0(ゼロ)」から始まります。
このリストの場合、末尾の「タマ」は3です。

このリストの添字0の波平さん、添字1のサザエさん、添字2のカツオまでが「人間」で、添字3のタマが「猫ちゃん」です。

そこで、typeという変数を用意して、添え字が3のタマの場合のみtypeを「猫ちゃん」に、それ以外は「人間」と表示する様にプログラミングしました。
シンプルなIF文による分岐をしています。

#サザエさんのキャラクターのリスト
chara=['波平','サザエ','カツオ','タマ']

#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i in range(len(chara)):
  if i==3:
    type='猫ちゃん'
  else:
    type='人間'
  print(chara[i]+':'+type)

実行結果です。

このコードにenumerate関数を使うと、添字と値を同時に表示させることが可能になります。

enumerateを使うことによって、リストの添字i=0,1,2,3とリストの中身のキャラクターを同時に扱えます。

#サザエさんのキャラクターのリスト
chara=['波平','サザエ','カツオ','タマ']

#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i,member in enumerate(chara):
  if i==3:
    type='猫ちゃん'
  else:
    type='人間'
  print(i,member+':'+type)

このように書き換えられます。

実行結果です。

更に最後のprint文を変更して、実行結果に表示する日本語を、より伝わりやすく改変することも可能です。

str(i)を使うことによって、数値を文字と一緒にprint文内に表記しております。

#サザエさんのキャラクターのリスト
chara=['波平','サザエ','カツオ','タマ']

#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i,member in enumerate(chara):
  if i==3:
    type='猫ちゃん'
  else:
    type='人間'
  print('家族No.'+str(i)+' '+member+'さんは「'+type+'」です。')

実行結果です。

この様に、enumerate関数を使うと表記の自由度が増します。
ループ、リストとセットで復習にもなりました。

お疲れ様でした。ブレイクタイムPhotoは、

千葉県房総半島外房、御宿の海です。
ここの海は透明度が高いことが魅力の一つです。

ご精読ありがとうございました。

■ 独習Python ■
Kindle版
単行本(ソフトカバー)

Python自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

Pythonで辞書を使ってサザエさんのキャラクターを職業別に出力

この記事を読むことで、

・Pythonの辞書の基本的な作り方

・キーと値の指定の仕方


・次のデータの追加方法


・辞書から「キーを指定」して「値を取り出す方法」


・標準入力の復習

が学べます。

この記事で作成する辞書の具体例として、国民的アニメ「サザエさん」のキャラクターを用います。

辞書は、「キー」と「値」で構成されていて、 {(波かっこ)} で括って、下記のように記述します。

chara_dic={'大黒柱':'磯野波平'}

上記の場合は【キー】が「大黒柱」で、【値】が「磯野波平」です。
キーと値は「:」で区切っています。

辞書は、「 ,(カンマ) 」で区切ることによって、データを追加出来ます。
同様にして、他のキャラクターも追加しました。

chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}

この辞書をそのまま出力するコードはこちらです。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」

chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}

print(chara_dic)

実行結果です。


次に、指定したキーの値のみを取り出してみます。
カツオくんにしようと思います。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」

chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}

print(chara_dic['小学生'])#ここでキーを指定しています。

実行結果です。


この例ではキーに’小学生’と入力しましたが、変数keyに代入する書き方も掲載致します。
今度は主役のサザエさんを出力します。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}

key='主婦'#キーを変数に代入します。

print(chara_dic[key])#変数キーを指定しています。

変数を使ったやり方でも無事に出力出来ました。


今度は、標準入力を使って、好きなキャラクターを表示出来る様に改変します。
そこで入力した内容をIF分岐を使って表示させます。

標準入力で入力する際にアルファベット1文字で簡単な操作性にする為、

「波平さん」の大黒柱を【d】、
「サザエさん」の主婦を「housewife」から【h】、
「カツオくん」の小学生を「Elementary school student」から【e】、
「タラちゃん」の幼児を「infant」から【i】、
「タマ」はペットの【p】

に致します。

標準入力は下記の様に、変数typeに代入します。

type=input()

ここで【d】や【i】などの文字を変数typeに格納します。

また、辞書に新たなキャラクターを追加致します。
キーは「その他」で、値は「伊佐坂先生」を加えました。

chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ','その他':'伊佐坂先生'}

それでは、ここまでのコードと実行結果です。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ','その他':'伊佐坂先生'}

#ここで標準入力を使用します。
print('【d】大黒柱、【h】主婦、【e】小学生,【i】幼児,【p】ペット 【記号】を入力>>>',end='')
type=input()


#標準入力で入力した半角英字によって分岐しています。
if type == 'd':
  key='大黒柱'
elif type=='h':
  key='主婦'
elif type=='e':
  key='小学生'
elif type=='i':
  key='幼児'
elif type=='p':
  key='ペット'
else:
  key='その他'
  
print(chara_dic[key])#変数キーを指定しています。

typeに【d】を入力した場合。

typeに【i】を入力した場合。

typeに指定の半角英字以外を入力した場合(仮に【x】と入れてみました。)


お疲れ様でした。ブレイクタイムPhotoは、

マクセルアクアパーク品川
(東京都品川区にある水族館です。)

ご精読ありがとうございました。

■ 独習Python ■
Kindle版
単行本(ソフトカバー)

Python自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

ブラウザだけで学習するMySQLの「サザエさん」自作サンプル集

この記事では、ブラウザmyCompilerのMySQLを用いて、元々入力されているサンプルの例から「サザエさんの例に」書き換えて学習するサンプルを作成致しました。

また、本格的に勉強したい方向けに入門書の紹介をしております。

<<学習メニュー>>

ブラウザだけでMySQLを早速学習開始(サザエさんの例)

年齢の列を追加して25歳以上のサザエさんキャラの抽出

列指定とワイルドカードと年齢順のキャラクター抽出

最大値|平均年齢やカウント|LIMIT|GROUP BYで男女別の平均年齢

テーブルの結合(内部結合)サザエさんキャラの職業テーブル


ご精読誠にありがとうございました。

【オススメ入門書】
3ステップでしっかり学ぶ My SQL入門


トップページに戻る

写真クリエイターとしての活動
自己紹介

ブラウザだけでMySQLを即学習【サザエさんの例 その4】|合計と平均|最大値と最小値|COUNT |LIMIT |GROUP BY

この記事では、ブラウザだけでMySQLを「サザエさんの例」を通してサンプルのコードを書きながら学習する内容になっております。

途中からでもなるべく学習可能な様に書いております。

使用ブラウザはmyCompilerのMySQLを使っています。

今回学習するテーブルのイメージです。

現在、ブラウザのMySQLの左側の画面はこの様なコードが入っています。

-- create a table
CREATE TABLE sazaefamily (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL,
  age INTEGER NOT NULL
);
-- insert some values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性',54);
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性',24);
INSERT INTO sazaefamily VALUES (3, '磯野カツオ', '男性',11);
INSERT INTO sazaefamily VALUES (4, '磯野ワカメ', '女性',9);
INSERT INTO sazaefamily VALUES (5, '穴子さん', '男性',27);
-- fetch some values
SELECT * FROM sazaefamily WHERE gender = '女性';
SELECT * FROM sazaefamily;
SELECT * FROM sazaefamily WHERE age>=25;
SELECT name FROM sazaefamily WHERE id=4;
SELECT name FROM sazaefamily WHERE name LIKE '%野%';
SELECT name,age FROM sazaefamily WHERE age<15;
SELECT name,age FROM sazaefamily ORDER BY age DESC;

テーブルを年齢順に並び替えて、この様なイメージになっています。


今日は、サザエさんのキャラクターの年齢の、平均や最大値、件数のカウントなどを求めて行きます。

まず、年齢の合計と平均を求めて見ます。

SELECT SUM(age),AVG(age) FROM sazaefamily;

実行結果です。

年齢の合計を求めるというのは、あまり実用的ではありませんね。
平均年齢については、小数点以下を表示させないようにROUND関数でAVG関数を囲いネストします。

SELECT SUM(age), ROUND(AVG(age)) FROM sazaefamily;

次に年齢の最大値と最小値を求めます。
年齢順に並べた表のイメージです。

SELECT MAX(age),MIN(age) FROM sazaefamily;

実行結果です。

年齢が高い順に3名抽出します。

SELECT * FROM sazaefamily ORDER BY age DESC LIMIT 3;

実行結果です。

この表の件数を求めます。

SELECT COUNT(*) FROM sazaefamily;

実行結果です。

年齢が平均以上のキャラクターの名前と年齢を求めます。

SELECT name,age FROM sazaefamily WHERE age >= (SELECT AVG(age) FROM sazaefamily);

実行結果です。

最後にGROUP BY を使って、男女別の平均年齢を求めます。

SELECT gender, ROUND(AVG(age)) FROM sazaefamily GROUP BY gender;

実行結果です。

ここまでのコードのまとめです。

-- create a table
CREATE TABLE sazaefamily (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL,
  age INTEGER NOT NULL
);
-- insert some values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性',54);
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性',24);
INSERT INTO sazaefamily VALUES (3, '磯野カツオ', '男性',11);
INSERT INTO sazaefamily VALUES (4, '磯野ワカメ', '女性',9);
INSERT INTO sazaefamily VALUES (5, '穴子さん', '男性',27);
-- fetch some values
SELECT * FROM sazaefamily WHERE gender = '女性';
SELECT * FROM sazaefamily;
SELECT * FROM sazaefamily WHERE age >= 25;
SELECT name FROM sazaefamily WHERE id = 4;
SELECT name FROM sazaefamily WHERE name LIKE '%野%';
SELECT name, age FROM sazaefamily WHERE age < 15;
SELECT name, age FROM sazaefamily ORDER BY age DESC;
SELECT SUM(age), ROUND(AVG(age)) FROM sazaefamily;
SELECT MAX(age), MIN(age) FROM sazaefamily;
SELECT * FROM sazaefamily ORDER BY age DESC LIMIT 3;
SELECT COUNT(*) FROM sazaefamily;
SELECT age, name FROM sazaefamily WHERE age >= (SELECT AVG(age) FROM sazaefamily);
SELECT gender, ROUND(AVG(age)) FROM sazaefamily GROUP BY gender;


お疲れ様でした。ブレイクタイムPhotoは、

隅田公園の梅の花です。

→ブラウザだけでMySQLを即学習【サザエさん】その5へ

ご精読誠にありがとうございました。

【オススメ入門書】
3ステップでしっかり学ぶ My SQL入門

MySQL自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

ブラウザだけでMySQLを即学習【サザエさんの例 その3】|LIKEでワイルドカード|ORDER BYで年齢順に並び替え

この記事では、ブラウザだけでMySQLを「サザエさんの例」を通してサンプルのコードを書きながら学習する内容になっております。

途中からでもなるべく学習可能な様に書いております。

使用ブラウザはmyCompilerのMySQLを使っています。

このレッスンで使用するテーブルのイメージです。

現在(前回まで)、ブラウザのMySQLの左側の画面はこの様なコードが入っています。

-- create a table
CREATE TABLE sazaefamily (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL,
  age INTEGER NOT NULL
);
-- insert some values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性',54);
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性',24);
INSERT INTO sazaefamily VALUES (3, '磯野カツオ', '男性',11);
INSERT INTO sazaefamily VALUES (4, '磯野ワカメ', '女性',9);
INSERT INTO sazaefamily VALUES (5, '穴子さん', '男性',27);
-- fetch some values
SELECT * FROM sazaefamily WHERE gender = '女性';
SELECT * FROM sazaefamily;
SELECT * FROM sazaefamily WHERE age>=25;

この表から25歳以上を抽出致します。

SELECT * FROM sazaefamily WHERE age>=25;

を追記して実行すると、テーブルイメージでは

という抽出がされて、右側の実行画面では、

の様になっております。
前回までの復習はここまでです。


今回は、主キーのidが「4」のワカメちゃんの名前の列のみを抽出してみます。

SELECT name FROM sazaefamily WHERE id=4;

イメージと実行結果です。

次に、名前に「野」が付くキャラクターを抽出致します。

SELECT name FROM sazaefamily WHERE name LIKE '%野%';

「%」はワイルドカードと言って、「ある文字を含む名前」を抽出出来ます。

イメージと結果です。

次に、名前と年齢の列のみで15歳未満のキャラクターを抽出致します。

SELECT name,age FROM sazaefamily WHERE age<15;

イメージと結果です。

最後に、年齢が高い順に並べます。

SELECT name,age FROM sazaefamily ORDER BY age DESC;

イメージと実行結果です。

ここまでのコードをまとめます。

-- create a table
CREATE TABLE sazaefamily (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL,
  age INTEGER NOT NULL
);
-- insert some values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性',54);
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性',24);
INSERT INTO sazaefamily VALUES (3, '磯野カツオ', '男性',11);
INSERT INTO sazaefamily VALUES (4, '磯野ワカメ', '女性',9);
INSERT INTO sazaefamily VALUES (5, '穴子さん', '男性',27);
-- fetch some values
SELECT * FROM sazaefamily WHERE gender = '女性';
SELECT * FROM sazaefamily;
SELECT * FROM sazaefamily WHERE age>=25;
SELECT name FROM sazaefamily WHERE id=4;
SELECT name FROM sazaefamily WHERE name LIKE '%野%';
SELECT name,age FROM sazaefamily WHERE age<15;
SELECT name,age FROM sazaefamily ORDER BY age DESC;

お疲れ様でした。ブレイクタイムPhotoは、

千葉県 房総半島 外房 御宿の海です。

→ブラウザだけでMySQLを即学習【サザエさん】その4へ


ご精読誠にありがとうございました。

【オススメ入門書】
3ステップでしっかり学ぶ My SQL入門

MySQL自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

ブラウザだけでMySQLを即学習【サザエさんの例 その2】|キャラクターの追加と年齢の列追加|WHEREで25歳以上を抽出

この記事では、ブラウザだけでMySQLを「サザエさんの例」を通してサンプルのコードを書きながら学習する内容になっております。

途中からでもなるべく学習可能な様に書いております。

使用ブラウザはmyCompilerのMySQLを使っています。


前回までの表のイメージです。

現在、ブラウザのMySQLの左側の画面はこの様なコードが入っています。

-- create a table
CREATE TABLE sazaefamily (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL
);
-- insert some values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性');
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性');
-- fetch some values
SELECT * FROM sazaefamily WHERE gender = '女性';

右側の実行を押したイメージと実行結果です。

上の表から「女性」のみを抽出して、

この様な抽出結果のイメージになり、右側の実行を押すと、

この様に実行されました。
前回までの復習は以上です。



キャラクターが2人だけなので、INSERT INTO sazaefamily で表にキャラクターを足して行きます。

ここで便利なショートカットキーは、既にあるキャラクターの行にカーソルがある状態で、[Alt]+[Shift]+[↓]を押すと複製出来て他のキャラクターを追加出来ます。

Macの方は[Alt]の代わりに[option]を押してみて下さい。

また、[Shift]を押さないと、移動になります。

完成形は、この様なイメージの表を作ります。
(穴子さんは私の推しです (笑) )

データ追加部分のコードです。

-- insert some values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性');
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性');
INSERT INTO sazaefamily VALUES (3, '磯野カツオ', '男性');
INSERT INTO sazaefamily VALUES (4, '磯野ワカメ', '女性');
INSERT INTO sazaefamily VALUES (5, '穴子さん', '男性');

この状態で実行を押してみます。
実行結果のイメージと結果です。

ここで、表全体を表示してみます。
SELECTと入力するとき、大文字で「SE」ぐらいまで入力して[Enter]を押すと入力がスムーズです。

-- fetch some values
SELECT * FROM sazaefamily WHERE gender = '女性';
SELECT * FROM sazaefamily;

実行結果です。
追加したキャラクターも表示されました。

次に、年齢の列を作ります。
まず、表の完成イメージです。

まずは、列「age」を加える、テーブル作成部分のコードです。
6行目に列を追加のコードを掲載しました。
INTEGERも大文字で「IN」ぐらいまで入力して、[Enter]を押すとスムーズに入力出来ます。

-- create a table
CREATE TABLE sazaefamily (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL,
  age INTEGER NOT NULL
);

注意!5行目の「gender」の行の最後に「,(カンマ)」を入力して下さい。

また、年齢を入力するコードです。

-- insert some values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性',54);
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性',24);
INSERT INTO sazaefamily VALUES (3, '磯野カツオ', '男性',11);
INSERT INTO sazaefamily VALUES (4, '磯野ワカメ', '女性',9);
INSERT INTO sazaefamily VALUES (5, '穴子さん', '男性',27);

実行して、表が作れたことを確認します。

それでは最後に、25歳以上のキャラクターを表示してみます。

-- fetch some values
SELECT * FROM sazaefamily WHERE gender = '女性';
SELECT * FROM sazaefamily;
SELECT * FROM sazaefamily WHERE age>=25;

実行結果のイメージと画面です。

ここまでのコードはこちらになります。

-- create a table
CREATE TABLE sazaefamily (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL,
  age INTEGER NOT NULL
);
-- insert some values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性',54);
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性',24);
INSERT INTO sazaefamily VALUES (3, '磯野カツオ', '男性',11);
INSERT INTO sazaefamily VALUES (4, '磯野ワカメ', '女性',9);
INSERT INTO sazaefamily VALUES (5, '穴子さん', '男性',27);
-- fetch some values
SELECT * FROM sazaefamily WHERE gender = '女性';
SELECT * FROM sazaefamily;
SELECT * FROM sazaefamily WHERE age>=25;

お疲れ様でした。ブレイクタイムPhotoは、

清瀬ひまわりフェスティバルのひまわりです。

→ブラウザだけでMySQLを即学習【サザエさん】その3へ


ご精読誠にありがとうございました。

【オススメ入門書】
3ステップでしっかり学ぶ My SQL入門

MySQL自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

ブラウザだけでMySQLを即学習 サンプルを利用して【サザエさん】の例|入門書の紹介も。

この記事では、オンラインIDEのブラウザに元から入っているサンプルデータを利用して、MySQLをスグに学習出来る内容と、本格的に勉強したい方向けの入門書を紹介しております。

使用するブラウザは、こちらのmyCompilerのMySQLの画面を使っていて、元々入力されているサンプルのコードを「サザエさんの例に」少しずつ書き換えながらMySQLの入門を習得を目指して行きます。

画面の左側に、この様なコードが書かれています。

2025年10月現在の画面ですので、内容が変わっている方はこちらからペーストしてみて下さい。

-- create a table
CREATE TABLE students (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL
);
-- insert some values
INSERT INTO students VALUES (1, 'Ryan', 'M');
INSERT INTO students VALUES (2, 'Joanna', 'F');
-- fetch some values
SELECT * FROM students WHERE gender = 'F';

一方右側の画面で緑の「コードを実行」を押すと、

この様に実行されます。

これは、テーブルの中から女性(ジェンダー「gender」が「F」のJoannaさん)の行を抽出した結果です。

ここから部分的にコードを見て、表のイメージと対応させて行きます。

コードのテーブルを作成する部分から見て行きます。

-- create a table
CREATE TABLE students (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL
);

この部分で、表「students(学生さん)」を作っています。
イメージはこんな感じの表です。

idの行の所にPRIMARY KEYと書かれていて、主キーに設定されています。
nameの列とgenderの列を設定して、NOT NULLで空欄にはしない様に設定しています

では、テーブルにデータを入力する部分を見て行きます。

-- insert some values
INSERT INTO students VALUES (1, 'Ryan', 'M');
INSERT INTO students VALUES (2, 'Joanna', 'F');

この部分のイメージは、この様な表になっています。
INSERT INTO 表の名前 VALUESで、表にデータを入力しています

最後に、条件にあった行(レコード)を抽出するコードを見て行きます。

-- fetch some values
SELECT * FROM students WHERE gender = 'F';

SELECT *で、表の全ての列、表の名前はstudentsで、性別が女性(F)のデータを抽出しました。

そのイメージの表です。


ここまでで、なんとなくMySQLで何をしているのか、ということが掴めましたが、外人さんの名前は私には良く分からないので、国民的アニメのサザエさんのキャラクターに表を書き換えて行きます。

テーブル名も「student」から「sazaefamily」に変えました。

まず、テーブルを作成する部分ですが、

-- create a table
CREATE TABLE sazaefamily (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL
);

2行目の「テーブル名のみ」を変えました。

次にデータの入力部分ですが、

-- insert some values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性');
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性');

と、INSERT INTO の後の表の名前の所を「sazaefamily」に、人物名を波平さんとサザエさんに書き換え、性別も日本語にしました。

ここまでで、この様なイメージの表が出来ています。

最後に表の条件を指定して抽出するWHEREの所を書き換えます。
SELECT * FROM の後のテーブル名を 「sazaefamily 」に、性別も「F」から「女性」に書き換えました。

-- fetch some values
SELECT * FROM sazaefamily WHERE gender = '女性';

これで実行をすると、画面右側にサザエさんの行だけが抽出されます。
表イメージと実行結果です。

では、緑色の「コードを実行」を押してみます。

無事に実行出来ました。

ここまでのコードをまとめます。

-- create a table
CREATE TABLE sazaefamily (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  gender TEXT NOT NULL
);
-- insert some values
INSERT INTO sazaefamily VALUES (1, '磯野波平', '男性');
INSERT INTO sazaefamily VALUES (2, 'フグ田サザエ', '女性');
-- fetch some values
SELECT * FROM sazaefamily WHERE gender = '女性';

では、このデータベースを保存します。
(2025年10月現在の手順です。)

画面上部のコードの上の所に「サザエさんでMySQLの練習」などの自分が分かるようなタイトルを入れます。(タイトルを入れないと保存出来ない仕様になっています)

右側の「コードを保存」を押します。

ブラウザのタブを閉じて、再度開きます。
コード上部の黒い所の右側の「最近」をクリックします。

「このサイトを離れる」を選択して、先程の保存の際に付けた名前をクリックします。

このままですと編集ができないので、「コピーを作成」をクリックします。

すると、編集が出来るようになりました。

ただ、ここまで保存の手順を解説しておいて何なのですが、このブラウザを使うユーザー数が多いので、使い慣れているメモ帳などのテキストエディタやGoogleドキュメント等に貼り付けて保存して置いた方が次回からの学習がやり易いです。

コピー作成の右隣の青いボタンに、ダウンロードやリンクのコピーもあるので、読者様が一番手軽に感じる保存方法が望ましいです。

お疲れ様でした。ブレイクタイムPhotoは、

いたばし花火大会2025です。



→ブラウザだけでMySQLを即学習【サザエさん】その2へ

ご精読誠にありがとうございました。

【オススメ入門書】
3ステップでしっかり学ぶ My SQL入門

MySQL自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

モバイルバージョンを終了