新入社員ブログ(堀) part2 ~社内学習・MySQLのちょっとした話~

こんにちは。22年度に入社した堀です。最近は鶏肉とレモンの組み合わせに食欲をそそられています。レモン系統のさっぱりしたおかずやお肉っていいですね。
前回は4月入社してからどんなことがあったのかを大まかにまとめていました。今回は外部研修から会社へ戻って行った「MySQLドリル」を行った時の話を少し書きたいと思います。

MySQLってなんだ?
データベース(DB)管理システムの一つです。DB管理システムはWeb開発や対応に必要なもので、大きな企業も用いています。

DBってなんだ?
DBとはシステムのデータの集まりであり、Webアプリケーションの開発に必要な土台・基礎部分になります。DBは3種類存在しますが、MySQLはリレーショナルデータベース(RDB)を扱います。

RDBってなんだ?
まず通販サイトを例に挙げると、ユーザ情報(ユーザーID、名前、誕生日など)や商品の情報(商品ID、商品名、金額など)、購入履歴情報(ユーザID、商品ID、購入日時など)があります。これらの情報をテーブルと呼びます。
テーブルをExcelの表のように関係を結び付けながら管理する、それがRDBなのです。

具体的なことが今は分からなくとも、弊社では新人研修のひとつに外部研修があり、DBの役割・種類・動かし方を学ぶことができるため安心してください。それでもわからないことがあれば、調べたり先輩社員の方に聞けたりできます。私がそうです。

社内でのMySQLドリル学習で印象に残ったこと
・わからない場合でも調べるか聞けば解ける環境だと再認識

初学者でも初めのうちは基礎を学んで自分で調べる、わからないなら確認・質問できたので、よかったなと改めて思います。

・使用できないコマンドがあり、代替案を考える場面があったこと
これに関しては、「うまくコマンドが動作しないのはなぜか?※」という疑問からgoogleなどで検索し、同じ場面に遭遇した方の質疑応答サイトを閲覧して理解できました。
しかし、サイトで得た知識がドリルの想定しているデータ出力と同じものなのか初学者の身では判断がし辛いため、先輩に見ていただきました。このようにして何とかドリルを埋めることができました。
※何のコマンドに悩まされたのか?
ここからは個人的な備忘録のようなものになります。
DB管理システムに種類があるということは、使えるコマンドと使えないコマンドがあるということ。少々込み入った話をすると、名前が一致しているデータのみを取り出すINTERSECT(和集合)、逆にそれ以外のデータを取り出すEXCEPT(差集合)の処理に悩みました。なぜか、コマンドが使えないのです。これらは列を揃えたうえで複数のテーブルを統合するUNION句を学ぶ際に出てきます。
解決方法はどのようにしたのか?
ただ、コマンドが使えないからと言ってそのコマンドの内容自体を再現できないわけではありませんでした。
共通する列(あるテーブルの軸となる列=主キー、その主キーとつながる他のテーブルの列=外部キー)でテーブル同士を結合するJOIN句があります。それに加えて、指定した条件と合致するIN、EXISTSのコマンドを活用すると上記の和集合と差集合を再現できました。

MySQLはどこでも触れられているように、Web開発にほぼ必須かつ初学者でも学びやすいシステムでした。

次回は社内の雰囲気または個人的な近況を書けたらと思います。それでは!