Python x MySql

更新於 2024/11/09閱讀時間約 12 分鐘
pip install pymysql

資料庫連線

import pymysql
# 資料庫設定
db_settings = {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "password": "資料庫管理員密碼",
    "db": "test2022",
    "charset": "utf8"
}
try:
    # 建立Connection物件
    conn = pymysql.connect(**db_settings)
except Exception as ex:
    print(ex)
資料庫的連線建立完成後,要進行相關的操作,需要建立Cursor(指標)物件來執行,這邊使用Python的with陳述式,當資料庫存取完成後,自動釋放連線。
import pymysql
# 資料庫設定
db_settings = {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "password": "資料庫管理員密碼",
    "db": "test2022",
    "charset": "utf8"
}
try:
    # 建立Connection物件
    conn = pymysql.connect(**db_settings)
    # 建立Cursor物件
    with conn.cursor() as cursor:
      #資料表相關操作
        print("ok")
except Exception as ex:
    print(ex)

INSERT

import pymysql

# 資料庫設定
db_settings = {
"host": "127.0.0.1",
"port": 3306,
"user": "root",
"password": "資料庫管理員密碼",
"db": "test2022",
"charset": "utf8"
}
try:
    # 建立Connection物件
    conn = pymysql.connect(**db_settings)
    # 建立Cursor物件
    with conn.cursor() as cursor:
      #資料表相關操作
         # 新增資料SQL語法
        command = "INSERT INTO member(m_name, m_mail)VALUES(%s, %s)"
        cursor.execute(command, ("test", "1234@cc"))
        # 儲存變更
        conn.commit()
except Exception as ex:
    print(ex)

SELECT

import pymysql
# 資料庫設定
db_settings = {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
  "password": "資料庫管理員密碼",
    "db": "test2022",
    "charset": "utf8"
}
try:
    # 建立Connection物件
    conn = pymysql.connect(**db_settings)
    # 建立Cursor物件
    with conn.cursor() as cursor:
        # 查詢資料SQL語法
        command = "SELECT * FROM member"
        # 執行指令
        cursor.execute(command)
        # 取得所有資料
        result = cursor.fetchall()
        print(result)
except Exception as ex:
    print(ex)

Select 取得單筆資料 fetchone()

import pymysql
# 資料庫設定
db_settings = {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "password": "資料庫管理員密碼",
    "db": "test2022",
    "charset": "utf8"
}
try:
    # 建立Connection物件
    conn = pymysql.connect(**db_settings)
    # 建立Cursor物件
    with conn.cursor() as cursor:
        # 新增資料指令
        command = "SELECT * FROM member"
        # 執行指令
        cursor.execute(command)
        # 取得第一筆資料
        #result = cursor.fetchone()
        # 取得前五筆資料
        result = cursor.fetchmany(5)
        print(result)
except Exception as ex:
    print(ex)
Select 取得篩選資料 where
import pymysql
# 資料庫設定
db_settings = {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "password": "資料庫管理員密碼",
    "db": "test2022",
    "charset": "utf8"
}
try:
    # 建立Connection物件
    conn = pymysql.connect(**db_settings)
    # 建立Cursor物件
    with conn.cursor() as cursor:
        # 新增資料指令
        command = "SELECT * FROM member WHERE m_no = %s"
        # 執行指令
        cursor.execute(command, ("10",))
        # 取得所有資料
        result = cursor.fetchall()
        print(result)
except Exception as ex:
    print(ex)

UPDATE

import pymysql
# 資料庫設定
db_settings = {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "password": "資料庫管理員密碼",
    "db": "test2022",
    "charset": "utf8"
}
try:
    # 建立Connection物件
    conn = pymysql.connect(**db_settings)
    # 建立Cursor物件
    with conn.cursor() as cursor:
        # 修改資料SQL語法
        command = "UPDATE member SET m_name = %s WHERE m_no = %s"
        # 執行指令
        cursor.execute(command, ("cchaha", "10"))
      
        #儲存變更
        conn.commit()
except Exception as ex:
    print(ex)

DELETE

import pymysql
# 資料庫設定
db_settings = {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "password": "資料庫管理員密碼",
    "db": "test2022",
    "charset": "utf8"
}
try:
    # 建立Connection物件
    conn = pymysql.connect(**db_settings)
# 建立Cursor物件
    with conn.cursor() as cursor:
        # 刪除特定資料指令
        command = "DELETE FROM member WHERE m_no = %s"
        # 執行指令
        cursor.execute(command, ("10",))
        #儲存變更
        conn.commit()
except Exception as ex:
    print(ex)
為什麼會看到廣告
avatar-img
40會員
130內容數
獨立遊戲開發紀錄
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
吳佳鑫的沙龍 的其他內容
OpenCV 讀取圖片 原碼:https://reurl.cc/3354ZL 成果: OpenCV 本身有提供讀取圖檔的函數可用,讀取圖檔,只要呼叫 cv2.imread 即可將圖片讀取進來,以 cv2.imread 讀進來的資料,會儲存成一個 NumPy 的陣列。 將圖片讀取進來之後,可使用 c
「娜斯佳,可以知道虎嘯山誌的紙本資料放在哪嗎?」我想著若可以知道原始的紙本資料放在哪,那或許就可以知道更完整的資訊了。 「妳可以試著去圖書館找找吧!」娜斯佳背對著我說。 「只是妳可能只會看到一般給市民看的資料,這種有內幕的資訊…」 「可能要到市府內的檔案管理局才有辦法看到。」娜斯佳頓了一頓說。
「學姊~」當我下課,正要上車時,一道聲音從我後方而來。 「好久不見了。」我笑著看向前方奔跑過來的彤羽。 「我就知道學姊會來上課。」彤羽來到我跟前說道。 「我以為,妳會直接去子璇家。」 「本來是想這樣,可是想想我還是先回我住的那,整理好,再來這跟妳一起過去。」 「所以妳自己一個人回來?」 「彤羽?」
「妳們已經見過他了?」當我進房,將背包放置矮櫃沙發下時,開口問道。 「見過了,人應該還可以,就腦子不怎麼精靈。」子璇靠在沙發上無奈的說著。 「要我說,是呆呆的。」蕾雅補充的說道。 「怎了?」 「太年輕,雖然對答上沒什麼問題,但暗示他去當間諜監視劉莊主,暗示了老半天,一直聽不懂。」蕾雅回著我的話。
飯後蕾雅帶娜斯佳回房,而我則將我了解的人員資料,敘說給子璇知道。 「還蠻多人的...」子璇看著名單說著。 「妳覺得.. 我若跟高山族人說,他們可以自由選擇,看是要繼續留在家裡,或是離開生活,我爸他們會不會接受?」 「嗯...我想妳應該要先了解,他們當時被管束的理由,免得一自由就又搞出一堆事。」
隨後,我們便離開會客室,返回子璇的房間。路上,子璇也先請李老將虎嘯山資料傳過來。而我則聯繫小葉,麻煩他處理彤羽所需的東西。 「欸...原來我爸跟二叔、三叔他們是在那時加入那什麼黑派,替嚴老辦事的呀!」子璇像是發現什麼新鮮事般的說著。 「陳言是妳爸的名字?」 鈴~鈴鈴~ 「駭客朋友?」子璇疑惑問道。
OpenCV 讀取圖片 原碼:https://reurl.cc/3354ZL 成果: OpenCV 本身有提供讀取圖檔的函數可用,讀取圖檔,只要呼叫 cv2.imread 即可將圖片讀取進來,以 cv2.imread 讀進來的資料,會儲存成一個 NumPy 的陣列。 將圖片讀取進來之後,可使用 c
「娜斯佳,可以知道虎嘯山誌的紙本資料放在哪嗎?」我想著若可以知道原始的紙本資料放在哪,那或許就可以知道更完整的資訊了。 「妳可以試著去圖書館找找吧!」娜斯佳背對著我說。 「只是妳可能只會看到一般給市民看的資料,這種有內幕的資訊…」 「可能要到市府內的檔案管理局才有辦法看到。」娜斯佳頓了一頓說。
「學姊~」當我下課,正要上車時,一道聲音從我後方而來。 「好久不見了。」我笑著看向前方奔跑過來的彤羽。 「我就知道學姊會來上課。」彤羽來到我跟前說道。 「我以為,妳會直接去子璇家。」 「本來是想這樣,可是想想我還是先回我住的那,整理好,再來這跟妳一起過去。」 「所以妳自己一個人回來?」 「彤羽?」
「妳們已經見過他了?」當我進房,將背包放置矮櫃沙發下時,開口問道。 「見過了,人應該還可以,就腦子不怎麼精靈。」子璇靠在沙發上無奈的說著。 「要我說,是呆呆的。」蕾雅補充的說道。 「怎了?」 「太年輕,雖然對答上沒什麼問題,但暗示他去當間諜監視劉莊主,暗示了老半天,一直聽不懂。」蕾雅回著我的話。
飯後蕾雅帶娜斯佳回房,而我則將我了解的人員資料,敘說給子璇知道。 「還蠻多人的...」子璇看著名單說著。 「妳覺得.. 我若跟高山族人說,他們可以自由選擇,看是要繼續留在家裡,或是離開生活,我爸他們會不會接受?」 「嗯...我想妳應該要先了解,他們當時被管束的理由,免得一自由就又搞出一堆事。」
隨後,我們便離開會客室,返回子璇的房間。路上,子璇也先請李老將虎嘯山資料傳過來。而我則聯繫小葉,麻煩他處理彤羽所需的東西。 「欸...原來我爸跟二叔、三叔他們是在那時加入那什麼黑派,替嚴老辦事的呀!」子璇像是發現什麼新鮮事般的說著。 「陳言是妳爸的名字?」 鈴~鈴鈴~ 「駭客朋友?」子璇疑惑問道。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
在 2024 年,Python 超越 JavaScript 成為 GitHub 上最受歡迎的程式語言,這一趨勢受數據科學和機器學習需求的推動。同時,Jupyter Notebooks 使用量激增,顯示開發者對 Python 的依賴。
Python 中的錯誤處理機制十分靈活,能讓我們捕捉、管理並處理程式中可能出現的各種錯誤和異常情況。本文將深入介紹 Python 中的錯誤處理語法,包括 try-except 結構、raise 用法以及如何自訂例外類別,讓程式更具容錯性和健壯性。
Python 的物件導向程式設計 (Object-Oriented Programming, OOP) 是其最強大和靈活的特性之一。通過 OOP 的思想,我們可以組織、抽象並簡化程式碼結構,以達到更好的可維護性和可擴展性。
本篇我們會繼續討論從Part 1 撈取的 df_878 中提取股票代碼,並使用先前Part 2 定義的 get_info_yfinance 函式來獲取 Yahoo Finance 上的財務資料,接著將這些資料貼回 df_878 的相應欄位中。
Thumbnail
在前一篇 Part 1中,我們成功地將國泰永續高股息ETF (代號00878)的持倉內容(股名、股數)撈出,本篇會介紹如何定義函式來撈取相關盈餘、股價等資訊,輸入股票代碼後回傳預估EPS。
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
解讀JSON 字串 首先,你需要使用 Python 的 json 模組來解讀JSON 字串。 JSON的基本結構: 由花括號 {} 包圍,內部是鍵值對的集合,每個鍵值對之間用逗號分隔。 鍵是字串類型,值可以是任何JSON支持的資料類型(字串、數字、布林值、陣列、物件或 null)。 {
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
在 2024 年,Python 超越 JavaScript 成為 GitHub 上最受歡迎的程式語言,這一趨勢受數據科學和機器學習需求的推動。同時,Jupyter Notebooks 使用量激增,顯示開發者對 Python 的依賴。
Python 中的錯誤處理機制十分靈活,能讓我們捕捉、管理並處理程式中可能出現的各種錯誤和異常情況。本文將深入介紹 Python 中的錯誤處理語法,包括 try-except 結構、raise 用法以及如何自訂例外類別,讓程式更具容錯性和健壯性。
Python 的物件導向程式設計 (Object-Oriented Programming, OOP) 是其最強大和靈活的特性之一。通過 OOP 的思想,我們可以組織、抽象並簡化程式碼結構,以達到更好的可維護性和可擴展性。
本篇我們會繼續討論從Part 1 撈取的 df_878 中提取股票代碼,並使用先前Part 2 定義的 get_info_yfinance 函式來獲取 Yahoo Finance 上的財務資料,接著將這些資料貼回 df_878 的相應欄位中。
Thumbnail
在前一篇 Part 1中,我們成功地將國泰永續高股息ETF (代號00878)的持倉內容(股名、股數)撈出,本篇會介紹如何定義函式來撈取相關盈餘、股價等資訊,輸入股票代碼後回傳預估EPS。
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
解讀JSON 字串 首先,你需要使用 Python 的 json 模組來解讀JSON 字串。 JSON的基本結構: 由花括號 {} 包圍,內部是鍵值對的集合,每個鍵值對之間用逗號分隔。 鍵是字串類型,值可以是任何JSON支持的資料類型(字串、數字、布林值、陣列、物件或 null)。 {