天天看點

[python] 專題九.Mysql資料庫程式設計基礎知識

        在python網絡爬蟲中,通常是通過txt純文字方式存儲,其實也是可以存儲在資料庫中的;同時在wamp(windows、apache、mysql、php或python)開發網站中,也可以通過python建構網頁的,是以這篇文章主要講述python調用mysql資料庫相關程式設計知識。從以下幾個方面進行講解:

        1.配置myslq

        2.sql語句基礎知識

        3.python操作mysql基礎知識

        4.python調用mysql示例

        首先下載下傳mysql-5.0.96-winx64,安裝過程如下圖所示。

        1.安裝mysql 5.0

[python] 專題九.Mysql資料庫程式設計基礎知識
[python] 專題九.Mysql資料庫程式設計基礎知識
[python] 專題九.Mysql資料庫程式設計基礎知識
[python] 專題九.Mysql資料庫程式設計基礎知識

        2.選擇手動配置、服務類型、通用多功能型和安裝路徑

[python] 專題九.Mysql資料庫程式設計基礎知識
[python] 專題九.Mysql資料庫程式設計基礎知識
[python] 專題九.Mysql資料庫程式設計基礎知識
[python] 專題九.Mysql資料庫程式設計基礎知識

        3.設定資料庫通路量連接配接數為15、端口為3306(代碼中設定url用到)、編碼方式為utf-8

[python] 專題九.Mysql資料庫程式設計基礎知識
[python] 專題九.Mysql資料庫程式設計基礎知識
[python] 專題九.Mysql資料庫程式設計基礎知識
[python] 專題九.Mysql資料庫程式設計基礎知識

        4.設定預設超級root使用者的使用者名和密碼,最後安裝成功

[python] 專題九.Mysql資料庫程式設計基礎知識
[python] 專題九.Mysql資料庫程式設計基礎知識

        安裝mysql 5.0成功後,進行資料庫的簡單操作。

        1.運作mysql輸入預設使用者密碼123456

[python] 專題九.Mysql資料庫程式設計基礎知識

         2.建立資料庫test01和使用資料庫(第二次調用直接use database)

         create database test01;

[python] 專題九.Mysql資料庫程式設計基礎知識

        顯示資料庫中包含的資料庫:show databases;

[python] 專題九.Mysql資料庫程式設計基礎知識

         3.建立表student,其中學号為主鍵

         create table student(username varchar(20),password varchar(20),stuid int primary key);

[python] 專題九.Mysql資料庫程式設計基礎知識

        4.顯示表結構,使用語句desc student

[python] 專題九.Mysql資料庫程式設計基礎知識

        5.向學生表中插入資料并顯示查詢的資料

[python] 專題九.Mysql資料庫程式設計基礎知識

        6.删除表:drop table student;

[python] 專題九.Mysql資料庫程式設計基礎知識

        7.更新資料

        update student set password=’000000’ where stuid=’1’;

[python] 專題九.Mysql資料庫程式設計基礎知識

        8.删除資料

        delete from student where username=’eastmount;

[python] 專題九.Mysql資料庫程式設計基礎知識

        此時mysql操作資料庫基本講解結束,你同樣可以實作資料庫的增删改查、事務、存儲過程等操作,建議安裝可視化的軟體來替代黑框,或使用navicat for mysql軟體即可。代碼如下:

        通常的安裝方法是使用:pip install mysql 安裝python的mysql庫,但是總會報錯。常見錯誤如:

        microsoft visual c++ 9.0 is required  (unable to find vcvarsall.bat)

        mysql.c(42) : fatal error c1083: cannot open include file: 'config-win.h': no such file or directory

        這些可能是驅動等問題。

[python] 專題九.Mysql資料庫程式設計基礎知識

        正确安裝方法:

        建議下載下傳一個mysql-python-1.2.3.win-amd64-py2.7.exe檔案進行安裝。

[python] 專題九.Mysql資料庫程式設計基礎知識

        下面我們要詳細了解python資料庫api。從python中通路資料庫需要接口程式,接口程式是一個python子產品,它提供資料庫用戶端庫(通常是c語言寫成的)的接口供你通路。注意:python接口程式都一定要遵守python db-api規範。

        db-api是一個規範。它定義了一系列必須的對象和資料庫存取方式,以便為各種各樣的底層資料庫系統和多種多樣的資料庫接口程式提供一緻的通路接口。db-api為不同的資料庫提供了一緻的通路接口,在不同的資料庫之間移植代碼成為一件輕松的事情。

         下面簡單介紹db-api的使用方法。

        1.子產品屬性

        db-api規範裡的以下特性和屬性必須提供。一個db-api相容子產品定義如下所示:

        python調用mssql需要導入mysqldb庫,如下:

        2.connect()函數

        其中主要使用的方法是connect對象。connect()方法生成一個connect對象,用于通路資料庫,其參數如下:

        注意并非所有的接口程式都嚴格按照這種格式,如mysqldb。

        connect()對象方法如下:

        注意,執行close()方法則上述的連接配接對象方法不能再使用,否則發生異常。commit()、rollback()、cursor()或許更對于支援事務的資料庫更有意義。

        資料庫事務(database transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要麼完整地執行,要麼完全地不執行。 一旦你完成了資料庫連接配接,關閉了遊标對象,然後在執行commit()送出你的操作,然後關閉連接配接。

        3.遊标對象

        上面說了connect()方法用于提供連接配接資料庫的接口,如果要對資料庫操作那麼還需要使用遊标對象。遊标對象的屬性和方法:

        下面通過簡單的示例進行講解。

        在前面資料庫中我們建立了資料庫“test01”和表“student”,同時插入了資料。那麼,怎樣通過python來顯示呢?

       1.查詢所有資料庫

        首先,我們檢視本地資料庫中所包含的資料庫名稱,通過“show databases”語句。

        其中通過連結資料庫代碼為:

conn=mysqldb.connect(host='localhost',user='root',passwd='123456',port=3306)

        通路root超級使用者,其密碼為“123456”,端口為“3306”,其結果如下:

[python] 專題九.Mysql資料庫程式設計基礎知識

        如果不知道本地資料庫的名稱,可以通過該方法,先查詢資料庫中包含哪些資料庫,然後再連接配接該資料庫進行相關的操作。

        2.查詢表

        下面介紹查詢表student中資料,代碼如下,代碼的具體含義是通過connect()連接配接資料庫,通過conn.cursor()定義遊标,然後調用遊标的excute(sql)執行資料庫操作,此處為查詢操作,再通過fetchall()函數擷取所有資料。

        輸出結果如圖所示:

[python] 專題九.Mysql資料庫程式設計基礎知識

        對應的mysql中的結果是一緻的,下圖是對應的結果。

[python] 專題九.Mysql資料庫程式設計基礎知識

        3.建立表

        下面這段代碼是建立一張教師表,主要是通過commit()送出資料。

        輸出結果如下所示,插入教師表,包含字段:教師序号(id)、教師名稱(name)、教師性别(sex)。

[python] 專題九.Mysql資料庫程式設計基礎知識

        插入資料也可以通過execute(sql)方法實作,如:       

        cur.execute("insert into student values( 'yxz', '111111', '10')")

        但插入的新資料通常是通過變量進行指派,而不是固定的,是以要對這條語句中的值做修改。我們可以做如下修改:

        輸出結果如下所示:

        同樣,對資料庫的增删改插都可以進行,請讀者自行閱讀。

        後面我會結合python爬蟲講述,如何将爬取的内容存儲在資料庫中,如我csdn的部落格,爬取部落格标題、釋出時間、閱讀量和評論數。

[python] 專題九.Mysql資料庫程式設計基礎知識

        mysql資料庫中結果如下圖所示:

[python] 專題九.Mysql資料庫程式設計基礎知識

        最後希望文章對你有所幫助,如果文章中存在不足或錯誤的地方,還請海涵~還是那句話,挺享受現在的老師生活,不論科研、項目,還是教學,很充實,加油!

        但行好事,莫問前程。

        待随滿天李桃,再追學友趣事。

        (by:eastmount 2016-08-10 晚上10點  )