- 一、定义
- 二、基本 *** 作
- *** 作举例
- 三、多表连接
以一定方式存储,可以多个用户共享,具有尽可能小的冗余度,与应用程序彼此独立的数据集合。
二、基本 *** 作关于数据库的常用 *** 作我们之前已经讲过,此处只讲使用Python *** 作数据库的步骤。
连接数据库
conn = sqlite3.connect(db_name)
- 如果db_name存在,读取数据库
- 如果db_name不存在,则新建数据库
获取游标
- conn.cursor()
- 用于执行SQL语句
- 一段私有的SQL工作区,用于暂时存放受SQL语句影响的数据
具体 *** 作
- cursor.execute(sql_str)
- cursor.executemany(sql_str)批量 *** 作
获取单条记录:fetchone()
获取多条记录:fetchall()
提交 *** 作:conn.commit()
关闭连接:conn.close()
import sqlite3
db_path = '../files/test.db' # 如果不存在则会新创建一个
conn = sqlite3.connect(db_path) # 连接数据库
cur = conn.cursor() # 获取游标
cur.execute("select name from sqlite_master where type = 'table';").fetchall() # 获取当前数据库的所有表
cur.execute("create table book(id int,name text,price double);") # 创建表
cur.execute("INSERT INTO book VALUES(1,'肖秀荣考研书系列:肖秀荣(2022)考研政治命题人终极预测8套卷',24.40);")
cur.execute("INSERT INTO book VALUES(2,'法医秦明作品集',100.00);")
cur.execute("INSERT INTO book VALUES(3,'活着本来单纯:丰子恺散文漫画精品集',30.90);")
cur.execute("select * from book;").fetchall() # 获取表中所有字段,必须加fetchall()
cur.execute("pragma table_info(book);").fetchall() # 获取字段信息,结果如下。
'''
[(0, 'id', 'int', 0, None, 0),
(1, 'name', 'text', 0, None, 0),
(2, 'price', 'double', 0, None, 0)]
'''
# 批量插入
more_books = (
(9, '人间草木', 30.00),
(10,'你的善良必须有点锋芒', 20.50),
(11, '这么慢,那么美', 24.80),
(12, '考拉小巫的英语学习日记:写给为梦想而奋斗的人(全新修订版)', 23.90)
)
cur.executemany("INSERT INTO book VALUES(?, ?, ?)", more_books)
conn.commit() # 提交 *** 作
cur.close() # 关闭连接
如果想要返回详细信息,必须在语句后加fetchone或fetchall。
三、多表连接大部分SQL语句是通用的,但需要注意的是,SQLite中不支持右连接
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)