見出し画像

【開始30日目】プログラミング学び日記_Python

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

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


 ようやく丸1か月分になりました。
 
 今日は6時半~15時でワンオペ育児、15時~17時は残っていた仕事を片付け、17時~20時で家族と外食したり子供をお風呂に入れたりしてました。MySQLの環境構築やりたかったですが、クタクタすぎて断念しました笑
明日こそ。


今日やったこと
・Pythonデータベースプログラミング(110分)
・Paizaの問題集(10分)
・本記事の執筆(30分)
合計:150分



学んだこと

●SQLiteで、レコードを削除した後に主キーの連番もリセットする方法
 演習や練習問題を進める中で、間違って入力したものを修正しようとして学びました。「キリウ君が読まないノート」さんのページを参照しました。

conn = sqlit3.connect("DB名", isolation_level=None)
conn.execute("DELETE FROM テーブル名")
conn.execute("DELETE FROM sqlite_sequence WHERE name = 'テーブル名'")

 この「sqlite_sequence」というテーブルに、テーブル名と連番の現在値の組み合わせを持っているそうです。ただ、このやり方はテーブルのレコードを全削除した場合に有効だったので、例えば1行だけ消す等の際は別のやり方があるのかもしれません。


●メモリ上にデータベースを作成して操作する方法
 connectで接続する先をDBではなく":memory:"とすることで、データベースファイルが作られずに、メモリ上でデータベースを作成して操作することができます。ファイルを作りすぎると整理が大変なので、一時的に使いたいときなどに便利です。(速度も速い)
 ↓僕は以下のようにデータベース作って出力してみました。

import sqlite3
conn = sqlite3.connect(":memory:", isolation_level=None)

sql = """    # このようにsql文をPythonの変数に保存して実行時に構築すること、実際はセキュリティ上好ましくないと言われています
CREATE TABLE programs (
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   program_name VARCHAR(30),
   start_time VARCHAR(10),
   end_time VARCHAR(10)
);
"""

conn.execute(sql)

conn.execute("INSERT INTO programs(program_name, start_time, end_time) VALUES ('ザ・鉄腕ダッシュ','19:00','20:00')")
conn.execute("INSERT INTO programs(program_name, start_time, end_time) VALUES ('世界の果てまでイッテQ','20:00','21:00')")

c = conn.cursor()
c.execute("SELECT * FROM programs")

for row in c:
   print(row)


 今進めている入門書、1周目は流し読みしただけだったのですが、やはり実際にコードを書くと学びの質が全然違いますね。章末に練習問題があるので、1つずつ丁寧にこなしていきたいと思います。


ただ思ったより進みが遅いーーーーー
遅くとも今月中には今の2冊はやり切りたい‥‥!!



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

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

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

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

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



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