-- 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;
実行結果です。
次に年齢の最大値と最小値を求めます。 年齢順に並べた表のイメージです。
SELECT MAX(age),MIN(age) FROM sazaefamily;
実行結果です。
この表の件数を求めます。
SELECT COUNT(*) FROM sazaefamily;
実行結果です。
最後に、年齢が平均以上のキャラクターの名前と年齢を求めます。
SELECT name,age FROM sazaefamily WHERE age >= (SELECT AVG(age) FROM sazaefamily);
実行結果です。
ここまでのコードのまとめです。
-- 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;
SELECT MAX(age),MIN(age) FROM sazaefamily;
SELECT COUNT(*) FROM sazaefamily;
SELECT name,age FROM sazaefamily WHERE age >= (SELECT AVG(age) FROM sazaefamily);
-- 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;
-- 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 で表にキャラクターを足して行きます。
-- 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;
-- 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';
-- 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」に、人物名を波平さんとサザエさんに書き換え、性別も日本語にしました。
ここまでで、こんな感じの表が出来ています。
最後に表の条件を指定して抽出する箇所を書き換えます。 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 = '女性';