电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:70日期:2022-07-26 10:26:11

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

#!/usr/bin/env python3#創(chuàng)建SQLite3內(nèi)存數(shù)據(jù)庫(kù),并創(chuàng)建帶有四個(gè)屬性的sales表#sqlite3模塊,提供了一個(gè)輕量級(jí)的基于磁盤(pán)的數(shù)據(jù)庫(kù),不需要獨(dú)立的服務(wù)器進(jìn)程import sqlite3#使用‘:memory:’在內(nèi)存中創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù),創(chuàng)建了連接對(duì)象con來(lái)代表數(shù)據(jù)庫(kù)con = sqlite3.connect(’:memory:’)#創(chuàng)建表名為sales的表,將這個(gè)字符串賦值給queryquery = '''CREATE TABLE sales (customer VARCHAR(20), product VARCHAR(40), amount FLOAT, date DATE);'''#使用連接對(duì)象的execute()方法執(zhí)行query中的SQL命令con.execute(query)#使用連接對(duì)象的commit()方法將修改提交(保存)到數(shù)據(jù)庫(kù)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’)]#將插入語(yǔ)句賦給變量statement,?是占位符statement = 'INSERT INTO sales VALUES(?,?,?,?)'#因?yàn)橛兴膫€(gè)占位符,這里就需要提供一個(gè)包含4個(gè)值的元組,executemany()方法為data中的每個(gè)數(shù)據(jù)元組執(zhí)行#statement中的SQL命令,這里執(zhí)行了四次insert命令con.executemany(statement,data)#將修改保存到數(shù)據(jù)庫(kù)con.commit()#查詢(xún)sales表,并將命令結(jié)果賦值給一個(gè)光標(biāo)對(duì)象cursor,光標(biāo)對(duì)象有execute、executemany、fetchone、#fetchmany和fetchall方法cursor = con.execute('SELECT * FROM sales')#返回結(jié)果集中的所有行rows = cursor.fetchall()print(rows)print(’………………’)#查詢(xún)結(jié)果中行的數(shù)量row_counter = 0for row in rows: print(row) row_counter += 1print(’………………’)print(’Number of rows: %d’ % (row_counter))

Spyder右下角打印出來(lái)的結(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模塊,向表中插入新紀(jì)錄

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

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

將本地“CSV測(cè)試數(shù)據(jù).csv”的數(shù)據(jù)導(dǎo)入到本地?cái)?shù)據(jù)庫(kù)football_game.db中:

#!/usr/bin/env python3#創(chuàng)建SQLite3內(nèi)存數(shù)據(jù)庫(kù),并創(chuàng)建帶有四個(gè)屬性的sales表#sqlite3模塊,提供了一個(gè)輕量級(jí)的基于磁盤(pán)的數(shù)據(jù)庫(kù),不需要獨(dú)立的服務(wù)器進(jìn)程import sqlite3import csvinput_file = 'F://python入門(mén)//數(shù)據(jù)1//CSV測(cè)試數(shù)據(jù).csv'#為一個(gè)簡(jiǎn)單的本地?cái)?shù)據(jù)庫(kù)football_game.db創(chuàng)建連接,football_game.db為數(shù)據(jù)庫(kù)名稱(chēng)con = sqlite3.connect(’football_game.db’)#創(chuàng)建了一個(gè)光標(biāo)c = con.cursor()#如果表名存在,則刪除它drop_table = '''DROP TABLE IF EXISTS football_game;'''c.execute(drop_table)con.commit()#創(chuàng)建表名為football_game的表,將這個(gè)字符串賦值給create_tablecreate_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));'''#使用連接對(duì)象的execute()方法執(zhí)行create_table中的SQL命令c.execute(create_table)#使用連接對(duì)象的commit()方法將修改提交(保存)到數(shù)據(jù)庫(kù)con.commit()#從CSV格式的輸入文件中讀取要加載到數(shù)據(jù)庫(kù)中的數(shù)據(jù),創(chuàng)建file_reader對(duì)象,用于存儲(chǔ)CSV中的數(shù)據(jù)集file_reader = csv.reader(open(input_file,’r’),delimiter=’,’)#從輸入文件中讀入第一行header = next(file_reader,None)#將輸入的所有數(shù)據(jù)進(jìn)行循環(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ù)庫(kù)con.commit()print(’………………’)#執(zhí)行選擇所有數(shù)據(jù)的SQLoutput = c.execute('SELECT * FROM football_game')#返回結(jié)果集中的所有行,返回的是一個(gè)大的列表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右下角打印出來(lái)的結(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ù)表中的記錄

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

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

更新表中的記錄:

#!/usr/bin/env python3#創(chuàng)建SQLite3內(nèi)存數(shù)據(jù)庫(kù),并創(chuàng)建帶有四個(gè)屬性的sales表#sqlite3模塊,提供了一個(gè)輕量級(jí)的基于磁盤(pán)的數(shù)據(jù)庫(kù),不需要獨(dú)立的服務(wù)器進(jìn)程import sqlite3import csvinput_file = 'F://python入門(mén)//數(shù)據(jù)1//CSV測(cè)試數(shù)據(jù).csv'#使用‘:memory:’在內(nèi)存中創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù),創(chuàng)建了連接對(duì)象con來(lái)代表數(shù)據(jù)庫(kù)con = sqlite3.connect(’:memory:’)#創(chuàng)建表名為sales的表,將這個(gè)字符串賦值給queryquery = '''CREATE TABLE IF NOT EXISTS sales (customer VARCHAR(20), product VARCHAR(40), amount FLOAT, date DATE);'''#使用連接對(duì)象的execute()方法執(zhí)行query中的SQL命令con.execute(query)#使用連接對(duì)象的commit()方法將修改提交(保存)到數(shù)據(jù)庫(kù)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)#將插入語(yǔ)句賦給變量statement,?是占位符statement = 'INSERT INTO sales VALUES(?,?,?,?)'#因?yàn)橛兴膫€(gè)占位符,這里就需要提供一個(gè)包含4個(gè)值的元組,executemany()方法為data中的每個(gè)數(shù)據(jù)元組執(zhí)行#statement中的SQL命令,這里執(zhí)行了四次insert命令con.executemany(statement,data)#將修改保存到數(shù)據(jù)庫(kù)con.commit()#讀取CSV文件并更新特定的行file_reader = csv.reader(open(input_file,’r’),delimiter=’,’)#從輸入文件中讀入第一行header = next(file_reader,None)#將輸入的所有數(shù)據(jù)進(jìn)行循環(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ù)庫(kù)con.commit()#查詢(xún)sales表,并將命令結(jié)果賦值給一個(gè)光標(biāo)對(duì)象cursor,光標(biāo)對(duì)象有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右下角打印出來(lái)的結(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’]

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 活性炭-果壳木质煤质柱状粉状蜂窝活性炭厂家价格多少钱 | 风电变桨伺服驱动器-风电偏航变桨系统-深圳众城卓越科技有限公司 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 金蝶帐无忧|云代账软件|智能财税软件|会计代账公司专用软件 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | 自动配料系统_称重配料控制系统厂家| 外贸网站建设-外贸网站设计制作开发公司-外贸独立站建设【企术】 | 千斤顶,液压千斤顶-力良企业,专业的液压千斤顶制造商,shliliang.com | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | 隧道烘箱_隧道烘箱生产厂家-上海冠顶专业生产烘道设备 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | PU树脂_水性聚氨酯树脂_聚氨酯固化剂_聚氨酯树脂厂家_宝景化工 | 潜水搅拌机-双曲面搅拌机-潜水推进器|奥伯尔环保 | 仓储笼_仓储货架_南京货架_仓储货架厂家_南京货架价格低-南京一品仓储设备制造公司 | 机床导轨_导轨板_滚轮导轨-上海旻佑精密机械有限公司 | 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 视频教程导航网_视频教程之家_视频教程大全_最新视频教程分享发布平台 | 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 颚式破碎机,圆锥破碎机,制砂机-新乡市德诚机电制造有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 锯边机,自动锯边机,双面涂胶机-建业顺达机械有限公司 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 佛山市德信昌电子有限公司| 发电机价格|发电机组价格|柴油发电机价格|柴油发电机组价格网 | 电伴热系统施工_仪表电伴热保温箱厂家_沃安电伴热管缆工业技术(济南)有限公司 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | 节流截止放空阀-不锈钢阀门-气动|电动截止阀-鸿华阀门有限公司 | ISO9001认证咨询_iso9001企业认证代理机构_14001|18001|16949|50430认证-艾世欧认证网 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 南京兰江泵业有限公司-水解酸化池潜水搅拌机-絮凝反应池搅拌机-好氧区潜水推进器 | 警用|治安|保安|不锈钢岗亭-售货亭价格-垃圾分类亭-移动厕所厂家-苏州灿宇建材 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] |