-- 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;
TEST START
RPUSH
LAD GR1,4;←GR1に数を指定
SRL GR1,1;1ビット右へシフト
JOV OVER;オーバーフローした場合はラベルOVERへジャンプ
OUT EVEN,LEN;偶数の旅先「北海道」を出力
JUMP FIN;ラベルFINへジャンプ
OVER OUT ODD,LEN2;奇数の旅先「沖縄」を出力
FIN RPOP;終了のFINラベル
RET
EVEN DC 'HOKKAIDO';偶数ラベル
LEN DC 8;文字数
ODD DC 'OKINAWA';奇数ラベル
LEN2 DC 7;文字数
END
TEST START
RPUSH
LAD GR1,7;←GR1に数を指定
SRL GR1,1;1ビット右へシフト
JOV OVER;オーバーフローした場合はラベルOVERへジャンプ
OUT EVEN,LEN;偶数の旅先「北海道」を出力
JUMP FIN;ラベルFINへジャンプ
OVER OUT ODD,LEN2;奇数の旅先「沖縄」を出力
FIN RPOP;終了のFINラベル
RET
EVEN DC 'HOKKAIDO';偶数ラベル
LEN DC 8;文字数
ODD DC 'OKINAWA';奇数ラベル
LEN2 DC 7;文字数
END
TEST START
RPUSH
;←GR1に数を指定
;1ビット右へシフト
;オーバーフローした場合はラベルOVERへジャンプ
;偶数の旅先「北海道」を出力
;ラベルFINへジャンプ
;奇数の旅先「沖縄」を出力
FIN RPOP;終了のFINラベル
RET
EVEN DC 'HOKKAIDO';偶数ラベル
LEN DC 8;文字数
ODD DC 'OKINAWA';奇数ラベル
LEN2 DC 7;文字数
END
TEST START
RPUSH
IN FOOD,NUM ;好きな食べ物を入力
OUT FOOD,NUM ;その食べ物を出力
OUT MOJI,LEN ;文字列「食べたい」を出力
RPOP
RET
FOOD DS 30;食べ物FOODの格納場所を確保しておく
NUM DS 1;インプットボックスに入力した、文字数NUMの格納場所を確保しておく
MOJI DC 'TABETAI!!';文字列に「食べたい」を格納しておく
LEN DC 9;「食べたい!!」の文字数を格納しておく
END
TEST START
RPUSH
;好きな食べ物を入力
;その食べ物を出力
;文字列「食べたい」を出力
RPOP
RET
;食べ物FOODの格納場所を確保しておく
;INPUTBOXに入力した文字数NUMの格納場所を確保しておく
;文字列に「食べたい(TABETAI!!)」を格納しておく
;「食べたい」の文字数を格納しておく
END