sqlite3是python安装默认携带的数据库操作模块,无需通过pip进行单独的安装。在使用sqlite3模块操作数据库前,需要在项目变成文件夹下建立一个空的数据库文件,数据库文件以**.db的形式存储与项目文件夹下。使用sqlite3创建数据表。在向数据库表内创建新表时,需先建立起与数据库的连接,获取操作游标,然后在使用相应的数据库操作方法进行表格创建。
1、数据库表的创建。
语法:
CREATE TABLE database_name.table_name(
column1 datatype PRIMARY KEY(one or more columns),
column2 datatype,
column3 datatype,
.....
columnN datatype,
);
实例:
def create_user_table():
conn = sqlite3.connect("student.db") # 建立数据库连接
db = conn.cursor() # 获取操作游标
try:
db.execute(
"""create table user_table
(user_id char(16) primary key not null,
user_name text not null,
user_password char(32) not null,
user_status int not null);""")
print("数据库表创建成功")
except:
pass
conn.commit() # 执行操作
conn.close() # 关闭数据库链接
2、数据库表内信息的插入:
SQLite 的 INSERT INTO 语句用于向数据库的某个表中添加新的数据行。
语法:
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]
VALUES (value1, value2, value3,...valueN);
如果要为表中的所有列添加值,您也可以不需要在 SQLite 查询中指定列名称。但要确保值的顺序与列在表中的顺序一致。SQLite 的 INSERT INTO 语法如下:
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
实例:
def insert_user_records(id, name, password, status):
conn = sqlite3.connect("student.db") # 建立数据连接
db = conn.cursor() # 获取游标
print("数据库打开成功")
try:
db.execute("insert into user_table (user_id,user_name,user_password,user_status) values (?,?,?,?);",
(id, name, password, status))
print("数据插入成功")
except:
print("插入数据可能已经存在")
conn.commit() # 执行操作
conn.close() # 断开连接
3、数据库表信息的查询
SQLite 的 SELECT 语句的基本语法如下
语法:
SELECT column1, column2, columnN FROM table_name;
在这里,column1, column2…是表的字段,他们的值即是您要获取的。如果您想获取所有可用的字段,那么可以使用下面的语法:
SELECT * FROM table_name;
实例:
# 对特定数据查询函数
def select_user_records(id, name):
conn = sqlite3.connect("student.db") # 建立连接
db = conn.cursor() # 获取游标
print("数据库表打开成功")
try:
cursor = db.execute("select * from user_table where user_id = ? or user_name = ?;", (id, name))
records = cursor.fetchall() # 将查询结果转换成数组
print("数据查询结果:", records)
except:
print("数据库中不存在该条记录")
conn.commit()
conn.close()
# 查询所有信息
def select_all_user_records():
conn = sqlite3.connect("student.db")
db = conn.cursor() # 获取游标
print("数据库表打开成功")
try:
cursor = db.execute("select * from user_table")
records = cursor.fetchall()
print("数据查询结果:", records)
except:
print("数据库数据查询失败")
conn.commit()
conn.close()
4、数据信息的修改
SQLite 的 UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。
语法:
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
实例:
# 数据库修改函数
def update_user_records(password, id):
conn = sqlite3.connect("student.db") # 建立数据库连接
db = conn.cursor() # 获取游标
print("数据库打开成功")
try:
db.execute("update user_table set user_password = ? where user_id = ?;", (password, id))
print("数据库表修改成功")
except:
print("数据修改失败")
conn.commit()
conn.close()
5、数据信息的删除
SQLite 的 DELETE 查询用于删除表中已有的记录。可以使用带有 WHERE 子句的 DELETE 查询来删除选定行,否则所有的记录都会被删除。
语法:
DELETE FROM table_name WHERE [condition];
实例:
# 按条件删除用户信息
def delete_user_records(id, name):
conn = sqlite3.connect("student.db")
db = conn.cursor() # 获取游标
print("数据库表打开成功")
try:
db.execute("delete from user_table where user_id = ? and user_name=?;", (id, name))
print("数据库信息删除成功")
except:
print("数据库信息删除失败")
conn.commit()
conn.close()
# 删除所有记录
def delete_all_user_records():
conn = sqlite3.connect("student.db")
db = conn.cursor() # 获取游标
print("数据库表打开成功")
try:
db.execute("delete from user_table")
print("数据库表内所有数据信息删除成功")
except:
pass
conn.commit()
conn.close()
6、数据库表的删除
SQLite 的 DROP TABLE 语句用来删除表定义及其所有相关数据、索引、触发器、约束和该表的权限规范。
注意:使用此命令时要特别注意,因为一旦一个表被删除,表中所有信息也将永远丢失。
语法:
DROP TABLE database_name.table_name;
实例:
# 数据记录表删除
def drop_table():
conn = sqlite3.connect("student.db")
db = conn.cursor()
try:
db.execute("drop table user_table")
print("数据库表删除成功")
except:
pass
实现源码:
import sqlite3
# 创建数据表函数
def create_user_table():
conn = sqlite3.connect("student.db") # 建立数据库连接
db = conn.cursor() # 获取操作游标
try:
db.execute(
"""create table user_table
(user_id char(16) primary key not null,
user_name text not null,
user_password char(32) not null,
user_status int not null);""")
print("数据库表创建成功")
except:
pass
conn.commit() # 执行操作
conn.close() # 关闭数据库链接
# 数据插入函数
def insert_user_records(id, name, password, status):
conn = sqlite3.connect("student.db") # 建立数据连接
db = conn.cursor() # 获取游标
print("数据库打开成功")
try:
db.execute("insert into user_table (user_id,user_name,user_password,user_status) values (?,?,?,?);",
(id, name, password, status))
print("数据插入成功")
except:
print("插入数据可能已经存在")
conn.commit() # 执行操作
conn.close() # 断开连接
# 对特定数据查询函数
def select_user_records(id, name):
conn = sqlite3.connect("student.db") # 建立连接
db = conn.cursor() # 获取游标
print("数据库表打开成功")
try:
cursor = db.execute("select * from user_table where user_id = ? or user_name = ?;", (id, name))
records = cursor.fetchall() # 将查询结果转换成数组
print("数据查询结果:", records)
except:
print("数据库中不存在该条记录")
conn.commit()
conn.close()
# 查询所有信息
def select_all_user_records():
conn = sqlite3.connect("student.db")
db = conn.cursor() # 获取游标
print("数据库表打开成功")
try:
cursor = db.execute("select * from user_table")
records = cursor.fetchall()
print("数据查询结果:", records)
except:
print("数据库数据查询失败")
conn.commit()
conn.close()
# 数据库修改函数
def update_user_records(password, id):
conn = sqlite3.connect("student.db") # 建立数据库连接
db = conn.cursor() # 获取游标
print("数据库打开成功")
try:
db.execute("update user_table set user_password = ? where user_id = ?;", (password, id))
print("数据库表修改成功")
except:
print("数据修改失败")
conn.commit()
conn.close()
# 按条件删除用户信息
def delete_user_records(id, name):
conn = sqlite3.connect("student.db")
db = conn.cursor() # 获取游标
print("数据库表打开成功")
try:
db.execute("delete from user_table where user_id = ? and user_name=?;", (id, name))
print("数据库信息删除成功")
except:
print("数据库信息删除失败")
conn.commit()
conn.close()
# 删除所有记录
def delete_all_user_records():
conn = sqlite3.connect("student.db")
db = conn.cursor() # 获取游标
print("数据库表打开成功")
try:
db.execute("delete from user_table")
print("数据库表内所有数据信息删除成功")
except:
pass
conn.commit()
conn.close()
# 数据记录表删除
def drop_table():
conn = sqlite3.connect("student.db")
db = conn.cursor()
try:
db.execute("drop table user_table")
print("数据库表删除成功")
except:
pass
if __name__ == "__main__":
user_list = ["01000401249", "张涛", "admin123", 1]
drop_table()
delete_all_user_records()
create_user_table()
insert_user_records(user_list[0], user_list[1], user_list[2], user_list[3])
update_user_records("admin", user_list[0])
select_user_records(user_list[0], user_list[1])
delete_user_records(user_list[0], user_list[1])
select_all_user_records()