程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 最新用python來操作mysql完全解析

最新用python來操作mysql完全解析

編輯:MySQL綜合教程

最新用python來操作mysql完全解析


1.此處通過MySQLdb來操作mysql,首先

sudo apt-get install libmysqlclient-dev,如何出現

 Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_i18n_Translation-en%5fUS
E: The package lists or status file could not be parsed or opened.

如果你也出現上面錯誤時,采用下面的辦法解決,

sudo rm /var/lib/apt/lists/* -vf sudo apt-get update

然後再 sudo apt-get install libmysqlclient-dev,安裝開發環境。

這裡寫圖片描述

sudo pip install mysql-python安裝mysql for python,如何檢查是否正確安裝?在python環境下,import MySQLdb 不顯示錯誤即安裝成功。如下圖中所示,

這裡寫圖片描述

2.python和mysql的交互

2.1 創建數據庫,在創建之前先看看存在的數據庫,如果對mysql數據庫中的各種概念不清楚的可以參考這裡

這裡寫圖片描述

用python來創建數據庫

#!/usr/bin/python
#coding=utf-8
import MySQLdb
conn = MySQLdb.connect(host='localhost',user='root',passwd='123')
curs = conn.cursor()
curs.execute("create database fristDb")
conn.close()

再次查看數據庫,可以看見我們新建的數據庫fristDb.

這裡寫圖片描述<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMyBpZD0="22-連接我們新建的數據庫fristdb並查看版本">2.2 連接我們新建的數據庫fristDb,並查看版本

#!/usr/bin/python
#coding=utf-8
import MySQLdb
conn = MySQLdb.connect(host='localhost',user='root',passwd='123',db='fristDb')
curs = conn.cursor()
curs.execute("select version()")
data = curs.fetchone()
print "our database version: %s" % data
conn.close()

輸出結果

這裡寫圖片描述

2.3 在數據庫fristDb中建立數據表fristTable

這裡寫圖片描述

#!/usr/bin/python
#coding=utf-8
import MySQLdb
conn = MySQLdb.connect(host='localhost',user='root',passwd='123',db='fristDb')
curs = conn.cursor()
curs.execute("drop table if exists fristTable")
sql = """create table fristTable (first_name char(20) not null,last_name char(20),age int,sex char(1))"""
curs.execute(sql)
conn.close()

執行完上面代碼後再次查看數據表

這裡寫圖片描述

2.4數據庫的插入操作,插入前查看數據表中的數據

這裡寫圖片描述

#!/usr/bin/python
#coding=utf-8
import MySQLdb
conn = MySQLdb.connect(host='localhost',user='root',passwd='123',db='fristDb')
curs = conn.cursor()
sql = """insert into fristTable (first_name,last_name,age,sex) values ('dragon','great',20,'M')"""
try:
    curs.execute(sql)
    conn.commit()
except:
    conn.rollback()

conn.close()

這裡寫圖片描述

3.數據庫的其它操作可以自己去推,基本都是這個樣子

4.補充:

connect函數的常用參數 user #用戶名 password #用戶密碼 host #主機名 database #數據庫名 connect函數會返回連接對象,連接對象方法 close() #關閉連接之後,連接對象和它的游標均不可用 commit() #如果支持的話就提交掛起的事務,否則不做任何事 rollback() #回滾掛起的事務(可能不可用) cursor() #返回連接的游標對象

4.1 游標對象方法

close() #關閉游標 execute(oper[,params]) #執行SQL操作,可能使用參數 executemany(oper,pseq) #對序列中的每個參數執行SQL操作 fetchone() #把查詢的結果集中的下一行保存為序列,或者+ None fetchmany([size]) #獲取查詢結果集中的多行,默認為1 fetchall() #將所有(剩余)的行作為序列的序列

4.2 需要注意的點:

1 Python文件設置編碼 utf-8 (文件前面加上 #encoding=utf-8) 2 MySQL數據庫charset=utf-8 3 Python連接MySQL是加上參數 charset=utf8 4 設置Python的默認編碼為 utf-8 (sys.setdefaultencoding(utf-8)
#encoding=utf-8 
 import sys 
 import MySQLdb 
 reload(sys) 
 sys.setdefaultencoding('utf-8') 
 db=MySQLdb.connect(user='root',charset='utf8') 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved