新聞中心
前面寫了幾篇關(guān)于數(shù)據(jù)分析的文章,用爬蟲爬取了全網(wǎng)6500多只基金的作數(shù)據(jù)分析,算是數(shù)據(jù)分析篇開了個(gè)頭。當(dāng)時(shí)留下了幾個(gè)問題,其中一個(gè)問題就是我們的數(shù)據(jù)存儲(chǔ)用的是文件,其實(shí)正宗的做法就是用數(shù)據(jù)庫存儲(chǔ)。因?yàn)樽鰯?shù)據(jù)分析特別是當(dāng)你的數(shù)據(jù)量非常大時(shí)候或者后端開發(fā)的時(shí)候,肯定是要用數(shù)據(jù)庫的,所以學(xué)好數(shù)據(jù)庫非常有必要。好接下來幾篇,我將給大家介紹一下Python在數(shù)據(jù)庫里面的使用,小伙伴們,我們快開始吧~~
創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)高密,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
要點(diǎn):
- 數(shù)據(jù)庫的分類
- Python如何操作數(shù)據(jù)庫
- 數(shù)據(jù)庫環(huán)境的搭建
- 數(shù)據(jù)庫可視化的工具
- 實(shí)例寫一個(gè)小的數(shù)據(jù)庫
1.數(shù)據(jù)庫的分類
關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫
1).什么是關(guān)系數(shù)據(jù)庫
關(guān)系型數(shù)據(jù)庫,是指采用了關(guān)系模型來組織數(shù)據(jù)的數(shù)據(jù)庫,簡(jiǎn)單來說,關(guān)系模型指的就是二維表格模型,而一個(gè)關(guān)系型數(shù)據(jù)庫就是由二維表及其之間的聯(lián)系所組成的一個(gè)數(shù)據(jù)組織。象銀行系統(tǒng)會(huì)大量的用關(guān)系數(shù)據(jù)庫.比如大家經(jīng)常用的MySQL就是典型的關(guān)系數(shù)據(jù)庫.
優(yōu)點(diǎn):
容易理解:二維表結(jié)構(gòu)是非常貼近邏輯世界的一個(gè)概念,關(guān)系模型相對(duì)網(wǎng)狀、層次等其他模型來說更容易理解
使用方便:通用的SQL語言使得操作關(guān)系型數(shù)據(jù)庫非常方便
易于維護(hù):豐富的完整性(實(shí)體完整性、參照完整性和用戶定義的完整性)大大減低了數(shù)據(jù)冗余和數(shù)據(jù)不一致的概率
2).什么是非關(guān)系數(shù)據(jù)庫
關(guān)系數(shù)據(jù)庫雖然很好,但是隨著互聯(lián)網(wǎng)大規(guī)模的爆發(fā),弱點(diǎn)也越來越明顯,比如事務(wù)的一致性,多表聯(lián)查,高并發(fā)等等瓶頸很明顯。
于是NoSQL一詞橫空出世,以鍵值對(duì)存儲(chǔ),且結(jié)構(gòu)不固定,每一個(gè)元組可以有不一樣的字段,每個(gè)元組可以根據(jù)需要增加一些自己的鍵值對(duì),這樣就不會(huì)局限于固定的結(jié)構(gòu),可以減少一些時(shí)間和空間的開銷。比如MongoDb就是典型的NoSQL型數(shù)據(jù)庫(鍵值對(duì)大家想到了什么,對(duì)json格式).
寫到這里讓我想起了當(dāng)年的IP和ATM技術(shù)之爭(zhēng),其實(shí)沒有那個(gè)技術(shù)能稱王稱霸數(shù)年,獨(dú)領(lǐng)風(fēng)騷只是一時(shí)而已,順勢(shì)而為才是王道.技術(shù)沒有***,只有最適合時(shí)代而已.
2.Python如何操作數(shù)據(jù)庫
市面上現(xiàn)在主流的數(shù)據(jù)庫有Oracle,MySQL,Mongodb,Redis,SQLite,SQL Server等等,有同學(xué)會(huì)問這么多數(shù)據(jù)庫,我的代碼怎么移植啊,放心Python有一個(gè)標(biāo)準(zhǔn)數(shù)據(jù)庫接口為DB-API,Python DB-API為開發(fā)人員提供了數(shù)據(jù)庫應(yīng)用編程接口,也就是說使用它連接各數(shù)據(jù)庫后,就可以用相同的方式操作各數(shù)據(jù)庫。
Python DB-API使用流程也非常簡(jiǎn)單:
a).引入 API 模塊
b).獲取與數(shù)據(jù)庫的連接
c).執(zhí)行相關(guān)的語句進(jìn)行查詢,搜索和存儲(chǔ)過程
d).關(guān)閉數(shù)據(jù)庫連接
寫到這里,我突然想起來一個(gè)故事(把大象放進(jìn)冰箱),三步搞定,哈哈
3.數(shù)據(jù)庫環(huán)境的搭建,SQLite起步
明白了上面的道理之后,小伙伴肯定會(huì)迫不及待的動(dòng)手操練起來,馬上就要開啟數(shù)據(jù)庫之旅,我們還是選擇從簡(jiǎn)單的開始,先從SQLite開始學(xué)習(xí)使用,為啥要選SQLite呢,數(shù)據(jù)庫的學(xué)習(xí)看似復(fù)雜,其實(shí)就是一層紙,越過這個(gè)障礙,再學(xué)其他的數(shù)據(jù)庫都非常容易的.
SQLite是一個(gè)非常簡(jiǎn)單,免費(fèi),快速而強(qiáng)大的小型數(shù)據(jù)庫(麻雀雖小五臟俱全),不需要復(fù)雜的安裝和管理,輕輕松松使用,非常適合小白入門.而且在linux和Mac上都自帶SQLite3,是不是很爽啊.
(win的同學(xué)肯定不樂意了,其實(shí)win下安裝非常簡(jiǎn)便,大家可以百度一下,最多3分鐘搞定)
我們來看一下SQLite3長(zhǎng)啥樣吧,打開Mac終端敲sqlite3:
4.數(shù)據(jù)庫可視化工具
有的時(shí)候需要用可視化的工具來查看我們的數(shù)據(jù)庫,特別是數(shù)據(jù)表格很大的時(shí)候,能查看SQLite的數(shù)據(jù)庫文件工具很多,我這里推薦使用DB Browser for SQLite,可以非常直觀的去處理SQLite 文件.
大家可以去sqlitebrowser的官網(wǎng)下載,有win,linux,mac版本,mac版本大概13M,選擇一下下載即可.
5.創(chuàng)建一個(gè)數(shù)據(jù)庫
我們先來創(chuàng)建一個(gè)數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫的方法有很多種,我們可以用sqlite3命令行創(chuàng)建,也可以用Python代碼去寫一個(gè)新的數(shù)據(jù)庫,也可以用DB Browser for SQlite圖形可視化創(chuàng)建,對(duì)于零基礎(chǔ)的小白,我們先用最簡(jiǎn)單的圖形界面創(chuàng)建吧.
1).打開DB Browser
step1:點(diǎn)擊新建數(shù)據(jù)庫
step2:取一個(gè)名字,比如Students
step3:點(diǎn)擊save
2).建表
一個(gè)數(shù)據(jù)庫可以用很多表,我們新建一個(gè)叫demo的表,里面的列分別是
id:INTEGER(相當(dāng)于int型)
name:TEXT(相當(dāng)于string型)
sex:TEXT(相當(dāng)于string型)
age:INTEGER(相當(dāng)于int型)
關(guān)于SQLite里面的語法,下一篇會(huì)細(xì)細(xì)講,這里大家有一個(gè)大體的認(rèn)識(shí)就可以了.
3).編輯表的內(nèi)容
step1:點(diǎn)擊Brower data
step2:點(diǎn)擊新建記錄
step3:增加每一行的內(nèi)容
然后保存退出,就會(huì)在上面***步保存的地方(Desktop),出現(xiàn)了一個(gè)Students.db
6.命令行查詢數(shù)據(jù)庫內(nèi)容
剛才我們新建了一個(gè)Students.db文件,里面其實(shí)是一個(gè)3*4的二維表格,大家是不是想用sqlite方式看一下呢,好,我們下面打開一個(gè)終端,然后用sqlite3 Students.db打開看一下
敲.tables
會(huì)出現(xiàn)一個(gè)demo表格
敲select * from demo;
會(huì)出現(xiàn)demo表格里面的內(nèi)容
注意:
sql語句一定以;結(jié)尾
是不是和我們用圖形界面創(chuàng)建的表的內(nèi)容,一模一樣啊.有同學(xué)問,SQLite里面的數(shù)據(jù)格式是一個(gè)二維表,我們的NumPy,Pandas不是專門修理二維表的嗎,比如CSV,Excel文件,哇這位同學(xué)你太有才了,是的,數(shù)據(jù)分析很重要的一個(gè)過程就是,把數(shù)據(jù)清洗成表結(jié)構(gòu),存入數(shù)據(jù)庫,其實(shí)CSV文件是可以直接秒變SQL db文件的.
7.SQLite-Python|主角登場(chǎng)
經(jīng)過前面6個(gè)主題的鋪墊,拋磚引玉了這么久,我們的Python主角也該上場(chǎng)了.我們最最重要的目的就是用Python來讀寫數(shù)據(jù)庫,今天我們先來讀一下.
1).Pip 安裝SQLite3模塊
有很多種方法可以安裝,簡(jiǎn)單的用pip install sqlite3或者pycharm里面安裝一下
2).讀取數(shù)據(jù)庫demo表格
a).sqlite3.connect打開數(shù)據(jù)庫文件
b).獲得游標(biāo)cursor
c).執(zhí)行一個(gè)SQL語句,這里是查詢?nèi)?/p>
d).打印每一行的數(shù)據(jù)
e).不要忘記關(guān)閉游標(biāo)和數(shù)據(jù)庫
結(jié)論:
好了,Python數(shù)據(jù)庫入門篇就先講到這里了,是不是很簡(jiǎn)單,今天很多內(nèi)容沒有展開講,為的就是讓小白用戶能通俗的進(jìn)入數(shù)據(jù)庫的殿堂,后面會(huì)由淺入深的慢慢一層一層講。
數(shù)據(jù)庫其實(shí)沒有想象的那么神秘,那么難的。大家動(dòng)手搭建個(gè)環(huán)境就可以入手了,而且可視化工具雖然很方便,當(dāng)然還是建議大家從命令行入手,這樣對(duì)你系統(tǒng)的了解數(shù)據(jù)庫的操作很有幫助。
數(shù)據(jù)分析之?dāng)?shù)據(jù)庫篇我的項(xiàng)目主要用的是MySQL和Mongodb,這兩者各有千秋,都是我的***,應(yīng)用的場(chǎng)景稍微不一樣,我們后面會(huì)講到的。
網(wǎng)站欄目:零基礎(chǔ)Python數(shù)據(jù)庫怎么學(xué)?大牛帶你揚(yáng)帆起航
文章來源:http://m.5511xx.com/article/cccojod.html


咨詢
建站咨詢

