項 1 / 8
目的と使う場面を知る
何ができるようになるか、何のために学ぶかを確認します。
今回できるようになること
同じ名前の別会社の書類が検索結果へ混ざらない。
この節で学ぶ理由と、前後の節とのつながり
このセクションの位置づけ
なぜ、今これを学ぶのか
会社の書類一覧から、自分の書類を探します。表の見方から始め、検索のコードへ進みます。
この後、何につながるか
表から行を選ぶ基本を使い、次は検索文字に記号があっても他人の行を返さない検索を作ります。
実務では、どんな場面?
SQLiteで会社を指定して書類を探すため、架空のデータを自分のパソコンで処理します。
読み始める前に:この節の前提と言葉
会社の書類一覧から、自分の書類を探します。表の見方から始め、検索のコードへ進みます。
- へ検索などを指示する言語
- 返す行の条件を指定する部分
今回のreportsという表には、A社とB社の二件の架空書類があります。companyは会社、ownerは持ち主、bodyは書類の本文です。二件ともownerはaliceですが、会社が違います。同じ名前だからといって両方を見せてよいわけではありません。
- 表の行は一件
- 列は会社や持ち主
- 必要な行と列を選ぶ
は表から何を探すかなどを伝える言葉です。 bodyは本文の列を返す、 reportsはreportsという表から探す、 owner = 'alice'は持ち主がaliceの行を選ぶ指定です。
今回のquery.txtにはこの命令が入っています。会社の列companyも合わせる条件を足します。次のの節では、利用者の値を命令とは別に渡す方法へ進みます。
- FROMで表を選ぶ
- WHEREで行を絞る
- SELECTで返す列を選ぶ
は両方の条件、は少なくとも一方の条件が合うことを表します。今回欲しいのはA社のaliceの書類です。持ち主が同じでもB社の書類は返しません。
query.txtへ会社の条件を加えたら、返った本文がA社の書類だけか確認します。分類名や12行の表は別の検索の例であり、この配布データにはありません。
- 会社が一致
- かつ持ち主も一致
- 二条件に合う書類だけ
exercise.pyが毎回作る小さなの表に対し、query.txtの検索を行います。修正前は二社の書類が出てしまいます。会社と持ち主を合わせた後に、返る本文がどう変わるかを予測して実行します。
余分な行があれば条件不足、必要な行がなければ値や条件の絞りすぎを調べます。result.jsonを書き換えるのでなくquery.txtを直し、再実行して結果を作り直してください。
- 同じ架空の表
- 検索条件だけを変更
- 返る書類の違いを比較
別の条件で使う準備
入力値を安全に渡すSQL実習へ進む
- 書類の表を読み、今回必要な会社・持ち主・検索語に当てはまる行を確認します。
- WHEREの条件を一つだけ変え、返る行のIDを比べます。
- 必要な行が欠けたり、見せてはいけない行が混ざったりする理由を説明します。
ここでは実務で条件が増えた場合の考え方も紹介しました。今回の実習で操作する範囲は、次の「自分のパソコンで確かめる」で確認します。追加の別課題を提出する必要はありません。
SQLiteで会社を指定して書類を探す
本文の知識を、この実習でどう使うか
のは行を選ぶ条件です。同じ名前の人が別会社にもいるため、持ち主だけでなく会社も合わせます。
- 書類の表
- 会社と持ち主で絞る
- 返った本文の一覧
結果が違ったときに考えること:は一方だけ合う行も選びます。別会社の書類が混ざったら、会社の条件をで結んでいるか確認します。
同じ名前の別会社の書類が検索結果へ混ざらない。
WindowsまたはMacの操作手順、準備に失敗したときの確認方法、実行コマンドは実習画面に用意しています。ページ下部の「準備から実習を始める」から進んでください。
この実習の架空データで確認した結果です。実際の利用者や本番システムの安全性を保証しません。