吴裕雄--python学习笔记:sqlite3 模块
- 1 sqlite3.connect(database [,timeout ,other optional arguments])
- 该 API 打开一个到 SQLite 数据库文件 database 的链接。您可以使用 ":memory:" 来在 RAM 中打开一个到 database 的数据库连接,而不是在磁盘上打开。如果数据库成功打开,则返回一个连接对象。
- 当一个数据库被多个连接访问,且其中一个修改了数据库,此时 SQLite 数据库被锁定,直到事务提交。timeout 参数表示连接等待锁定的持续时间,直到发生异常断开连接。timeout 参数默认是 5.0(5 秒)。
- 如果给定的数据库名称 filename 不存在,则该调用将创建一个数据库。如果您不想在当前目录中创建数据库,那么您可以指定带有路径的文件名,这样您就能在任意地方创建数据库。
- 2 connection.cursor([cursorClass])
- 该例程创建一个 cursor,将在 Python 数据库编程中用到。该方法接受一个单一的可选的参数 cursorClass。如果提供了该参数,则它必须是一个扩展自 sqlite3.Cursor 的自定义的 cursor 类。
- 3 cursor.execute(sql [, optional parameters])
- 该例程执行一个 SQL 语句。该 SQL 语句可以被参数化(即使用占位符代替 SQL 文本)。sqlite3 模块支持两种类型的占位符:问号和命名占位符(命名样式)。
- 例如:cursor.execute("insert into people values (?, ?)", (who, age))
- 4 connection.execute(sql [, optional parameters])
- 该例程是上面执行的由光标(cursor)对象提供的方法的快捷方式,它通过调用光标(cursor)方法创建了一个中间的光标对象,然后通过给定的参数调用光标的 execute 方法。
- 5 cursor.executemany(sql, seq_of_parameters)
- 该例程对 seq_of_parameters 中的所有参数或映射执行一个 SQL 命令。
- 6 connection.executemany(sql[, parameters])
- 该例程是一个由调用光标(cursor)方法创建的中间的光标对象的快捷方式,然后通过给定的参数调用光标的 executemany 方法。
- 7 cursor.executescript(sql_script)
- 该例程一旦接收到脚本,会执行多个 SQL 语句。它首先执行 COMMIT 语句,然后执行作为参数传入的 SQL 脚本。所有的 SQL 语句应该用分号(;)分隔。
- 8 connection.executescript(sql_script)
- 该例程是一个由调用光标(cursor)方法创建的中间的光标对象的快捷方式,然后通过给定的参数调用光标的 executescript 方法。
- 9 connection.total_changes()
- 该例程返回自数据库连接打开以来被修改、插入或删除的数据库总行数。
- 10 connection.commit()
- 该方法提交当前的事务。如果您未调用该方法,那么自您上一次调用 commit() 以来所做的任何动作对其他数据库连接来说是不可见的。
- 11 connection.rollback()
- 该方法回滚自上一次调用 commit() 以来对数据库所做的更改。
- 12 connection.close()
- 该方法关闭数据库连接。请注意,这不会自动调用 commit()。如果您之前未调用 commit() 方法,就直接关闭数据库连接,您所做的所有更改将全部丢失!
- 13 cursor.fetchone()
- 该方法获取查询结果集中的下一行,返回一个单一的序列,当没有更多可用的数据时,则返回 None。
- 14 cursor.fetchmany([size=cursor.arraysize])
- 该方法获取查询结果集中的下一行组,返回一个列表。当没有更多的可用的行时,则返回一个空的列表。该方法尝试获取由 size 参数指定的尽可能多的行。
- 15 cursor.fetchall()
- 该例程获取查询结果集中所有(剩余)的行,返回一个列表。当没有可用的行时,则返回一个空的列表。
- 连接数据库
- 下面的 Python 代码显示了如何连接到一个现有的数据库。如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。
- import sqlite3
- conn = sqlite3.connect('E:\\test.db')
- print("Opened database successfully")
- Opened database successfully
- 创建表
- 下面的 Python 代码段将用于在先前创建的数据库中创建一个表:
- import sqlite3
- conn = sqlite3.connect('E:\\test.db')
- print("Opened database successfully")
- c = conn.cursor()
- c.execute('''CREATE TABLE COMPANY
- (ID INT PRIMARY KEY NOT NULL,
- NAME TEXT NOT NULL,
- AGE INT NOT NULL,
- ADDRESS CHAR(50),
- SALARY REAL);''')
- print("Table created successfully")
- conn.commit()
- conn.close()
- Opened database successfully
- Table created successfully
- import sqlite3
- conn = sqlite3.connect('E:\\test.db')
- c = conn.cursor()
- print("Opened database successfully")
- c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 )")
- c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 )")
- c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )")
- c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )")
- conn.commit()
- print("Records created successfully")
- conn.close()
- Opened database successfully
- Records created successfully
- SELECT 操作
- 下面的 Python 程序显示了如何从前面创建的 COMPANY 表中获取并显示记录:
- import sqlite3
- conn = sqlite3.connect('E:\\test.db')
- c = conn.cursor()
- print("Opened database successfully")
- cursor = c.execute("SELECT id, name, address, salary from COMPANY")
- for row in cursor:
- print("ID = ", row[0])
- print("NAME = ", row[1])
- print("ADDRESS = ", row[2])
- print("SALARY = ", row[3])
- print("Operation done successfully")
- conn.close()
- Opened database successfully
- ID = 1
- NAME = Paul
- ADDRESS = California
- SALARY = 20000.0
- ID = 2
- NAME = Allen
- ADDRESS = Texas
- SALARY = 15000.0
- ID = 3
- NAME = Teddy
- ADDRESS = Norway
- SALARY = 20000.0
- ID = 4
- NAME = Mark
- ADDRESS = Rich-Mond
- SALARY = 65000.0
- Operation done successfully
- UPDATE 操作
- 下面的 Python 代码显示了如何使用 UPDATE 语句来更新任何记录,然后从 COMPANY 表中获取并显示更新的记录:
- import sqlite3
- conn = sqlite3.connect('E:\\test.db')
- c = conn.cursor()
- print("Opened database successfully")
- c.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1")
- conn.commit()
- print("Total number of rows updated :", conn.total_changes)
- cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
- for row in cursor:
- print("ID = ", row[0])
- print("NAME = ", row[1])
- print("ADDRESS = ", row[2])
- print("SALARY = ", row[3])
- print("Operation done successfully")
- conn.close()
- Opened database successfully
- Total number of rows updated : 1
- ID = 1
- NAME = Paul
- ADDRESS = California
- SALARY = 25000.0
- ID = 2
- NAME = Allen
- ADDRESS = Texas
- SALARY = 15000.0
- ID = 3
- NAME = Teddy
- ADDRESS = Norway
- SALARY = 20000.0
- ID = 4
- NAME = Mark
- ADDRESS = Rich-Mond
- SALARY = 65000.0
- Operation done successfully
- DELETE 操作
- 下面的 Python 代码显示了如何使用 DELETE 语句删除任何记录,然后从 COMPANY 表中获取并显示剩余的记录:
- import sqlite3
- conn = sqlite3.connect('E:\\test.db')
- c = conn.cursor()
- print("Opened database successfully")
- c.execute("DELETE from COMPANY where ID=2")
- conn.commit()
- print("Total number of rows deleted :", conn.total_changes)
- cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
- for row in cursor:
- print("ID = ", row[0])
- print("NAME = ", row[1])
- print("ADDRESS = ", row[2])
- print("SALARY = ", row[3])
- print("Operation done successfully")
- conn.close()
- Opened database successfully
- Total number of rows deleted : 1
- ID = 1
- NAME = Paul
- ADDRESS = California
- SALARY = 25000.0
- ID = 3
- NAME = Teddy
- ADDRESS = Norway
- SALARY = 20000.0
- ID = 4
- NAME = Mark
- ADDRESS = Rich-Mond
- SALARY = 65000.0
- Operation done successfully
吴裕雄--python学习笔记:sqlite3 模块的更多相关文章
- 吴裕雄--python学习笔记:sqlite3 模块的使用与学生信息管理系统
import sqlite3 cx = sqlite3.connect('E:\\student3.db') cx.execute( '''CREATE TABLE StudentTable( ID ...
- 吴裕雄--python学习笔记:os模块的使用
在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块. 1.当前路径及路径下 ...
- 吴裕雄--python学习笔记:通过sqlite3 进行文字界面学生管理
import sqlite3 conn = sqlite3.connect('E:\\student.db') print("Opened database successfully&quo ...
- 吴裕雄--python学习笔记:os模块函数
os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得 ...
- 吴裕雄--python学习笔记:BeautifulSoup模块
import re import requests from bs4 import BeautifulSoup req_obj = requests.get('https://www.baidu.co ...
- 吴裕雄--python学习笔记:爬虫基础
一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网 ...
- 吴裕雄--python学习笔记:爬虫包的更换
python 3.x报错:No module named 'cookielib'或No module named 'urllib2' 1. ModuleNotFoundError: No module ...
- 吴裕雄--python学习笔记:爬虫
import chardet import urllib.request page = urllib.request.urlopen('http://photo.sina.com.cn/') #打开网 ...
- Python学习笔记之模块与包
一.模块 1.模块的概念 模块这一概念很大程度上是为了解决代码的可重用性而出现的,其实这一概念并没有多复杂,简单来说不过是一个后缀为 .py 的 Python 文件而已 例如,我在某个工作中经常需要打 ...
随机推荐
- LeetCode——48. 旋转图像
给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要使用另一个矩阵来旋转图像. 示例 1: 给定 m ...
- 吴裕雄--天生自然Linux操作系统:Linux 系统启动过程
linux启动时我们会看到许多启动信息. Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导. 运行 init. 系统初始化. 建立终端 . 用户登录系统. in ...
- 吴裕雄--天生自然TensorFlow高层封装:Estimator-DNNClassifier
# 1. 模型定义. import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist impor ...
- nouveau :failed to create kernel chanel,-22
一:錯誤描述:今天在重啓 Ubuntu 的過程中,出現下圖的 grub 選項,系統重啓/開機之後出現以下畫面,然後選擇 Ubuntu 之後黑屏,提示錯誤:nouveau :failed to crea ...
- LGOJ3879 TJOI2010 阅读理解
不可否认,\(TJOI\)的这道题确实不难 为本题写博客的唯一原因就是 \(STL\)大法好!!!! Description link 不简述题意了,因为实在是简单 Solution 直接\(map& ...
- Evaluation metrics for classification
Accuracy/Error rate ACC = (TP+TN)/(P+N) ERR = (FP+FN)/(P+N) = 1-ACC Confusion matrix Precision/Recal ...
- 第2章 Innodb 存储引擎
一.InnoDB 体系架构 1.1后台线程 master thread:刷新内存中的数据到磁盘 io thread:处理 IO 请求,AIO purge thread:清理undo 页的回收 page ...
- 利用GetCharWidth32获取字符串宽度2
/////////////////////////////////////////////////////////////// // 04FirstWindow.cpp文件 #include < ...
- Ubuntu16装Flash
第一种方法: 1)下载flash的tar.gz压缩包.(以·tar.gz为后缀的文件是一种压缩文件,在Linux和macOS下常见,Linux和macOS都可以直接解压使用这种压缩文件) https: ...
- 吴裕雄--天生自然 JAVA开发学习:异常处理
try { // 程序代码 }catch(ExceptionName e1) { //Catch 块 } import java.io.*; public class ExcepTest{ publi ...