欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python操作MySQL的一些基本方法

 更新時間:2015年08月16日 15:19:20   作者:Yi_Zhi_Yu  
這篇文章主要介紹了使用Python操作MySQL的一些基本方法,Python+MySQL也是服務(wù)器端快速開發(fā)的一種絕佳搭配方案,需要的朋友可以參考下

前奏

為了能操作數(shù)據(jù)庫, 首先我們要有一個數(shù)據(jù)庫, 所以要首先安裝Mysql, 然后創(chuàng)建一個測試數(shù)據(jù)庫python_test用以后面的測試使用

CREATE DATABASE `python_test` CHARSET UTF8

導(dǎo)入數(shù)據(jù)庫模塊

import MySQLdb

連接數(shù)據(jù)庫

con = MySQLdb.connect(host="localhost", user="root", passwd="******",db="python_test",port=3306)

在這里, 我們雖然拿到了python的數(shù)據(jù)庫連接, 但是不能在這個對象上直接對數(shù)據(jù)庫進(jìn)行操作, 還需要獲取對應(yīng)的操作游標(biāo)才能進(jìn)行數(shù)據(jù)庫的操作,所以還需要進(jìn)行下面的操作

cur = con.cursor()

創(chuàng)建表格

cur.execute('create table stu_info (name char(128) not null default "", age tinyint(3) not null default 0, sex enum("man","femal") not null default "man") engine=innodb charset=utf8')
#0L

cur.execute 返回執(zhí)行的sql 影響的行數(shù), 因為這里是創(chuàng)建數(shù)據(jù)庫, 所以是0L行

但到這里還并沒有真正執(zhí)行了sql語句, 必須使用MySQLdb.commit才是真正執(zhí)行完畢

con.commit()

到這里, 我們的表格才算真正創(chuàng)建完成

同理, 往表中寫數(shù)據(jù), 也是一樣的操作流程 execute ==> commit

不過, 寫入數(shù)據(jù)的execute 稍有不同, 如下
更新表數(shù)據(jù)

往表中寫入數(shù)據(jù)時, 執(zhí)行execute 方法, 有兩種方式, 一種是直接execute(sql), 然后commit 完成, sql里是寫入的sql 語句

cur.execute("insert into stu_info (name, age, sex) values ('Yi_Zhi_Yu',25,'man')")
con.commit()

這會直接寫入表中,但還有另外一種方式,
execute 可以接受兩個參數(shù), 第一個參數(shù)是sql語句, 不過這個sql中的values的內(nèi)容使用占位符%s表示,第二個參數(shù)是實際的寫入的values列表, 如下:

cur.execute("insert into stu_info (name, age, sex) values (%s,%s,%s)", ("Tony",25, "man"))
con.commit()

這種方式與第一中方式相比, 更清晰一些, 安全性也更好, 能有效防止sql注入

另外, cursor還有一個executemany, 參數(shù)和execute一樣, 不過第二個參數(shù)可以傳遞多列表值, 達(dá)到多次執(zhí)行某個語句的效果

cur.executemany("insert into stu_info (name, age, sex) values (%s,%s,%s)",(("LiMei",26,"femal"),("YuanYuan",28,"femal")))
con.commit()

這里實際上就是執(zhí)行了兩次插入操作
數(shù)據(jù)查詢

直接看例子

cur.execute("select * from stu_info")
stus = cur.fetchall() 

#stus 已經(jīng)是查詢的結(jié)果結(jié)合了, 格式如下:

(('Yi_Zhi_Yu', 25, 'man'),
 ('Tony', 25, 'man'),
 ('LiMei', 26, 'femal'),
 ('YuanYuan', 28, 'femal'))

tuple形式, 我們可以通過循環(huán)輸出

 for stu in stus:
    print "name: %s; age: %d; sex: %s" %(stu[0], stu[1], stu[2])

輸出:

name: Yi_Zhi_Yu; age: 25; sex: man
name: Tony; age: 25; sex: man
name: LiMei; age: 26; sex: femal
name: YuanYuan; age: 28; sex: femal

那上面的查詢雖然得到了每行的數(shù)據(jù), 但結(jié)果集中并沒有字段名, 如果要返回字段名, 如下操作:

cur = con.cursor(cursorclass=MySQLdb.cursors.DictCursor)
cur.execute("select * from stu_info")
cur.fetchall()

返回的結(jié)果集:

({'age': 25, 'name': 'Yi_Zhi_Yu', 'sex': 'man'},
 {'age': 25, 'name': 'Tony', 'sex': 'man'},
 {'age': 26, 'name': 'LiMei', 'sex': 'femal'},
 {'age': 28, 'name': 'YuanYuan', 'sex': 'femal'})

每個元素都是一個dict, 以key-value的形式展示了每個字段和對應(yīng)的值
總結(jié)

Python 中對數(shù)據(jù)的操作, 增刪改均要在指針對象執(zhí)行了sql語句后, 使用連接對象commit, 查詢的結(jié)果使用指針對象的fetch系列方法獲取

PS: 以上皆為學(xué)習(xí)筆記, 難免有錯, 歡迎指正

相關(guān)文章

  • 基于DATAFRAME中元素的讀取與修改方法

    基于DATAFRAME中元素的讀取與修改方法

    今天小編就為大家分享一篇基于DATAFRAME中元素的讀取與修改方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python threading的使用方法解析

    Python threading的使用方法解析

    這篇文章主要介紹了Python threading的使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Python基于數(shù)列實現(xiàn)購物車程序過程詳解

    Python基于數(shù)列實現(xiàn)購物車程序過程詳解

    這篇文章主要介紹了Python基于數(shù)列實現(xiàn)購物車程序過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Python chardet庫識別編碼原理解析

    Python chardet庫識別編碼原理解析

    這篇文章主要介紹了python chardet庫識別編碼原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • Python合并pdf文件的工具

    Python合并pdf文件的工具

    PDF文件合并工具是非常好用可以把多個pdf文件合并成一個,本文以5個pdf文件為例給大家分享具體操作方法,通過實例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-07-07
  • 基于Numpy.convolve使用Python實現(xiàn)滑動平均濾波的思路詳解

    基于Numpy.convolve使用Python實現(xiàn)滑動平均濾波的思路詳解

    這篇文章主要介紹了Python極簡實現(xiàn)滑動平均濾波(基于Numpy.convolve)的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • 記錄模型訓(xùn)練時loss值的變化情況

    記錄模型訓(xùn)練時loss值的變化情況

    這篇文章主要介紹了記錄模型訓(xùn)練時loss值的變化情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python實現(xiàn)上下班搶個順風(fēng)單腳本

    Python實現(xiàn)上下班搶個順風(fēng)單腳本

    這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)上下班搶個順風(fēng)單腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python中Django發(fā)送帶圖片和附件的郵件

    Python中Django發(fā)送帶圖片和附件的郵件

    本篇文章主要介紹了Python中Django發(fā)送帶圖片和附件的郵件 ,非常具有實用價值,需要的朋友可以參考下。
    2017-03-03
  • python實踐項目之監(jiān)控當(dāng)前聯(lián)網(wǎng)狀態(tài)詳情

    python實踐項目之監(jiān)控當(dāng)前聯(lián)網(wǎng)狀態(tài)詳情

    介紹一個利用Python監(jiān)控當(dāng)前聯(lián)網(wǎng)狀態(tài)情況的python代碼,它可以清楚地知道,你的電腦網(wǎng)絡(luò)是否是鏈接成功或失敗,下面小編帶大家來一起學(xué)習(xí)它
    2019-05-05

最新評論