最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用sqlite3模塊內(nèi)置數(shù)據(jù)庫

 更新時間:2020年05月07日 16:01:56   作者:夏日的向日葵  
這篇文章主要介紹了Python使用sqlite3模塊內(nèi)置數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

1、python內(nèi)置的sqlite3模塊,創(chuàng)建數(shù)據(jù)庫中的表,并向表中插入數(shù)據(jù),從表中取出所有行,以及輸出行的數(shù)量。

#!/usr/bin/env python3
#創(chuàng)建SQLite3內(nèi)存數(shù)據(jù)庫,并創(chuàng)建帶有四個屬性的sales表
#sqlite3模塊,提供了一個輕量級的基于磁盤的數(shù)據(jù)庫,不需要獨立的服務器進程
import sqlite3
#使用‘:memory:'在內(nèi)存中創(chuàng)建了一個數(shù)據(jù)庫,創(chuàng)建了連接對象con來代表數(shù)據(jù)庫
con = sqlite3.connect(':memory:')
#創(chuàng)建表名為sales的表,將這個字符串賦值給query
query = """CREATE TABLE sales
      (customer VARCHAR(20),
      product VARCHAR(40),
      amount FLOAT,
      date DATE);"""
#使用連接對象的execute()方法執(zhí)行query中的SQL命令
con.execute(query)
#使用連接對象的commit()方法將修改提交(保存)到數(shù)據(jù)庫
con.commit()
#向表中插入幾行數(shù)據(jù)
data = [('Richard Lucas','Notepad',2.50,'2019-01-02'),
    ('Jenny Kim','Binder',4.15,'2019-01-05'),
    ('Svetlana Crow','Printer',155.75,'2019-02-03'),
    ('Stephen Randolph','Computer',679.40,'2019-02-20')]
#將插入語句賦給變量statement,?是占位符
statement = "INSERT INTO sales VALUES(?,?,?,?)"
#因為有四個占位符,這里就需要提供一個包含4個值的元組,executemany()方法為data中的每個數(shù)據(jù)元組執(zhí)行
#statement中的SQL命令,這里執(zhí)行了四次insert命令
con.executemany(statement,data)
#將修改保存到數(shù)據(jù)庫
con.commit()
#查詢sales表,并將命令結(jié)果賦值給一個光標對象cursor,光標對象有execute、executemany、fetchone、
#fetchmany和fetchall方法
cursor = con.execute("SELECT * FROM sales")
#返回結(jié)果集中的所有行
rows = cursor.fetchall()
print(rows)
print('………………')
#查詢結(jié)果中行的數(shù)量
row_counter = 0
for row in rows:
  print(row)
  row_counter += 1
print('………………')
print('Number of rows: %d' % (row_counter))

Spyder右下角打印出來的結(jié)果:

[('Richard Lucas', 'Notepad', 2.5, '2019-01-02'), ('Jenny Kim', 'Binder', 4.15, '2019-01-05'), ('Svetlana Crow', 'Printer', 155.75, '2019-02-03'), ('Stephen Randolph', 'Computer', 679.4, '2019-02-20')]
………………
('Richard Lucas', 'Notepad', 2.5, '2019-01-02')
('Jenny Kim', 'Binder', 4.15, '2019-01-05')
('Svetlana Crow', 'Printer', 155.75, '2019-02-03')
('Stephen Randolph', 'Computer', 679.4, '2019-02-20')
………………
Number of rows: 4

2、python內(nèi)置的sqlite3模塊,向表中插入新紀錄

名稱為“CSV測試數(shù)據(jù).csv”的數(shù)據(jù)源:

將本地“CSV測試數(shù)據(jù).csv”的數(shù)據(jù)導入到本地數(shù)據(jù)庫football_game.db中:

#!/usr/bin/env python3
#創(chuàng)建SQLite3內(nèi)存數(shù)據(jù)庫,并創(chuàng)建帶有四個屬性的sales表
#sqlite3模塊,提供了一個輕量級的基于磁盤的數(shù)據(jù)庫,不需要獨立的服務器進程
import sqlite3
import csv
input_file = "F://python入門//數(shù)據(jù)1//CSV測試數(shù)據(jù).csv"
#為一個簡單的本地數(shù)據(jù)庫football_game.db創(chuàng)建連接,football_game.db為數(shù)據(jù)庫名稱
con = sqlite3.connect('football_game.db')
#創(chuàng)建了一個光標
c = con.cursor()
#如果表名存在,則刪除它
drop_table = """DROP TABLE IF EXISTS football_game;"""
c.execute(drop_table)
con.commit()
#創(chuàng)建表名為football_game的表,將這個字符串賦值給create_table
create_table = """CREATE TABLE IF NOT EXISTS football_game
      (name VARCHAR(20),
      sex VARCHAR(10),
      age INT,
      score INT,
      device_number VARCHAR(20),
      cost VARCHAR(20));"""
#使用連接對象的execute()方法執(zhí)行create_table中的SQL命令
c.execute(create_table)
#使用連接對象的commit()方法將修改提交(保存)到數(shù)據(jù)庫
con.commit()
#從CSV格式的輸入文件中讀取要加載到數(shù)據(jù)庫中的數(shù)據(jù),創(chuàng)建file_reader對象,用于存儲CSV中的數(shù)據(jù)集
file_reader = csv.reader(open(input_file,'r'),delimiter=',')
#從輸入文件中讀入第一行
header = next(file_reader,None)
#將輸入的所有數(shù)據(jù)進行循環(huán),先是每行循環(huán),再是每列循環(huán)
for row in file_reader:
  data = []
  for column_index in range(len(header)):
    data.append(row[column_index])
  print(data)
  c.execute("INSERT INTO football_game VALUES(?,?,?,?,?,?)",data)
#將修改保存到數(shù)據(jù)庫
con.commit()
print('………………')
#執(zhí)行選擇所有數(shù)據(jù)的SQL
output = c.execute("SELECT * FROM football_game")
#返回結(jié)果集中的所有行,返回的是一個大的列表
rows = output.fetchall()
print(rows)
print('………………')
for row in rows:
  output = []
  for column_index in range(len(row)):
    output.append(str(row[column_index]))
  print(output)

Spyder右下角打印出來的結(jié)果:

['李剛', '男', '32', '567', '18512349553', '$500.00 ']
['王紅', '女', '54', '423', '18256785181', '$750.00 ']
['孫曉', '女', '25', '457', '13698762112', '$250.00 ']
['郭亮', '男', '65', '350', '18654320816', '$125.00 ']
['高英', '女', '15', '390', '18511113141', '$815.00 ']
………………
[('李剛', '男', 32, 567, '18512349553', '$500.00 '), ('王紅', '女', 54, 423, '18256785181', '$750.00 '), ('孫曉', '女', 25, 457, '13698762112', '$250.00 '), ('郭亮', '男', 65, 350, '18654320816', '$125.00 '), ('高英', '女', 15, 390, '18511113141', '$815.00 ')]
………………
['李剛', '男', '32', '567', '18512349553', '$500.00 ']
['王紅', '女', '54', '423', '18256785181', '$750.00 ']
['孫曉', '女', '25', '457', '13698762112', '$250.00 ']
['郭亮', '男', '65', '350', '18654320816', '$125.00 ']
['高英', '女', '15', '390', '18511113141', '$815.00 ']

3、python內(nèi)置的sqlite3模塊,更新數(shù)據(jù)表中的記錄

名稱為“CSV測試數(shù)據(jù).csv”的數(shù)據(jù)源:

更新表中的記錄:

#!/usr/bin/env python3
#創(chuàng)建SQLite3內(nèi)存數(shù)據(jù)庫,并創(chuàng)建帶有四個屬性的sales表
#sqlite3模塊,提供了一個輕量級的基于磁盤的數(shù)據(jù)庫,不需要獨立的服務器進程
import sqlite3
import csv
input_file = "F://python入門//數(shù)據(jù)1//CSV測試數(shù)據(jù).csv"
#使用‘:memory:'在內(nèi)存中創(chuàng)建了一個數(shù)據(jù)庫,創(chuàng)建了連接對象con來代表數(shù)據(jù)庫
con = sqlite3.connect(':memory:')
#創(chuàng)建表名為sales的表,將這個字符串賦值給query
query = """CREATE TABLE IF NOT EXISTS sales
      (customer VARCHAR(20),
      product VARCHAR(40),
      amount FLOAT,
      date DATE);"""
#使用連接對象的execute()方法執(zhí)行query中的SQL命令
con.execute(query)
#使用連接對象的commit()方法將修改提交(保存)到數(shù)據(jù)庫
con.commit()
#向表中插入幾行數(shù)據(jù)
data = [('Richard Lucas','Notepad',2.50,'2019-01-02'),
    ('Jenny Kim','Binder',4.15,'2019-01-05'),
    ('Svetlana Crow','Printer',155.75,'2019-02-03'),
    ('Stephen Randolph','Computer',679.40,'2019-02-20')]
#for tuple in data:
#  print(tuple)
#將插入語句賦給變量statement,?是占位符
statement = "INSERT INTO sales VALUES(?,?,?,?)"
#因為有四個占位符,這里就需要提供一個包含4個值的元組,executemany()方法為data中的每個數(shù)據(jù)元組執(zhí)行
#statement中的SQL命令,這里執(zhí)行了四次insert命令
con.executemany(statement,data)
#將修改保存到數(shù)據(jù)庫
con.commit()
#讀取CSV文件并更新特定的行
file_reader = csv.reader(open(input_file,'r'),delimiter=',')
#從輸入文件中讀入第一行
header = next(file_reader,None)
#將輸入的所有數(shù)據(jù)進行循環(huán),先是每行循環(huán),再是每列循環(huán)
for row in file_reader:
  data = []
  for column_index in range(len(header)):
    data.append(row[column_index])
  con.execute("UPDATE sales SET amount=?,date=? where customer=?;",data) 
#將修改保存到數(shù)據(jù)庫
con.commit()
#查詢sales表,并將命令結(jié)果賦值給一個光標對象cursor,光標對象有execute、executemany、fetchone、
#fetchmany和fetchall方法
cursor = con.execute("SELECT * FROM sales")
#返回結(jié)果集中的所有行
rows = cursor.fetchall()
print(rows)
print('………………')
for row in rows:
  output = []
  for column_index in range(len(row)):
    output.append(str(row[column_index]))
  print(output)

Spyder右下角打印出來的結(jié)果:

[('Richard Lucas', 'Notepad', 4.25, '2019-11-05'), ('Jenny Kim', 'Binder', 6.75, '2019-12-05'), ('Svetlana Crow', 'Printer', 155.75, '2019-02-03'), ('Stephen Randolph', 'Computer', 679.4, '2019-02-20')]
………………
['Richard Lucas', 'Notepad', '4.25', '2019-11-05']
['Jenny Kim', 'Binder', '6.75', '2019-12-05']
['Svetlana Crow', 'Printer', '155.75', '2019-02-03']
['Stephen Randolph', 'Computer', '679.4', '2019-02-20']

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)快速排序和插入排序算法及自定義排序的示例

    Python實現(xiàn)快速排序和插入排序算法及自定義排序的示例

    這篇文章主要介紹了Python實現(xiàn)快速排序和插入排序算法及自定義排序的示例,自定義排序用到了Python的sort和sorted函數(shù),需要的朋友可以參考下
    2016-02-02
  • 在Python中畫圖(基于Jupyter notebook的魔法函數(shù))

    在Python中畫圖(基于Jupyter notebook的魔法函數(shù))

    這篇文章主要介紹了在Python中畫圖(基于Jupyter notebook的魔法函數(shù)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • Python常駐任務實現(xiàn)接收外界參數(shù)代碼解析

    Python常駐任務實現(xiàn)接收外界參數(shù)代碼解析

    這篇文章主要介紹了Python常駐任務實現(xiàn)接收外界參數(shù)代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 使用Python解決序列重疊問題

    使用Python解決序列重疊問題

    這篇文章主要為大家詳細介紹了如何使用Python解決序列重疊問題,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • TensorFlow自定義組件開發(fā)指南分享

    TensorFlow自定義組件開發(fā)指南分享

    TensorFlow通過自定義層、損失、指標、訓練循環(huán)等擴展功能,利用Keras API統(tǒng)一接口,實現(xiàn)相應類并覆蓋核心方法,如Focal Loss、F1Score等,需正確序列化以支持模型保存與加載
    2025-09-09
  • 深入理解Python虛擬機之進程、線程和協(xié)程區(qū)別詳解

    深入理解Python虛擬機之進程、線程和協(xié)程區(qū)別詳解

    在本篇文章當中深入分析在 Python 當中 進程、線程和協(xié)程的區(qū)別,這三個概念會讓人非常迷惑,如果沒有深入了解這三者的實現(xiàn)原理,只是看一些文字說明,也很難理解,在本篇文章當中我們將通過分析部分源代碼來詳細分析一下這三者根本的區(qū)別是什么,需要的朋友可以參考下
    2023-10-10
  • 對python3標準庫httpclient的使用詳解

    對python3標準庫httpclient的使用詳解

    今天小編就為大家分享一篇對python3標準庫httpclient的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python中POST調(diào)用Restful接口示例

    Python中POST調(diào)用Restful接口示例

    這篇文章主要介紹了Python之POST調(diào)用Restful接口示例,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • python實現(xiàn)簡單的五子棋游戲

    python實現(xiàn)簡單的五子棋游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)簡單的五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • Python與C語言分別解決完全平方數(shù)問題

    Python與C語言分別解決完全平方數(shù)問題

    完全平方數(shù)指用一個整數(shù)乘以自己例如1*1.2*2.3*3等依次類推,若一個數(shù)能表示成某個整數(shù)的平方的形式,則稱這個數(shù)為完全平方數(shù)。完全平方數(shù)是非負數(shù),而一個完全平方數(shù)的項有倆個,讓我們用程序來練習一下
    2022-03-03

最新評論

孝义市| 灵璧县| 洪洞县| 丘北县| 会东县| 蕲春县| 闽侯县| 威宁| 泽州县| 阜新市| 耿马| 台东市| 广丰县| 兰西县| 台江县| 赣榆县| 且末县| 雅江县| 常德市| 如皋市| 安塞县| 安西县| 晋中市| 灵宝市| 江安县| 綦江县| 东方市| 怀仁县| 惠州市| 旬邑县| 六盘水市| 北碚区| 陵川县| 江北区| 瑞昌市| 婺源县| 班戈县| 黔东| 武陟县| 额济纳旗| 荔波县|