見出し画像

【開始44日目】プログラミング学び日記_Python_MySQL

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

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


 今日は公共手続きのために半休を取ったので、余った時間を思いっきりプログラミングに使えました。基礎からのMySQLもだいぶ進み、ようやく終わりが見え始めました(しかしまだある)。PHPの章に入り、また新しい言語に触れられてとてもワクワクしています。


今日やったこと
・基礎からのMySQL(310分)
・Paizaの問題集(40分)
・本記事の執筆(20分)
合計:370分

学んだこと_MySQL

●トランザクションとは
 複数の処理を「分割できない1つの処理」として扱い、一方の処理が失敗したらもう一方の処理も取り消させるような機能です。口座からの入出金管理の例が分かりやすかったです。
 Aさん口座から引き算した後にBさんの口座に足し算する処理で、足し算する前にエラーが起きて引き算だけ実行されてしまうと大事です。トランザクションを使えばそのような事態を回避できます。
 トランザクションを初めてから、結果をデータベースに反映させることをコミットといい、反映しないで元に戻すことをロールバックと言います。ただ、ロールバックで戻せないコマンドもあります(DROP DATABASE / DROP TABLE / DROP VIEW / ALTER TABLE等)。何でも戻せるわけではないので要注意ですね。


●MySQLでCSVファイルを読み込むための設定方法
 デフォルトではCSVファイルの読み込みはできない状態なので、設定変更する必要がありました。サーバーシステム変数と呼ばれるもののうち、「secure_file_priv」を編集して、MySQLを再起動させることで設定変更できます。
 ただ、再起動させたはずがなかなか上手くいかないと思っていましたが、単純にサーバーを閉じるだけでは再起動にはなっておらず、PCを再起動させるか、もしくはこちらのページに記載されている方法で再起動させる必要があります。


●クリックするだけでSQLを実行してくれる「バッチファイル」
 コマンドプロンプトから実行できる命令は、「.bat」という拡張子を持つバッチファイルにテキストファイルで記述しておくと便利です。MySQLへのパスを設定しておけば、どの場所からでもMySQLに対する操作ができます。
 以下のようなコード例で、指定した場所にファイルを作成できます。デスクトップにあるアイコンをクリックするだけで実行されたので、少し感動しました

mysql db1 -u root -proot -e "SELECT * INTO OUTFILE 'C:/MySQL_Book/out2.csv ' FIELDS TERMINATED BY ',' FROM tb1"


●teeを使って出力結果をファイルに保存しながら操作する方法
「tee log.txt」で「log.txt」というファイルに出力結果が保存されていくようになります(該当ファイルがなければ作られる)
画面にも表示されながら保存されていくので、とても使いやすかったです。
ファイルへの出力を中止するときは「notee」コマンドでできます。



明日からはPHP関係の学びもメモしていきたいと思います!


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

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

【書籍/ブログ】
基礎からのMySQL     354/514頁
Web技術の基本      86/189頁
京大のPython教科書    116/201頁
Pythonデータベースプログラミング 194/194頁
Pythonエンジニアファーストブック読了

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

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


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