【Python】连接到SQLite!

什么是SQLite

SQLite是一种轻量级的数据库管理系统,它非常适合设备资源较少或者需要简单数据存储的应用场景。它与MySQL这样的全功能数据库管理系统相比,有几个明显的不同特点:

  1. 存储形式:
    • SQLite:SQLite数据库存储在一个单独的磁盘文件中,通常使用.db.sqlite为扩展名。它不需要安装数据库服务软件,也没有专门的数据库服务器进程。
    • MySQL:MySQL存储在服务端,数据通常分布在多个文件和目录里。它需要安装MySQL数据库服务器,并且有专门的服务器进程进行数据库的管理。
  2. 使用场合:
    • SQLite:适用于嵌入式设备、移动应用、小型项目甚至是单件软件中的数据持久化。常见于桌面软件、移动APP、网站的轻量级数据存储需求。
    • MySQL:适用于需要处理大型数据集、高并发访问的客户端-服务器应用程序。通常用于网站后台数据库、大型商务和社交应用。
  3. 资源消耗:
    • SQLite:非常小巧,资源消耗小,没有额外的配置、管理和维护工作。
    • MySQL:资源消耗相对较大,需要分配专门的资源来配置、管理和维护数据库服务器。
  4. 并发处理:
    • SQLite:在写入数据时会锁定整个数据库文件,不适合高并发写入的场景。
    • MySQL:具备更复杂和成熟的并发处理机制,支持大量的并发读写操作。
  5. 功能和扩展性:
    • SQLite:提供了基础的数据操作功能,不支持一些高级特性,如用户权限管理、存储过程。
    • MySQL:功能更为强大,支持存储过程、触发器、分区等许多高级特性和优化,并有完整的用户权限管理系统。

代码示例

import sqlite3

# 创建连接
conn = sqlite3.connect('test.db')
print("Opened database successfully")

# 创建游标
cur = conn.cursor()

# 创建表
cur.execute('''CREATE TABLE COMPANY
       (ID INT PRIMARY KEY     NOT NULL,
       NAME           TEXT    NOT NULL,
       AGE            INT     NOT NULL,
       ADDRESS        CHAR(50),
       SALARY         REAL);''')
print("Table created successfully")

# 插入数据进行查重
name = 'Tom'
age = '21'
cur.execute("SELECT * FROM COMPANY WHERE NAME=? and AGE=?",(name, age))
rows = cur.fetchall()
if len(rows) != 0:
    print("Insert failed, data already exists")
else:
    cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
          VALUES (1, 'Paul', 32, 'California', 20000.00 )")

# 更新数据
cur.execute("UPDATE COMPANY set SALARY = 25000.00 where ID = 1")

# 删除数据
cur.execute("DELETE from COMPANY where ID = 1;")

conn.commit() # 提交到数据库执行
print("Operation done successfully")
conn.close() # 关闭数据库连接
© 版权声明
THE END
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容