當前位置:
首頁 > 最新 > python與 masql資料庫,從基本開始做起

python與 masql資料庫,從基本開始做起

儘管用文件形式將數據保存到磁碟,已經是一種不錯的方式。但是,人們還是發明了更具有格式化特點,並且寫入和讀取更快速便捷的東西——資料庫(如果閱讀港台的資料,它們稱之為「資料庫」)。維基百科對資料庫有比較詳細的說明:

到目前為止,地球上有三種類型的數據:

系型資料庫:MySQL、Microsoft Access、SQL Server、Oracle、...

非關係型資料庫:MongoDB、BigTable(Google)、...

鍵值資料庫:Apache Cassandra(Facebook)、LevelDB(Google) ...

在本教程中,我們主要介紹常用的開源的資料庫,其中 MySQL 是典型代表。

概況

MySQL 是一個使用非常廣泛的資料庫,很多網站都是用它。關於這個資料庫有很多傳說。例如維基百科上這麼說:

不管怎麼著,MySQL 依然是一個不錯的資料庫選擇,足夠支持讀者完成一個相當不小的網站。

安裝

你的電腦或許不會天生就有 MySQL(是不是有的操作系統,在安裝的時候就內置了呢?的確有,所以特別推薦 Linux 的某發行版),它本質上也是一個程序,若有必要,須安裝。

我用 ubuntu 操作系統演示,因為我相信讀者將來在真正的工程項目中,多數情況下是要操作 Linux 系統的伺服器,並且,我酷愛用 ubuntu。還有,本教程的目標是 from beginner to master,不管是不是真的 master,總要裝得像,Linux 能夠給你撐門面。

第一步,在 shell 端運行如下命令:

運行完畢,就安裝好了這個資料庫。是不是很簡單呢?當然,當然,還要進行配置。

第二步,配置 MySQL

安裝之後,運行:

啟動 mysql 資料庫。然後進行下面的操作,對其進行配置。

默認的 MySQL 安裝之後根用戶是沒有密碼的,注意,這裡有一個名詞「根用戶」,其用戶名是:root。運行:

在這裡之所以用 -u root 是因為我現在是一般用戶(firehare),如果不加 -u root 的話,mysql 會以為是 firehare 在登錄。

進入 mysql 之後,會看到>符號開頭,這就是 mysql 的命令操作界面了。

下面設置 Mysql 中的 root 用戶密碼了,否則,Mysql 服務無安全可言了。

用 123456 做為 root 用戶的密碼,應該是非常愚蠢的,如果在真正的項目中,最好別這樣做,要用大小寫字母與數字混合的密碼,且不少於 8 位。

以後如果在登錄資料庫,就可以用剛才設置的密碼了。

運行

安裝之後,就要運行它,並操作這個資料庫。

輸入資料庫的密碼,之後出現:

看到這個界面內容,就說明你已經進入到數據裡面了。接下來就可以對這個數據進行操作。例如:

用這個命令,就列出了當前已經有的資料庫。

對資料庫的操作,除了用命令之外,還可以使用一些可視化工具。比如 phpmyadmin 就是不錯的。

更多資料庫操作的知識,這裡就不介紹了,讀者可以參考有關書籍。

MySQL 資料庫已經安裝好,但是 Python 還不能操作它,還要繼續安裝 Python 操作資料庫的模塊——Python-MySQLdb

安裝 Python-MySQLdb

Python-MySQLdb 是一個介面程序,Python 通過它對 mysql 數據實現各種操作。

在編程中,會遇到很多類似的介面程序,通過介面程序對另外一個對象進行操作。介面程序就好比鑰匙,如果要開鎖,人直接用手指去捅,肯定是不行的,那麼必須藉助工具,插入到鎖孔中,把鎖打開,之後,門開了,就可以操作門裡面的東西了。那麼打開鎖的工具就是介面程序。誰都知道,用對應的鑰匙開鎖是最好的,如果用別的工具(比如鎚子),或許不便利(其實還分人,也就是人開鎖的水平,如果是江洋大盜或者小毛賊什麼的,擅長開鎖,用別的工具也便利了),也就是介面程序不同,編碼水平不同,都是考慮因素。

啰嗦這麼多,一言蔽之,Python-MySQLdb 就是打開 MySQL 資料庫的鑰匙。

如果要源碼安裝,可以這裡下載

Python-mysqldb:https://pypi.Python.org/pypi/MySQL-Python/

下載之後就可以安裝了。

ubuntu 下可以這麼做:

也可以用 pip 來安裝:

安裝之後,在 python 交互模式下:

如果不報錯,恭喜你,已經安裝好了。如果報錯,恭喜你,可以借著錯誤信息提高自己的計算機水平了,請求助於 google 大神。

連接資料庫

要先找到老婆,才能談如何養育自己的孩子,同理連接資料庫之先要建立資料庫。

進入到資料庫操作界面:

輸入如下命令,建立一個資料庫:

注意上面的指令,如果僅僅輸入:create database qiwsirtest,也可以,但是,我在後面增加了 character set utf8,意思是所建立的資料庫 qiwsirtest,編碼是 utf-8 的,這樣存入漢字就不是亂碼了。

看到那一行提示:Query OK, 1 row affected (0.00 sec),就說明這個資料庫已經建立好了,名字叫做:qiwsirtest

資料庫建立之後,就可以用 Python 通過已經安裝的 mysqldb 來連接這個名字叫做 qiwsirtest 的庫了。

逐個解釋上述命令的含義:

host:等號的後面應該填寫 mysql 資料庫的地址,因為就資料庫就在本機上(也稱作本地),所以使用 localhost,注意引號。如果在其它的伺服器上,這裡應該填寫 ip 地址。一般中小型的網站,資料庫和程序都是在同一台伺服器(計算機)上,就使用 localhost 了。

user:登錄資料庫的用戶名,這裡一般填寫"root",還是要注意引號。當然,如果讀者命名了別的用戶名,資料庫管理者提供了專有用戶名,就更改為相應用戶。但是,不同用戶的許可權可能不同,所以,在程序中,如果要操作資料庫,還要注意所擁有的許可權。在這裡用 root,就放心了,什麼許可權都有啦。不過,這樣做,在大型系統中是應該避免的。

passwd:上述 user 賬戶對應的登錄 mysql 的密碼。我在上面的例子中用的密碼是"123123"。不要忘記引號。

db:就是剛剛通 create 命令建立的資料庫,我建立的資料庫名字是"qiwsirtest",還是要注意引號。看官如果建立的資料庫名字不是這個,就寫自己所建資料庫名字。

port:一般情況,mysql 的默認埠是 3306,當 mysql 被安裝到伺服器之後,為了能夠允許網路訪問,伺服器(計算機)要提供一個訪問埠給它。

charset:這個設置,在很多教程中都不寫,結果在真正進行數據存儲的時候,發現有亂碼。這裡我將 qiwsirtest 這個資料庫的編碼設置為 utf-8 格式,這樣就允許存入漢字而無亂碼了。注意,在 mysql 設置中,utf-8 寫成 utf8,沒有中間的橫線。但是在 Python 文件開頭和其它地方設置編碼格式的時候,要寫成 utf-8。切記!

註:connect 中的 host、user、passwd 等可以不寫,只有在寫的時候按照 host、user、passwd、db (可以不寫)、port 順序寫就可以,埠號 port=3306 還是不要省略的為好,如果沒有 db 在 port 前面,直接寫 3306 會報錯.

其實,關於 connect 的參數還不少,下面摘抄來自mysqldb 官方文檔的內容,把所有的參數都列出來,還有相關說明,請看官認真閱讀。不過,上面幾個是常用的,其它的看情況使用。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 魯濱遜 的精彩文章:

python小白變大牛知識點總結
python就業全方位解析

TAG:魯濱遜 |