データベース
”商品”表に対するSQL文と同じ結果が得られるSELECT文はどれか。 〔SQL文〕 SELECT * FROM 商品 WHERE 仕入先ID IN ('M002', 'M004')
| 商品ID | 商品名称 | 仕入先ID | 単価 |
|---|---|---|---|
| S001 | 冷蔵庫 | M001 | 155,000 |
| S002 | 食器洗い機 | M002 | 85,000 |
| S003 | 電子レンジ | M003 | 78,000 |
| S004 | 炊飯器 | M003 | 32,000 |
| S005 | コーヒーメーカー | M004 | 15,000 |
| S006 | ホットプレート | M004 | 12,000 |
ア.SELECT * FROM 商品 WHERE 仕入先ID = 'M002' AND 仕入先ID = 'M004'
イ.SELECT * FROM 商品 WHERE 仕入先ID = 'M002' INTERSECT SELECT * FROM 商品 WHERE 仕入先ID = 'M004'
ウ.SELECT * FROM 商品 WHERE 仕入先ID = 'M002' OR 仕入先ID = 'M004'正解
エ.SELECT * FROM 商品 WHERE 仕入先ID BETWEEN 'M002' AND 'M004'
解説
IN句は「この招待リストに名前がある人は入場OK」という仕組み。リストの中のどれか一つに一致すればOKなので、本質はORの連続です。
なぜ ウ が正解か
ウのORは「M002か、あるいはM004か」と一行一行に問いかける。INも内部的にまったく同じ動きをしていて、候補が増えるほどORをズラズラ書く手間を省くために生まれたのがINです。つまりIN ('M002','M004') は 'M002'=true OR 'M004'=true の糖衣構文であり、返ってくる行も完全に一致します。
出典: 基本情報技術者試験 令和7年 公開問題
← 前の問題
次の関数従属を満足するとき、成立する推移的関数従属はどれか。ここで、“A→ B”は Bが Aに関数従属していることを表し、“A→{B、C}”は、“A→B”かつ“A→ C”が成立することを表す。 〔関数従属〕 {注文コード、商品コード}→{顧客注文数量、注文金額} 注文コード →{注文日、顧客コード、注文担当者コード} 商品コード →{商品名、仕入先コード、商品販売価格} 仕入先コード →{仕入先名、仕入先住所、仕入担当者コード} 顧客コード →{顧客名、顧客住所}
次の問題 →
トランザクションが、データベースに対する更新処理を完全に行うか、全く処理し なかったかのように取り消すか、のどちらかの結果になることを保証する特性はどれ か。