1.SQLite数据库
Python内置了SQLite3,所以直接导入即可使用。
优点:简单轻便
确定:不适合高并发访问
代码:(先创建数据库并插入一些数据)
import sqlite3
# 建表语句
create_table = """create table if not exists user(
id varchar(200) primary key,
name varchar(20)
);
"""
# 插入语句
insert_sql = 'insert into user (id,name) values (?,?)'
conn = sqlite3.connect('mytest.db') # 如果数据库不存在,则再当前文件夹下创建
cursor = conn.cursor() # 获取游标
cursor.execute(create_table) # 执行sql语句,同其他大多数
cursor.execute(insert_sql, ('1', 'jack'))
cursor.execute(insert_sql, ('2', 'tom'))
cursor.execute(insert_sql, ('3', 'lili'))
cursor.close() # 关闭cursor
conn.commit() # 修改数据库之后要commit,否则关闭数据库后无法查询到更改的数据
conn.close() # 关闭数据库连接
代码:(查询数据库)
import sqlite3
conn = sqlite3.connect('mytest.db')
cursor = conn.cursor()
cursor.execute('select * from user') # 查询表中所有数据
result = cursor.fetchall() # 返回游标得到的结果
cursor.close()
conn.close()
print(result)
结果:
[('1', 'jack'), ('2', 'tom'), ('3', 'lili')]
2.MySQL数据库
MySQL是专门为服务端设计的数据库,可承受高并发的访问,但内存占用量大,较复杂
需要先安装MySQL,官方网站。
然后安装Python库,来驱动MySQL
pip install mysql-connector
代码:(大致同sqlite3)
import mysql.connector
conn = mysql.connector.connect(user='root', password='password', database='mydb') # 此处的数据库必须先创建
cursor = conn.cursor()
cursor.execute('create table if not exists user (id varchar(20) primary key, name varchar(20))')
cursor.execute('insert into user (id, name) values (%s, %s)', ['1', 'Michael']) # 注意mysql的占位符是%s
conn.commit()
cursor.close()
cursor = conn.cursor()
cursor.execute('select * from user where id = %s', ('1',))
print(cursor.fetchall())