mysql-connector-python

      在〈mysql-connector-python〉中尚無留言

本站最推薦的套件是 mysql-connector-python 套件,其它都不建議使用。

安裝套件

請使用如下指令安裝 mysql-connector-python

pip install mysql-connector-python==8.4.0

import

首先要 import mysql.connector,然後簡寫成 msyql,如下所示。

import mysql.connector as mysql

連線

使用 mysql 產生 conn 連線物件,裏面有四個參數,分別是

host : 資料庫伺服器網址或 ip
user : 登入資料庫的帳號
password : 登入資料庫的密碼
database : 資料庫名稱

import mysql.connector as mysql
conn = mysql.connect(
    host="ip",
    user="帳號", 
    password="密碼", 
    database="資料庫"
)

產生命令物件

命令物件通常命名為 cursor ,為執行 SQL 語法的物件,由 conn.cursor 產生而來。

cursor = conn.cursor()

執行 SQL 指令

由 cursor.execute(SQL 指令),若是新增、刪除、修改,最後還需 cursor.commit() 才會開始執行

cursor.execute("insert into 資料表 (欄位1, 欄位2, ...) values (值1, 值2, ....)")
cursor.commit()

查尋取回值

如果是 select 查尋指令,則需使用 fetchall 將資料取回,取回的資料為二維 list

cursor.execute("select * from 資料表")
rs=cursor.fetchall()
for r in rs:
    print(r)整

關閉連線

操作完資料庫,最後一定要關閉連線,否則會造成資料庫伺服器連線過多耗損記憶体。

conn.close()

完整代碼

完整代碼如下

import mysql.connector as mysql
conn=mysql.connect(host="ip",user="帳號", password="密碼", database="資料庫")
cursor=conn.cursor()
cursor.execute("select count(*) from 資料表")
rs=cursor.fetchall()
cursor.close()
for r in rs:
    print(r)

傳統新增資料錄

在資料表中新增資料錄的 SQL 基本語法如下

insert into 資料表 (欄1, 欄2, ...) values (值1, 值2....)

SQL語法寫好後, 使用 cursor.execute() 執行, 最後記得要加 conn.commit()

conn=mysql.connect(host="遠端",user="帳號",password="密碼", database="資料庫")
cursor = conn.cursor()
cursor.execute("select * from 台灣股市 order by 日期")
rs=cursor.fetchall()
cursor.close()
conn.close()
conn=mysql.connect(host="localhost",user="帳號",password="密碼", database="資料庫")
cursor=conn.cursor()
for r in rs:
    cmd = f"insert into 台灣股市 (日期, 開盤, 最高, 最低, 收盤) values ('{str(r[1]}', {r[2]},  {r[3]}, {r[4]}, {r[5]})";
    cursor.execute(cmd)
    conn.commit()
cursor.close()
conn.close()

快速新增資料方法一

將 values 值使用 “(v1, v2, v3, …..), (v5, v6, v7, …..), ……  ,” 合成一串,最後記得將最後的 “,”刪除

cmd="insert into 台灣股市 (日期, 開盤, 最高, 最低, 收盤) values "

for r in rs:
    cmd += f"({r[0]}, {r[1]}, {r[2]}, {r[3]}, {r[4]}), "

cmd=cmd[:-1] #去除最後的 ","
cursor.execute(cmd)
conn.commit()
cursor.close()
conn.close()

快速新增資料方法二

準備好二維 List,然後在 cmd 使用 %s ,且不用單引號 ”

data=[]
cmd = insert into 台灣股市 (日期, 開盤, 最高, 最低, 收盤) values (%s, %s, %s, %s, %s)"
for r in rs:
    t=[str(r[1]), r[2], r[3], r[4], r[5]]
    data.append(t)
cursor.executemany(cmd, data)
conn.commit()
cursor.close()
conn.close()

取得欄位名稱

由cursor.description可以取得各個欄位的資料,再由欄位資料的第一個元素即為欄位名稱

cursor.execute("select * from 台灣股市")
columns=[d[0] for d in cursor.description]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *