見出し画像

【開始39日目】プログラミング学び日記_MySQL_Python_ライブラリ情報

 このnoteは、31歳未経験からエンジニアを目指して勉強していく記録を綴っているものです。現在はAdTechでカスタマーサクセスを担当しつつ、色んなチャンスに恵まれ、CS業務や子育てと並行しながらチャレンジしています。

 これからプログラミングを始める方にとってのTipsやモチベアップに繋げられるように頑張りたいと思っています。
--------------------------------------------

 今日は日中に来客があり、朝と夜に学習を進めました。MySQLの入門書を中心に、Paizaは昨日やった複雑なコードの記述を復習しました。


今日やったこと
・基礎からのMySQL(80分)
・paizaの問題集(10分)
・YouTubeのPython関連動画(20分)
・本記事の執筆(20分)
合計:130分


学んだこと

●MySQLにおけるUNIONとJOINの違い
 UNIONは単純に複数のテーブルの「レコード」を足し合わせるもので、足した分レコード数が増えるイメージ(縦に増える)です。一方で、JOINは何かのキーでテーブル同士を結び付けて「カラム」を結合するもので、足した分カラム数が増えるイメージ(横に増える)です。また、JOINは内部結合(一致するレコードを取り出すような結合)を表しており、INNER JOINと記述しても同じ結果を得られます。

↓UNION とJOINのコード例(ついでにINとNOT INの使い方もメモします)

# UNION
(SELECT * FROM テーブル1) UNION (SELECT * FROM テーブル2);
# UNION ALL (「重複データを省く」作業をせずに素早く抽出する方法)
(SELECT * FROM テーブル1) UNION ALL (SELECT * FROM テーブル2);
 
# JOIN
SELECT tb.id, tb1.name, tb.sales 
    FROM tb 
JOIN tb1
    ON tb.id = tb1.id
 
# INとNOT IN (A101~105のレコードだとしたら、以下は同じ結果が得られる)
SELECT * FROM テーブル WHERE id not IN ('A101');
SELECT * FROM テーブル WHERE id IN ('A102', 'A103', 'A104', 'A105') :



●最新のライブラリ情報(MediaPipe、FastAPI、SQLModel)
 中身を理解できているわけではないですが、それぞれの概要をメモします。MediaPipeは動画などのストリーミングメディアを利用した機械学習パイプラインを構築するためのフレームワークです。顔検出や物体検出がかなり高精度にできるみたいで、現職の事業とも相性が良さそうだなと感じています。
 FastAPIはPython初学者がAPI開発するのにかなり良いライブラリとのこと。コードの分かりやすさや公式ドキュメントの豊富さ等、初学者にとって良い環境で使えるみたいです。
 SQLModelはFastAPIの開発者が開発しているデータベース操作のためのライブラリで、FastAPIの使いやすさからこちらも期待されているようです。


これまで修了したコース等

【Paiza】
Aランクレベルアップメニュー 9/49問(18%完了)
配列メニュー      27/64問(42%完了)
条件分岐メニュー    20/25問(80%完了)
二重ループメニュー   19/19問
配列活用メニュー    26/26問
文字列処理メニュー   30/30問
Bランクレベルアップメニュー 62/62問
Cランクレベルアップメニュー 30/30問
ランクB合格
ランクC合格

【書籍/ブログ】
Pythonデータベースプログラミング 93/194頁 ※2週目
基礎からのMySQL     198/514頁(39%完了)
Web技術の基本      57/189頁(30%完了)
京大のPython教科書    116/201頁(58%完了)
Pythonエンジニアファーストブック読了

【Progate】
Python Ⅰ~Ⅴ
Python アプリ版 コースⅠ~Ⅴ
SQL Ⅰ~ Ⅳ
SQL アプリ版 コースⅢ
HTML&CSS 初級編

【その他】
VSCodeの環境構築
Anacondaの環境構築
MySQLの環境構築

この記事が気に入ったらサポートをしてみませんか?