日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
原來Python自帶了數(shù)據(jù)庫,用起來真方便!

 Python作為數(shù)據(jù)科學主流語言,被廣泛用于數(shù)據(jù)讀存、處理、分析、建模,可以說是無所不能。

創(chuàng)新互聯(lián)是一家業(yè)務范圍包括IDC托管業(yè)務,虛擬空間、主機租用、主機托管,四川、重慶、廣東電信服務器租用,成都二樞服務器租用托管,成都網(wǎng)通服務器托管,成都服務器租用,業(yè)務范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務公司。

數(shù)據(jù)一般存放在本地文件或者數(shù)據(jù)庫里,之前介紹過如何使用python讀取本地文件,也對# PyMySQL、cx_Oracle等數(shù)據(jù)庫連接庫做過簡單的使用分享。

教你使用Python玩轉(zhuǎn)MySQL數(shù)據(jù)庫,大數(shù)據(jù)導入不再是難題!

干貨!python與MySQL數(shù)據(jù)庫的交互實戰(zhàn)

這次推薦一個python自帶的輕量級數(shù)據(jù)庫模塊-sqlite3,先要弄清楚什么是SQLite:

SQLite是一種用C寫的小巧的嵌入式數(shù)據(jù)庫,它的數(shù)據(jù)庫就是一個文件。SQLite 不需要一個單獨的服務器進程或操作的系統(tǒng),不需要配置,這意味著不需要安裝或管理,所有的維護都來自于SQLite 軟件本身。

sqlite3模塊不同于PyMySQL模塊,PyMySQL是一個python與mysql的溝通管道,需要你在本地安裝配置好mysql才能使用,而SQLite是python自帶的數(shù)據(jù)庫,不需要任何配置,使用sqlite3模塊就可以驅(qū)動它。

本文我們將進行連接 SQLite數(shù)據(jù)庫、創(chuàng)建表、插入數(shù)據(jù)、讀取數(shù)據(jù)、修改數(shù)據(jù)等操作。

1. 導入sqlite3模塊

sqlite3是內(nèi)置模塊,所以不需要安裝的,直接import導入即可:

 
 
 
 
  1. import sqlite3 

2. 創(chuàng)建與SQLite數(shù)據(jù)庫的連接

使用sqlite3.connect()函數(shù)連接數(shù)據(jù)庫,返回一個Connection對象,我們就是通過這個對象與數(shù)據(jù)庫進行交互。數(shù)據(jù)庫文件的格式是filename.db,如果該數(shù)據(jù)庫文件不存在,那么它會被自動創(chuàng)建。該數(shù)據(jù)庫文件是放在電腦硬盤里的,你可以自定義路徑,后續(xù)操作產(chǎn)生的所有數(shù)據(jù)都會保存在該文件中。

 
 
 
 
  1. # 創(chuàng)建與數(shù)據(jù)庫的連接 
  2. conn = sqlite3.connect('test.db') 

還可以在內(nèi)存中創(chuàng)建數(shù)據(jù)庫,只要輸入特殊參數(shù)值:memory:即可,該數(shù)據(jù)庫只存在于內(nèi)存中,不會生成本地數(shù)據(jù)庫文件。

 
 
 
 
  1. conn = sqlite3.connect(':memory:') 

建立與數(shù)據(jù)庫的連接后,需要創(chuàng)建一個游標cursor對象,該對象的.execute()方法可以執(zhí)行sql命令,讓我們能夠進行數(shù)據(jù)操作。

 
 
 
 
  1. #創(chuàng)建一個游標 cursor 
  2. cur = conn.cursor() 

3. 在SQLite數(shù)據(jù)庫中創(chuàng)建表

這里就要執(zhí)行sql的建表語句了,我們先創(chuàng)建一張如下的學生成績表-scores:

該表目前只有字段名和數(shù)據(jù)類型,沒有數(shù)據(jù),執(zhí)行以下語句實現(xiàn):

 
 
 
 
  1. # 建表的sql語句 
  2. sql_text_1 = '''CREATE TABLE scores 
  3.            (姓名 TEXT, 
  4.             班級 TEXT, 
  5.             性別 TEXT, 
  6.             語文 NUMBER, 
  7.             數(shù)學 NUMBER, 
  8.             英語 NUMBER);''' 
  9. # 執(zhí)行sql語句 
  10. cur.execute(sql_text_1) 

4. 向表中插入數(shù)據(jù)

建完表-scores之后,只有表的骨架,這時候需要向表中插入數(shù)據(jù):

執(zhí)行以下語句插入單條數(shù)據(jù):

 
 
 
 
  1. # 插入單條數(shù)據(jù) 
  2. sql_text_2 = "INSERT INTO scores VALUES('A', '一班', '男', 96, 94, 98)" 
  3. cur.execute(sql_text_2) 

執(zhí)行以下語句插入多條數(shù)據(jù):

 
 
 
 
  1. data = [('B', '一班', '女', 78, 87, 85), 
  2.         ('C', '一班', '男', 98, 84, 90), 
  3.         ] 
  4. cur.executemany('INSERT INTO scores VALUES (?,?,?,?,?,?)', data) 
  5. # 連接完數(shù)據(jù)庫并不會自動提交,所以需要手動 commit 你的改動conn.commit() 

5. 查詢數(shù)據(jù)

我們已經(jīng)建好表,并且插入了三條數(shù)據(jù),現(xiàn)在來查詢特定條件下的數(shù)據(jù):

 
 
 
 
  1. # 查詢數(shù)學成績大于90分的學生 
  2. sql_text_3 = "SELECT * FROM scores WHERE 數(shù)學>90" 
  3. cur.execute(sql_text_3) 
  4. # 獲取查詢結(jié)果 
  5. cur.fetchall() 

返回:

備注:獲取查詢結(jié)果一般可用.fetchone()方法(獲取第一條),或者用.fetchall()方法(獲取所有條)。

6. 其他操作

對數(shù)據(jù)庫做改動后(比如建表、插數(shù)等),都需要手動提交改動,否則無法將數(shù)據(jù)保存到數(shù)據(jù)庫。

 
 
 
 
  1. # 提交改動的方法 
  2. conn.commit() 

使用完數(shù)據(jù)庫之后,需要關閉游標和連接:

 
 
 
 
  1. # 關閉游標 
  2. cur.close() 
  3. # 關閉連接 
  4. conn.close() 

附連接connection和游標cursor的API方法:


分享名稱:原來Python自帶了數(shù)據(jù)庫,用起來真方便!
地址分享:http://www.dlmjj.cn/article/ccsjocs.html