見出し画像

【開始31日目】プログラミング学び日記_Python_SQL

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

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


 今日は日中に時間を作れました。そして勉強は関係ないですが、ぎっくり腰の余波で出ている足の神経痛がかなり酷くなってきました・・・接骨院で診てもらってますが、普通に歩くことさえできない。。笑

早く治したい。
だがしかし、子供を抱っこするたびに負担がかかっているらしく、しばらくは無理か・・・



今日やったこと
・基礎からのMySQL(160分)
・Pythonデータベースプログラミング(40分)
・Paizaの問題集(80分)
・本記事の執筆(30分)
合計:310分


学んだこと

 今日はMySQLの環境設定から、演習用のデータベースを作りがてら元々進めていたページをほぼ全て復習しました。そのうえで更に先に進めたので、MySQL中心の一日でした。SQLiteとPythonも少し進めています。


●グループ化/条件設定/並び替えの組み合わせについて
 「グループ化した後で抽出」する場合、GROUP BYしてからHAVINGを使います(例:売上合計が200以上の社員を抽出)。

SELECT
    employee_id, SUM(uriage) AS 売上合計
FROM tb
    GROUP BY employee_id
HAVING SUM(uriage) >= 200;


 「グループ化する前に抽出」する場合、WHEREで条件設定してからGROUP BY します(例:1000万円以上の大型案件のみを対象に社員ごとの売上合計を抽出)。WHEREは処理の優先順位がGROUP BYよりも早いので、HAVINGではなくWHEREを使います。

SELECT
    employee_id, SUM(uriage) AS 売上合計
FROM tb
    WHERE uriage >= 1000
GROUP BY employee_id;


 「グループ化してから並び替える」場合、GROUP BYを使ってからORDER BY を使います。

SELECT
    employee_id, SUM(uriage) AS 売上合計
FROM tb
    GROUP BY employee_id
ORDER BY SUM(uriage)
    DESC;


  全体通して、処理の順番とコードを記載する順番が一緒なので、どれを先にやりたいのか意識して書くと間違えにくいと思いました。


また、以下はSQLiteでの学びです。
●executemany()を使えば複数の処理を1行で行える
 例えばレコードを挿入する場合、コードに引数を入れておけば以下のように短い行数で処理できます。

sql = "INSERT INTO Staff VALUES (?,?,?)"
data = [("Aさん",27,"販売"), ("Bさん",25,"販売")]

conn.executemany(sql, data)



明日は仕事の会食があり、恐らく日記はお休みします。
というかこの足の状態で店にたどり着けるのか・・・
がんばろう。


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

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

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

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

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


いいなと思ったら応援しよう!