1、数据库介绍、使用sqlite3模块创建数据表
1)数据库介绍
说明:
-
Python 操作不同数据库使用不同的模块,但这些模块遵守 Python 制定的DB API协议,该协议目前最新版本是2.0,被称为 Python DB API 2.0。
-
Python 自带了 SQLite 数据库和 SQLite 数据库的 API 模块
-
全局变量:用于判断数据库模块所支持的功能,通常有以下 3 个全局变量(以 sqlite3 示例)。
- apilevel:该全局变量显示数据库模块的 API 版本号
- threadsafety:该全局变量指定该数据库模块的线程安全等级
- paramstyle:该全局变量指定当 SQL 语句的参数风格
import sqlite3 # 导入sqlite3模块
print(sqlite3.apilevel) # 数据库模块的 API 版本号
2.0
print(sqlite3.threadsafety) # 数据库模块的线程安全等级
1
print(sqlite3.paramstyle) # SQL 语句的参数风格(qmark 表示 SQL 语句原生风格)
qmark
-
操作数据库的基本流程
说明:
- 连接(connect)数据库:返回数据库连接(用于打开游标,开启或提交事务)
- 游标(crusor):用于执行SQL语句,获取执行的结果
3)使用sqlite3模块创建数据表
(1)创建数据表
# 1、打开数据库连接
conn = sqlite3.connect('test.db')
# 2、打开游标
c = conn.cursor()
# 3、使用游标的 execute 方法执行 SQL 语句(DDL)
c.execute('''
create table user_tb(
_id integer primary key autoincrement,
name text,
pass text,
age integer)
''') # SQLite 可以忽略数据列的类型(即 name,pass,age)
c.execute('''
create table order_tb(
_id integer primary key autoincrement,
item_name text,
item_price real,
item_number integer,
user_id integer,
foreign key(user_id) references user_tb(_id))
''')
# 4、关闭游标
c.close()
# 5、关闭数据库连接
conn.close()
分析:SQLite 数据库特性
- SQLite 内部只支持 null、integer、real(浮点数)、text(文本)、blob(大二进制对象)这 5 种数据类型
- SQLite 允许存入数据时忽略底层数据列实际的数据类型,因此在编写建表语句时可以省略数据列后面的数据类型