データベーススペシャリスト資格|2022年10月挑戦ログ 6月9日|SQL(関数の確認ドリル)

高度IT・基礎知識

この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。

今回は「関数の確認ドリル」について書く

※注意点として、SQLはDBMSによって作法が異なる。この記事はGoogle Big Queryに準拠するものであることをお含みおき願いたい。

問題025(SQL 関数の確認ドリル)

問題文

  • 「customers」テーブルの「name」フィールドには、氏名が半角スペース区切りで格納されています。
  • 姓が「○川」(川の前に1文字存在し、「川」で終わる)、
  • 名が「○○子」(子の前に2文字存在し、「子」で終わる)に該当する
  • 女性について、フルネーム(name)、姓名の名(first_name)の2カラムを取得してください。
  • 正規表現を使わなくても記述できますが、できれば正規表現にチャレンジしてください。

likeのおさらい

  • likeの引数は「%が任意の数の任意の文字、_が1つの任意の文字、バックスラッシュがエスケープ処理」
  • これで問題を解く場合、「”_川 %”」(任意1文字+川+半角スペース+任意複数文字)かつ「”% __子”」(任意文字+半角スペース+任意2文字+子)となる。
  • 絞り込み条件に女性(gender=2)を加え、姓名の名を取得(substr関数)する。結果は以下のとおり(姓名のうち名を取得する場合、instr関数を組み合わせる)

正規表現のおさらい

  • 正規表現はより柔軟な指定を行い、文字や数字を確認・抽出できる。
  • 文字列に関する正規表現については過去記事参照。
  • まず、「^」(次の文字で始まる)~「$」(直前の文字で終わる)で囲む形にする。
  • 次に、「.」(任意の1文字)と「\s」(半角スペース)を組み合わせ条件を作る。
  • 最後に「()」で括り、取得部分を指定する。具体的には以下のとおり。

考察

  • SQLについて。基本的なSQL関数について学習完了した。今回は「関数についての確認ドリル」を解いた。(曖昧な条件での文字列抽出、サブクエリ)
  • 考察。1日最低1問はSQLに触れていると、自然に扱えるようになってきた実感がある。言語と同様に”慣れ”てきたこともあるだろうが、自分で構文を組み立ててすぐ反応が返ってくる”フィードバックの速さ”が楽しいこともある。これからもぜひ続けていきたい。

考察のシンプル化と英訳(練習中)

  • I can use SQL naturally. because I solve at least one SQL problem in a day.
  • (SQLを自然に使えるようになってきた。なぜなら、私は1日に最低1問はSQLの問題を解くからだ)

参考書籍(該当箇所)

  • 集中演習 SQL入門/木田和廣/株式会社インプレス(SQL確認ドリル)

コメント

タイトルとURLをコピーしました