自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

原來(lái)Python自帶了數(shù)據(jù)庫(kù),用起來(lái)真方便!

開(kāi)發(fā) 開(kāi)發(fā)工具
Python作為數(shù)據(jù)科學(xué)主流語(yǔ)言,被廣泛用于數(shù)據(jù)讀存、處理、分析、建模,可以說(shuō)是無(wú)所不能。

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

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

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

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

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

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

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

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

1. 導(dǎo)入sqlite3模塊

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

 

  1. import sqlite3 

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

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

 

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

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

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

建立與數(shù)據(jù)庫(kù)的連接后,需要?jiǎng)?chuàng)建一個(gè)游標(biāo)cursor對(duì)象,該對(duì)象的.execute()方法可以執(zhí)行sql命令,讓我們能夠進(jìn)行數(shù)據(jù)操作。

 

  1. #創(chuàng)建一個(gè)游標(biāo) cursor 
  2. cur = conn.cursor() 

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

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

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

 

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

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

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

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

 

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

執(zhí)行以下語(yǔ)句插入多條數(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ù)庫(kù)并不會(huì)自動(dòng)提交,所以需要手動(dòng) commit 你的改動(dòng)conn.commit() 

5. 查詢(xún)數(shù)據(jù)

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

 

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

返回:

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

6. 其他操作

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

 

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

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

 

  1. # 關(guān)閉游標(biāo) 
  2. cur.close() 
  3. # 關(guān)閉連接 
  4. conn.close() 

附連接connection和游標(biāo)cursor的API方法:

 

責(zé)任編輯:華軒 來(lái)源: Python大數(shù)據(jù)分析
相關(guān)推薦

2023-11-01 15:45:29

DBMPython

2025-03-25 08:40:00

前端開(kāi)發(fā)Axios

2024-07-04 11:33:33

2021-06-30 09:20:18

NuShell工具Linux

2024-09-05 09:38:55

SpringActuator應(yīng)用程序

2021-03-10 09:54:43

RustNuShell系統(tǒng)

2022-01-19 07:32:11

數(shù)據(jù)庫(kù)插件IDEA

2012-07-11 09:34:39

微軟云計(jì)算

2022-05-22 21:16:46

TypeScriptOmit 工具

2020-11-27 14:28:13

數(shù)據(jù)分析工具數(shù)據(jù)庫(kù)

2010-11-19 10:38:26

Oracle XE自帶

2009-04-08 09:17:54

Windows MobWINCE數(shù)據(jù)庫(kù)

2021-09-18 08:52:45

人工智能

2024-05-21 10:28:51

API設(shè)計(jì)架構(gòu)

2010-03-18 14:23:28

SQL Azure

2020-07-06 15:13:16

安卓AirDrop無(wú)線傳輸

2021-09-29 07:13:12

編程 Python Merge

2020-01-06 15:00:43

Linux電腦發(fā)行版

2021-04-18 07:18:31

Chrome

2021-10-29 11:25:41

代碼編程語(yǔ)言Java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)