今天裝了虛擬Linux主機ubuntu

一、MySQL 字元集(Character Set)基礎
1. 什麼是字元集?
字元集是資料庫用來儲存和處理文字的編碼系統
常見字元集:
latin1:西歐語系
utf8:UTF-8編碼(MySQL中的"utf8"是偽UTF-8,最多只支援3位元組)
utf8mb4:真正的UTF-8(支援4位元組,包含emoji等特殊字元)
big5:繁體中文
gb2312/gbk:簡體中文

2. 校對規則(Collation)
定義字元如何比較和排序
命名規則:字元集_語言_ci/cs/bin
ci:大小寫不敏感
cs:區分大小寫
bin:二進位比較
範例:utf8mb4_unicode_ci、utf8mb4_general_ci

二、字元集相關操作
1. 查看可用字元集與校對規則
SHOW CHARACTER SET;
SHOW COLLATION LIKE 'utf8mb4%';
2. 設定字元集(不同層級)
-- 伺服器層級(通常在my.cnf設定)
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
-- 資料庫層級CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 表格層級
CREATE TABLE mytable (
    id INT,
    name VARCHAR(100)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 欄位層級
CREATE TABLE mytable (
    id INT,
    name VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
);

三、資料庫操作與字元集
1. 建立資料庫時指定字元集
CREATE DATABASE mydatabase 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;
2. 修改現有資料庫的字元集
ALTER DATABASE mydatabase 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;
3. 匯入/匯出資料時的字元集注意事項
-- 匯出時指定字元集mysqldump -u username -p --default-character-set=utf8mb4 mydatabase > backup.sql
-- 匯入時指定字元集mysql -u username -p --default-character-set=utf8mb4 mydatabase < backup.sql

四、常見問題與解決方案
1. 亂碼問題
原因:客戶端、連接層、資料庫層字元集不一致
解決方案:
-- 設定連接字元集SET NAMES 'utf8mb4';
-- 或在連接字串中指定jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=utf8
2. emoji儲存問題
原因:utf8只能儲存3位元組字元,emoji需要4位元組
解決方案:使用utf8mb4字元集
3. 效能考量
utf8mb4比utf8佔用更多空間
校對規則影響排序效能:_general_ci比_unicode_ci快

五、最佳實踐建議
統一使用utf8mb4:支援所有Unicode字元,包括emoji

應用層與資料庫層設定一致:避免轉碼開銷
新專案從開始就設定正確字元集:後期修改成本高
備份時注意字元集設定:避免備份/還原時出現亂碼

六、實用查詢
-- 查看當前資料庫的字元集設定SELECT @@character_set_database, @@collation_database;
-- 查看表格的字元集設定SHOW CREATE TABLE mytable;
-- 查看連接相關的字元集變數
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
預習時可以實際操作這些指令,觀察不同設定下的行為差異,這將幫助您更深入理解MySQL的字元集處理機制。


一、MySQL 儲存引擎 (Storage Engines)

1. 常見儲存引擎比較

引擎 事務支援 鎖粒度 主要特點 適用場景
InnoDB ✓ (ACID) 行級鎖 預設引擎、支援外鍵、崩潰恢復 需要事務的OLTP系統
MyISAM 表級鎖 讀取速度快、全文索引 讀多寫少、報表系統
MEMORY 表級鎖 記憶體儲存、極快存取 臨時表、快取數據
ARCHIVE 行級鎖 高壓縮比、只支援插入查詢 歸檔數據、日誌存儲

2. 儲存引擎操作指令

sql
 
复制
 
下载
-- 查看支援的引擎
SHOW ENGINES;

-- 查看表的引擎
SHOW TABLE STATUS LIKE 'table_name';

-- 建立表時指定引擎
CREATE TABLE my_table (
    id INT PRIMARY KEY
) ENGINE=InnoDB;

-- 修改表的引擎
ALTER TABLE my_table ENGINE=InnoDB;

二、資料型態 (Data Types)

1. 數值型態

型態 儲存空間 範圍 說明
TINYINT 1 byte -128~127 微小整數
INT 4 bytes ±21億 常用整數
BIGINT 8 bytes ±922京 大整數
DECIMAL(M,D) 變動 精確小數 M=總位數, D=小數位

2. 字串型態

型態 最大長度 特點
CHAR(n) 255字元 固定長度,速度快
VARCHAR(n) 65,535字元 變動長度,節省空間
TEXT 64KB 長文字
LONGTEXT 4GB 超長文字

3. 日期時間型態

型態 格式 範圍 儲存空間
DATE YYYY-MM-DD 1000-01-01~9999-12-31 3 bytes
DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~9999-12-31 23:59:59 8 bytes
TIMESTAMP YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01~2038-01-19 03:14:07 4 bytes

4. 二進位型態

型態 用途
BLOB 二進位大物件
LONGBLOB 超大二進位數據

三、型態選擇最佳實踐

  1. 整數選擇原則

    • 根據數據範圍選擇最小夠用的型態

    • 自增ID用UNSIGNED INT(約42億)或BIGINT

  2. 字串選擇原則

    • 固定長度用CHAR(如MD5哈希)

    • 變動長度用VARCHAR

    • 避免過大長度設定(會影響記憶體分配)

  3. 時間型態選擇

    • 只需要日期用DATE

    • 需要時間用DATETIME

    • 需要自動更新用TIMESTAMP

四、儲存引擎選擇策略

  1. InnoDB 使用時機

    • 需要事務處理

    • 需要外鍵約束

    • 高併發寫入場景

  2. MyISAM 使用時機

    • 讀密集型應用

    • 不需要事務

    • 需要全文索引(MySQL 5.6前)

  3. MEMORY 引擎注意

    • 伺服器重啟後數據消失

    • 不支援TEXT/BLOB型態

五、實用查詢範例

sql
 
复制
 
下载
-- 建立包含各種型態的表格
CREATE TABLE sample_data (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(30) NOT NULL,
    age TINYINT UNSIGNED,
    balance DECIMAL(10,2) DEFAULT 0.00,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    profile TEXT,
    avatar BLOB
) ENGINE=InnoDB;

-- 查看欄位型態資訊
DESCRIBE sample_data;

-- 查詢型態相關系統變數
SHOW VARIABLES LIKE 'storage_engine%';

六、常見問題解決

  1. int(11)中的11是什麼意思

    • 只是顯示寬度,不影響儲存範圍

    • 實際範圍由型態本身決定

  2. VARCHAR(255)還是TEXT

    • VARCHAR(255)會占用額外1字元記錄長度

    • 超過255字元建議使用TEXT

  3. DATETIME vs TIMESTAMP

    • TIMESTAMP會自動轉換時區

    • DATETIME儲存範圍更大

預習時建議實際建立各種型態的表格並插入測試數據,觀察不同型態的儲存行為和限制,這將幫助您更深入理解MySQL的資料型態系統。

ky0dd 發表在 痞客邦 留言(0) 人氣()

其實用到的也不多,就全部列下來吧,中文就是註解

 

套件

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from cycler import cycler


函數

input("輸入")
print(輸出)
mean(取平均)
count(取次數)
min(取最小值)
max(取最大值)

 


方法

數據結構 = pd.read_csv('檔案加附檔名')
數據結構 = pd.read_csv('檔案加附檔名', encoding='big5')
數據結構.dtypes
數據結構.shape
數據結構.info()
數據結構.describe()
數據結構.columns = ['更換新標頭甲', '更換新標頭乙']:
數據結構.sort_values("依據排序欄位",ascending=False)
mount = 數據結構['計算該欄不同資料出現次數'].value_counts()
新數據結構=pd.DataFrame(數據結構,index=[1,2,3,4,5,6,7,8,9,10,11,12]).reset_index().rename(columns={'舊標頭甲':'新標頭甲','舊標頭乙':'新標頭乙'})
數據結構.head(預設顯示5筆)
數據結構.tail(預設顯示5筆)
cols = ['甲欄', '乙欄', '丙欄']
新數據結構[cols] = 數據結構[cols].replace(',', '', regex=True移除千分位逗號).astype(float)將結果轉為浮點數
新數據結構 = pd.melt( 數據結構 , id_vars=['不變變數名'],
value_vars=['參數甲', '參數乙'], var_name='參數甲或乙',value_name='參數甲或乙的數值')
新數據結構['甲欄']=數據結構['甲欄'].astype(int) 
數據結構.isnull().any()檢查是否有選填
數據結構.drop_duplicates(subset=['指定判斷重複的欄位'],  
                                            keep='last',            # 保留最後一筆重複資料
                                         inplace=True)           # 直接修改原 DataFrame
新數據結構 = 數據結構.size().reset_index(name='命名')
新數據結構['日期標頭'] = pd.to_datetime(數據結構['日期標頭'])
新數據結構= 數據結構.drop(['甲欄', '乙欄', '丙欄'], axis=1) 0是刪列 
新數據結構 = 數據結構.groupby("分組的判斷內容")
新數據結構 = 判斷布林值的新數據結構[作為判斷內容]
新數據結構 = (數據結構["標頭"]=="作為判斷的內容")
新數據結構 = pd.concat([df1, df2, df3, df4])
數學函式庫.mean
plt.rcParams['font.sans-serif'] = ['設定字體']


圓餅圖

labels = ["甲名稱","乙名稱","丙名稱"]
圖示內容 = [甲數據,乙數據,丙數據]
colors = ["甲顏色","乙顏色","丙顏色"]
plt.pie(圖示內容,labels=labels,colors=colors,autopct="%1.1f%%")
plt.axis("equal正圓")

多條柱狀圖

sns.countplot(x='橫軸標題',hue='橫軸的多項參數',data=數據結構,palette=sns.color_palette("漸層色系"))

兩組數據水平長條圖

x = [1,2,3]
x2 = [0.8,1.8,2.8]
h = [10,20,30]
h2 = [20,10,40]
plt.barh(x,h,color='b',height=0.4, align='edge對齊指定的 X 軸位置')  
plt.barh(x2,h2,color='r',height=0.4)              
plt.show()

多條摺線圖:

x = [1, 2, 3, 4, 5] 
y = [10, 20, 15, 25, 30]  
y2 = [5, 15, 25, 20, 10]
plt.plot(x, y, label='線A')
plt.plot(x, y2, label='線B')
plt.legend()
plt.show() 


字符串格式化(String Formatting)

print(f"Hello, {姓名}! You are {年齡} years old.")
print("Hello, {}! You are {} years old.".format(姓名, 年齡))
print("Hello, %s! You are %d years old." % (姓名, 年齡))

ky0dd 發表在 痞客邦 留言(0) 人氣()


今天請假了,要繼續還是退訓,5/5前決定

能直接讀懂 聽懂外語時的好處
1.可以更快接收到第一手消息,省掉翻譯
2.資訊來源更廣,解鎖異世界
3.情境感受能更完整正確
4.外語能力能隨時隨地增進(工作娛樂)

最近接觸後端程式語言,動力被削弱的點
1.用圖形化介面更方便好用,打程式碼很麻煩
2.老師正在教的(程式能做)那些功能我用不到
3.講得聽不懂聽懂了不記得步驟記得步驟容易搞錯,放棄比較快
4.會照著做但也不知道要幹嘛,轉職不易轉職成功有更大的苦難
5.偏後勤,與人的互動表現機會少
6.目前環境對轉職入門的人來說很悲觀

報名職訓課程的初衷
0.程式語言通識說
1.增進能夠複利的技能
2.職場不受限
3.待遇發展性好
4.生成式AI代勞許多資訊處理,會淘汰的是不會用AI的人

常見的學習目的
1.架網站
2.想調整參數讓程式照自己想的運作(如外掛修改器)
3.有想要分析的資訊,如市場調查獲利模式


程式設計學習並不容易,但克服後將有豐厚的回報:

程式設計學習的高挫折率: 許多資料顯示程式設計學習的挫折率非常高,甚至達到 90%。即使進入公司成為正式工程師後,仍然有相當比例的人會放棄。
高淘汰率下的價值: 如此高的淘汰率意味著,能夠堅持下來並成功的人將會非常搶手,這也是造成程式設計師人才短缺的原因之一。
克服困難後的優勢: 成功克服學習障礙的人,將能獲得非常好的職業前景,例如:
僅需一台電腦即可工作。
容易成為自由工作者或遊牧工作者。
有能力開發個人服務,發展個人事業。
程式設計師的價值: 高挫折率也代表著程式設計師的稀有性,這使得這個職業更有價值。
克服挫折的關鍵: 學習過程中最大的問題在於「不知道自己不知道什麼」。當無法明確知道問題點時,就無法搜尋答案或向他人提問,最終導致放棄。
有效的學習方法: 為了避免這種情況,建議在學習初期就要注重輸入與輸出的平衡,透過實際操作來找出不理解的地方,再針對性地學習。
尋求幫助的重要性: 當遇到無法透過搜尋解決的問題,或者不清楚學習方向時,向他人請教非常重要。在公司裡可以請教前輩,但自學時可能需要尋求專業人士的協助,例如顧問或參加課程。
付費諮詢的價值: 雖然講者提供付費諮詢服務,但他認為花錢尋求幫助以避免挫折是值得的投資。付費能促使學習者更認真思考問題,並讓提供諮詢的人更盡責地給予回饋。
結論: 再次強調程式設計學習並非易事,但只要能堅持下去,克服困難,將會是一個非常有前景的職業。當遇到「不知道自己不知道什麼」的困境時,不要害怕向他人尋求幫助。
簡而言之,講者認為程式設計學習雖然艱辛,但成功者將能獲得高價值和多元發展的機會,而克服學習障礙的關鍵在於釐清問題並適時尋求協助。

ky0dd 發表在 痞客邦 留言(0) 人氣()

JutyperNotebook folium是python的視覺化套件,不能在spyder開啟
JutyperNotebook的介面常看到,但是不管看幾遍,沒操作過就是不熟
後端跟前端差異最大的地方就是視覺,office的商業視覺化是有目共睹的
(當初word97的文字藝術師品味還不怎麼樣),還在初學階段叫出類似google map然後加上標記。
後端程式碼的重點就在寫出迴圈,能將相同的動作機械化上千上萬次

今天用HeidiSQL增查刪減,擴及到整個表格甚至跨表格
做的操作都很基本,就是說一動做一動,跟著做不是問題
但為什麼要這樣做,你想要怎麼做才是重點。

今天問了助教,關於提早退訓的事,課程沒上到1/2的話要歸還教材阿
老實說我自己也矛盾,是我自己報名來上課的,上課前查詢確認也相當充足
助教做了些詢問,我自己都說學不來是其次,但我的動力不足還有點抗拒
... ...怪誰

當初報名職訓班的理由,台北市的職缺多待遇好,但這些機會可能不屬於我
學程式語言的好處不少,像是開發不同面向的我,多一項技能(前提是學好)
外語加程式最有價值能複利加值的技能
放棄與否,對現在的我來說是個大哉問:將來、家人、還有對自己的態度
 

ky0dd 發表在 痞客邦 留言(0) 人氣()

今天上網路概論與爬蟲
老師一講課操作給大家看,就開始想睡覺
以下內容是我請生成式AI 給我的課程導覽

從簡單的靜態網頁爬蟲開始,使用 urllib 或 requests 獲取網頁內容,然後使用 Beautiful Soup 進行解析。
逐步學習更進階的技巧,例如處理表單、登入、Cookies 等。
了解常見的反爬蟲機制,並學習應對方法。
選擇適合自己需求的資料儲存方式。
學習使用 Scrapy 框架可以大大提高開發效率,特別是對於複雜的爬蟲專案。

第一階段:Python 基礎與網路請求
Python 基礎:語法、資料型別、函數、類別、模組管理、錯誤處理。
網路基礎:HTTP/HTTPS 協定、URL 結構、HTML 基本標籤。
請求庫:urllib/urllib3 發送 GET/POST 請求,處理標頭與錯誤。

第二階段:HTML 解析與資料提取
解析工具:
BeautifulSoup:用標籤、屬性、CSS 選擇器提取資料。
lxml + XPath:高效解析 XML/HTML,路徑選擇語法。
技巧:處理巢狀結構、缺失資料。

第三階段:進階請求與反爬策略
Requests 庫:Session 管理、Cookies、代理 IP、逾時設定。
反爬應對:偽裝 User-Agent、代理 IP 池、驗證碼處理、動態內容(Selenium/Pyppeteer)。

第四階段:資料儲存與處理
儲存格式:CSV/JSON、SQL 資料庫(MySQL/SQLite)、NoSQL(MongoDB)。
清洗:處理空值、重複資料、格式化。

第五階段:進階框架與分散式
非同步爬蟲:asyncio/aiohttp 提升效率。
Scrapy 框架:Spiders、Items、Pipelines 架構。
分散式:Celery/Redis 分配任務。
 

ky0dd 發表在 痞客邦 留言(0) 人氣()

對於老師課程上完就應該有的實力,太高估自己
還要在這條路上的話,就算是簡單的題目也好
能夠每天接觸才是重要的

下午爬蟲課只知道200狀態碼代表向伺服器請求成功
用get請求時網址會揭露key value明碼,用POST請求內容較不容易被發現

  1. requests 庫的基本使用方法和優勢。
  2. HTTP 請求的不同方法 (GET, POST) 以及如何使用 requests 發送這些請求。
  3. 請求標頭 (Headers) 的作用以及如何在 requests 中設定。
  4. URL 查詢參數 (Query Parameters) 的傳遞方式。
  5. 請求體 (Request Body) 的概念以及如何在 POST 請求中傳遞不同格式的資料。
  6. 如何處理伺服器的回應,包括狀態碼、內容、編碼、標頭和 JSON 資料。
  7. Cookies 的處理。
  8. HTTP 重定向的機制以及如何在 requests 中控制重定向。
  9. 設定請求超時以提高程式的健壯性。
  10. Session 物件的使用場景。
  11. 基本的錯誤處理。

5/20要完成python大數據視覺化報告
30個台灣開放數據平台資源_分析師必收藏的數據資源寶典


上午講解ITS後半的題庫

Python中的Assert语句简明教程
assert用於程式的除錯和測試階段。它的作用是檢查一個條件是否為真。如果條件為真,程式會繼續正常執行;
如果條件為假,Python 會觸發一個 AssertionError 異常,並且可以選擇性地附帶一個錯誤訊息。
你可以把它想像成程式中的一個自我檢查點,用來確保程式在某個時間點的狀態符合你的預期。

def cube(num):
"""傳回數字 num 的立方值"""
return num*num*num 
print(cube.__doc__)

使用了點號運算符 (.) 來存取 cube 函數的屬性。
cube.__doc__ 會返回 cube 函數的文檔字串,
也就是 "傳回數字 num 的立方值"
然後,print() 函數會將這個字串印出來。

字符串格式化(String Formatting)主要有 三種常見寫法,分別是:

1.舊式格式化(% 運算子)Python 2 時代的主流方法,現在仍可用,但不推薦在新代碼中使用。
name = "Alice"
age = 25
print("Hello, %s! You are %d years old." % (name, age))
# 輸出: Hello, Alice! You are 25 years old.
%s 表示字符串,%d 表示整數,%f 表示浮點數。

2.str.format() 方法Python 2.6+ 和 Python 3 推薦的格式化方法,更靈活。
name = "Bob"
age = 30
print("Hello, {}! You are {} years old.".format(name, age))
# 輸出: Hello, Bob! You are 30 years old.
可指定順序或名稱:
print("Hello, {1}! You are {0} years old.".format(age, name))
print("Hello, {name}! You are {age} years old.".format(name="Charlie", age=35))

3.f-strings(格式化字符串字面值,Python 3.6+)最新、最簡潔的寫法,直接在字符串中嵌入變數或表達式。
name = "David"
age = 40
print(f"Hello, {name}! You are {age} years old.")
# 輸出: Hello, David! You are 40 years old.
支援表達式計算:
a, b = 5, 10
print(f"The sum of {a} and {b} is {a + b}.")
# 輸出: The sum of 5 and 10 is 15.

進階格式化技巧
所有方法都支援格式化數字、對齊等:
# 浮點數保留 2 位小數
pi = 3.1415926
print("pi = %.2f" % pi)          # 舊式
print("pi = {:.2f}".format(pi))  # str.format
print(f"pi = {pi:.2f}")          # f-string

# 對齊文字(寬度 10,靠右)
text = "Python"
print("|%10s|" % text)           # 舊式
print("|{:>10}|".format(text))    # str.format
print(f"|{text:>10}|")           # f-string

一次看懂遞迴 (Recursion) 的思維模式(一)
遞迴列出目錄所有檔案
import os
def list_files(startpath):
    for root, dirs, files in os.walk(startpath):
        level = root.replace(startpath, '').count(os.sep)
        indent = ' ' * 4 * level
        print(f"{indent}{os.path.basename(root)}/")
        subindent = ' ' * 4 * (level + 1)
        for f in files:
            print(f"{subindent}{f}")
list_files('.')
1. 檔案與目錄操作
2. 程序與系統管理
3. 檔案描述符與權限
4. 其他實用功能
 

路徑管理
import sys
import os
# 確保腳本所在目錄在模組搜索路徑中
script_dir = os.path.dirname(os.path.abspath(__file__))
if script_dir not in sys.path:
    sys.path.insert(0, script_dir)
sys 模組是 Python 標準庫中與 Python 解釋器交互的核心模組,提供了許多與系統相關的功能和變數。以下是 sys 模組的主要功能和應用:
1. 系統參數與路徑管理
2. 標準輸入/輸出流
3. 系統相關資訊
4. 遞迴與系統限制
5. 程序控制與退出
6. 模組與內建函數
7. 進階功能
 

ky0dd 發表在 痞客邦 留言(0) 人氣()

轉職軟體工程師前請三思,淺談轉職的現實面
我前端轉職失敗的經驗
從轉職成功到離職,轉職工程師後悔經驗分享
[心得] 全端培訓轉職失敗心得
【心得】資策會大數據班轉職失敗心得-更新 v1.0.3- 7/17→再上網工班轉職成功

有點好笑,po這些資訊
我一直都沒有很樂觀,但實際上了課之後對自己感到悲觀
沒有重金賭上什麼,能夠更了解自己是一件好事

換個角度想,才接觸不到1個月,會的不多是正常
隨便上網找,很多人也是放棄過幾次,重學才OK的
當初入學考篩掉100多人我考得也算前面,實際在這個班我的資質是倒數


程式語言已經變得通識性質了
 

轉職我是不敢想了,說實在的要寫能連續操作的專案,想到就怕
上職訓課的心態改變了,或者說更肯定初衷就是為了文科的我能更適應職場
克服閱讀跟程式思維的障礙,還有不是為了學好程式而是利用學程式練習日文英文

 

ky0dd 發表在 痞客邦 留言(0) 人氣()

例外處理 ( try、except ) 今天上了新東西,可以說是條件式
把if改成try,發生什麼狀況except做什麼處理提示,

NameError    使用沒有被定義的對象
IndexError    索引值超過了序列的大小
TypeError    數據類型 ( type ) 錯誤
SyntaxError    Python 語法規則錯誤
ValueError    傳入值錯誤
KeyboardInterrupt    當程式被手動強制中止
AssertionError    程式 asset 後面的條件不成立
KeyError    鍵發生錯誤
ZeroDivisionError    除以 0
AttributeError    使用不存在的屬性
IndentationError    Python 語法錯誤 ( 沒有對齊 )
IOError    Input/output異常
UnboundLocalError    區域變數和全域變數發生重複或錯誤

配合break與continue
沒有狀況後往下一行執行程式Finally。

 

下午老師帶我們走ITS考古題。
發現我閱讀很多變數代數的文章有閱讀障礙
聽課容易失神。驚覺是否跟悲觀憂鬱有關,
不太能做抽象的邏輯思考,
緣腦進入防衛狀態時會只想排除警戒
畢竟上課都會讓我想到退訓

ky0dd 發表在 痞客邦 留言(0) 人氣()

今天上課複習了,用python執行MYSQL創立表格、增查刪減

一樣是抓CSV檔,整理資料繪圖
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

退訓的念頭還在

ky0dd 發表在 痞客邦 留言(0) 人氣()

 

在上(增)查刪減之前,老師知道了我們python進度後
索性內容就做了應用變化,所以沒有具體的程式碼與講義能無腦操作
但對於我來說,舊東西還不熟一次好幾個步驟,我跟不上
人的記憶力正常:7+-3,也就是4~11個單位

隨身碟插在電腦上忘了帶回來...
在MYSQL上創建空白表格,因為要輸入值所以設定變數類型,如INT、STR、NULL等
然後用python讀取CSV檔後,將雜訊改成我們要的譬如... 換成0,搞剛的連接SQL後匯入MYSQL
不開MYSQL,而是在python執行MYSQL指令。老師也直接複習用抓來的資料繪製分析圖

ky0dd 發表在 痞客邦 留言(0) 人氣()