講演動画はこちら:
https://youtu.be/GEl8AfgI35g
講演者:
小林 浩之(Epic Games Japan)
https://twitter.com/hannover_bloss
本スライドは2021年7月25日に行われたオンライン勉強会「UE4 Character Art Dive Online」の講演資料となります。
イベントについてはこちら:
https://www.unrealengine.com/ja/blog/epicgamesjapan-onlinelearning-13
講演動画はこちら:
https://youtu.be/GEl8AfgI35g
講演者:
小林 浩之(Epic Games Japan)
https://twitter.com/hannover_bloss
本スライドは2021年7月25日に行われたオンライン勉強会「UE4 Character Art Dive Online」の講演資料となります。
イベントについてはこちら:
https://www.unrealengine.com/ja/blog/epicgamesjapan-onlinelearning-13
33. 2. データベース(mysql)の操作
2-6. データの検索(3)
◆ WHERE句の使い方
WHERE句は 「行を絞りこむ条件を書く場所」
比較する記号(比較演算子)例 (参考:http://dev.mysql.com/doc/refman/5.1/ja/comparison-operators.html)
記述例 意味 記述例 意味
a=b a と b が等しい a>b a が b より大きい
a != b a と b が等しくない a<b a が b より小さい
a <= b a が b 以下 a IS NULL a が 空っぽ(NULL値)
a >= b a が b 以上 a IS NOT NULL a が 空っぽじゃない
a LIKE '表現' a が 表現に合致する a NOT LIKE '表現' a が 表現に合致しない
LIKE演算子の'表現'について(「_」「%」の使い方)
記号 意味 使用例 意味
_ そこに1文字の
何かがある __
name LIKE ' a ada'
name は、1文字目と3文字目に何かの文字があり、
2文字目が「a」、4文字目以降が「ada」である。
(アンダーバー)
そこに0文字以上の nameは、「ada」を含む全ての文字列。
% 何かがある name LIKE '%ada%' ada、Wada、adachi、 Tada、 WadaBen など全てOK。
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
34. 2. データベース(mysql)の操作
2-6. データの検索(4)
条件の組み合わせ(AND、OR、()の使い方)
記述例 意味
a = b AND b = c a と b が等しく、かつ b と c が等しい
a = b OR b = c a と b が等しいか、または b と c が等しい
a = b AND b = c OR a > 5 「aとbが等しく、かつbとcが等しい」か、または「aが5より大きい」
a = b AND (b = c OR a > 5) 「aとbが等しく」、かつ「bとcが等しいか、またはaが5より大きい」
a >= 10 AND a < 100 a が 10以上100未満
a < 10 AND a > 100 a が 10より小さく、かつ100より大きい(ありえない)
a + b > 10 OR b < 5 a + b が10より大きいか、または b が5より小さい
( a = 0 OR b = 1 ) OR c = 2 「aが0 または bが1」であるか、または 「cが2」である
a = 0 OR ( b = 1 OR c = 2 ) 「aが0」であるか、または「bが1 または cが2」である
「=, !=, <=, >=, <, >, IS NULL, IS NOT NULL, LIKE」 > 「AND」 > 「OR」
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
35. 2. データベース(mysql)の操作
2-6. データの検索(5)
◆ 条件式理解度確認問題
問題 どんな意味??
age > 10
name IS NULL
uid = '0001'
age < 22 AND gakuseki LIKE '07%'
gakunen >= 2 OR gakka = 'AW'
どう書く? 意味
age が 18以上、65未満である
name が 「T」 で始まり「a」で終わる
gakunen が 1 であるか、または gakka が「JO」である
gakuseki が 「09JZ」で始まり、かつ bukatsu が空っぽである
gakka が 「J」から始まる2文字で、age が 20 以下である
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
36. 2. データベース(mysql)の操作
2-6. データの検索(6)
◆ 条件式理解度確認問題 解答
問題 どんな意味??
age > 10 age が 10 より大きい
name IS NULL name が空っぽである
uid = '0001' uid が 「0001」である
age < 22 AND gakuseki LIKE '07%' age が 22より小さく、かつ gakuseki が「07」から始まる
gakunen >= 2 OR gakka = 'AW' gakunen が 2以上であるか、または gakka が「AW」である
どう書く? 意味
age >= 18 AND age < 65 age が 18以上、65未満である
name LIKE 'T%a' name が 「T」 で始まり「a」で終わる
gakunen = 1 OR gakka = 'JO' gakunen が 1 であるか、または gakka が「JO」である
gakuseki LIKE '09JZ%'
AND gakuseki が 「09JZ」で始まり、かつ bukatsu が空っぽである
bukatsu IS NULL
gakka LIKE 'J_' AND age <= 20 gakka が 「J」から始まる2文字で、age が 20 以下である
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
37. 2. データベース(mysql)の操作
2-6. データの検索(7)
◆ SELECT文理解度確認問題
user テーブル
uid pass expert mail age
0001 0001pass 織田信雄 nobuo@example.com 32
0002 pass0002 野比のび太 nobita@example.com 10
0003 00030003 ジャッキー jackey@example.com 55
この user テーブルから、次の内容を表示する
SELECT文を書き、phpMyAdminで実行しよう。
1) age が 30 以上の行のuid, expert を表示する
2) mail が「no」から始まる行のpass を表示する
3) expert がジャッキーであるか、または
mail に 「ta」を含む行の全ての列を表示する
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
38. 2. データベース(mysql)の操作
2-6. データの検索(8)
◆ SELECT文理解度確認問題 解答
1) age が 30 以上の行のuid, expert を表示する
SELECT uid, expert FROM user
WHERE age >= 30
2) mail が noから始まる行のpass を表示する
SELECT pass FROM user
WHERE mail LIKE 'no%'
3) expert がジャッキーであるか、または
mail に 「ta」を含む行の全ての列を表示する
SELECT * FROM user
WHERE mail LIKE '%ta%' OR expert = 'ジャッキー'
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
39. 2. データベース(mysql)の操作
2-7. データの更新(1)
◆ phpMyAdminでUPDATE文を確認
phpMyAdminで「編集」を実行すると、
UPDATE文が表示されます
UPDATE `gorinphp0729`.`user`
SET `expert` = '野比のびすけ'
WHERE `user`.`uid` = '0001'
LIMIT 1
少し省いて、次のように書いても問題ありません。
UPDATE user
SET expert = '野比のびすけ'
WHERE uid = '0001'
では、UPDATE文の構文を確認してみましょう。
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
46. 2. データベース(mysql)の操作
2-8. データの削除(4)
◆ DELETE文理解度確認問題 解答
1) uidが「0003」で、かつage が40以下の行を削除
DELETE FROM user
WHERE uid = '0003' AND age <= 40
2) pass が 「s」で終る行を削除
DELETE FROM user
WHERE pass LIKE '%s'
3) uidが「0003」であるか、またはageが40以上の行を削除
DELETE FROM user
WHERE uid = '0003' OR age >= 40
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.