python3 X操作mysql資料庫

2021-07-10 22:02:20 字數 2289 閱讀 1417

在python2.x的版本中,連線mysql伺服器的**是這樣的

import mysqldb

conn = mysqldb.connect(host = '127.0.0.0',user ='root',passwd = '123')

# and so on...

但是在3.x的版本裡,mysql for python(mysqldb)已經不支援了,但是3的版本出來了,就代表著有這個趨勢。今天就分享一下如何在3.x上操作mysql資料庫。

# 取代了之前的'import mysqldb'

import pymysql

# 連線mysql資料庫

conn = pymysql.connect(

host='127.0.0.1',

port=3306,

user='root',

passwd='test01',

db='sql')

cur = conn.cursor()

#配置連線資料庫的**,也只有模組名稱的不同,其它都是一樣一樣的。

#刪除表

sql = "drop table if exists user"

cursor.execute(sql)

#建立

sql = "create table if not exists user(name varchar(128) primary key, created int(10))"

cursor.execute(sql)

#寫入

sql = "insert into user(name,created) values(%s,%s)"

param = ("aaa",int(time.time()))

n = cursor.execute(sql,param)

print

'insert',n

#寫入多行

sql = "insert into user(name,created) values(%s,%s)"

param = (("bbb",int(time.time())), ("ccc",33), ("ddd",44) )

n = cursor.executemany(sql,param)

print

'insertmany',n

#更新

sql = "update user set name=%s where name='aaa'"

param = ("zzz")

n = cursor.execute(sql,param)

print

'update',n

#查詢#使用execute方法執行sql語句

n = cursor.execute("select * from user")

for row in cursor.fetchall():

print row

for r in row:

print r

#刪除

sql = "delete from user where name=%s"

param =("bbb")

n = cursor.execute(sql,param)

print

'delete',n

#查詢

n = cursor.execute("select * from user")

print cursor.fetchall()

cursor.close()

#提交

conn.commit()

#關閉

conn.close()

需要注意的是,為了防止出現編碼亂碼,mysql的配置檔案設定成utf-8,在連線資料庫的時候,需要加上引數 「charset=』utf8』」

conn = pymysql.connect(

host='127.0.0.1',

port=3306,

user='root',

passwd='test01',

db='sql',

charset='utf8')

python3 x操作mysql資料庫

1 安裝pymysql pymysql 是在 python3.x 版本中用於連線 mysql 伺服器的乙個庫,python2中則使用mysqldb。使用pip命令安裝 pip install pymysql2 鏈結資料庫並對資料庫進行一些操作 插入資料 import pymysql 開啟資料庫連線 ...

Python3 x編碼問題

1.記事本的ansi編碼為系統本地編碼,我的是gbk open 函式的encoding引數預設是本地編碼,也就是gbk,所以直接讀取ansi編碼的記事本檔案是木有問題的。怎麼檢視系統本地編碼?在cmd下輸入 chcp 從下表可以看出,936對應gbk編碼 下表列出了所有支援的 頁及其國家 地區 或者...

Python 內建函式(Python 3 x)

1 type obj 返回變數型別 2 isinstance object,class or type or tuple 測試物件是否為指定型別的例項 4 range start,end step 返回乙個 start,end 內的 range 物件,start 預設為 0,step 預設為 1 5...