在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...