【python sqlite3实现数据库表数据信息插入、修改、查询、删除】

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()

你可能感兴趣的:(python,gui开发,数据库,python,sqlite)