この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。今回は知識およびSQL(確認ドリル)について書く。(SQLはGoogle Big Queryに準拠)
知識(SQLのselect,結合)
試験において
- データベーススペシャリスト試験の午後では、SQLの穴埋め問題が出ることがある。
- 穴埋め自体はSQLにある程度精通していれば対応できる。
- ただし、資格の目的は「データベースを設計すること」に重点が置かれている。
- よって、検索にかかる時間や、対象とする行など「SQLのそのあと」について問われる。
- つまり…合格率を上げるには「SQLの基礎を理解し、穴埋めに対応できるようにする」ことと「応用について、過去問ベースで対応でいるようにする」必要がある。
select,whereについて
- やはり、良く出題されるのはselect文。
- 絞り込みの”where”句について。nullとの比較は「is null」(is null関数)
- likeについて。%は任意の文字列、_は任意の1文字。
- 集合関数(sum,count,avg,max,minなど)を用いた条件は、where句には書けない(havingに書く)ことは注意。
結合について
- 結合の記述方法は、「from~where」と「inner join~on」の2種類がある。
- 「inner join~on」で書く場合は、たとえば「select * from 学生 inner join 学部 on 学生.学部コード = 学部.学部コード」と書く。なお、on部分は「using(学部コード)」とも書ける。
- 「from~where」で書く場合は、たとえば「select * from 学生,学部 where 学生.学部コード = 学部.学部コード」と書く。
- なお、inner joinはonで指定した列が一致するもののみ取得する。他にも取りたい場合、外結合(left outer joinなど)や直積(cross join)を用いる。
9月22日復習時追記
- SQLは、午前2では頻出問題。TACテキストおよび過去5年分解いており、対策済。
- また、selectについては三好先生のSQLページでも確認済。
- 午後については「SQL問題」として過去問ベースで確認しており、対策済。
問題063(SQL確認ドリル)
問題文
- 「products」テーブルから、商品カテゴリ(product_category)と商品名(product_name)をハイフンでつないだ文字列(例:「ケーキ-レアチーズケーキ」を「cat_prod」カラムとして、
- また、その文字列の流されを「length」というカラム名で取得してください。
- 結果テーブルは「length」の長い順に3レコードに絞り込んで表示します。
concat,lengthのおさらい
- concatは引数に指定した文字列を結合できる。
- lengthは引数に指定した文字列の長さを取得できる。
- 具体的には以下のとおり。
考察
- データベーススペシャリスト資格について。今回は知識(SQLのselectと結合)を復習した。また、SQLの確認ドリルを解いた。お題は「商品リストについて、商品カテゴリと商品名を”-“で繋げた文字列の取得」および「その文字列の長さの取得」だ。concat,lengthを用いて記述した。
- 考察。学習においては、まず要点を抽象的に理解し、次に具体例としてアウトプットするのが良いと思う。抽象(本質)を理解すれば応用が効くからだ。たとえばデータベースなら「データはテーブルで管理する」「テーブルは集合であり関数である。意味のあるまとまりであり、入力に対し一意に出力が決まる」が大事な要点と考える。
考察のシンプル化と英訳(練習中)
- I feel learning abstract image at first is important. because it can use in many situation.
- (最初は抽象的なイメージを学ぶことが大事だと思います。それは多くの状況で使用できるからです)
参考資料
- 集中演習 SQL入門/木田和廣/株式会社インプレス
- 2022年度版 ALL IN ONE パーフェクトマスター データベーススペシャリスト/TAC
コメント