什么是SQLite
SQLite是一种轻量级的数据库管理系统,它非常适合设备资源较少或者需要简单数据存储的应用场景。它与MySQL这样的全功能数据库管理系统相比,有几个明显的不同特点:
- 存储形式:
- SQLite:SQLite数据库存储在一个单独的磁盘文件中,通常使用
.db
或.sqlite
为扩展名。它不需要安装数据库服务软件,也没有专门的数据库服务器进程。 - MySQL:MySQL存储在服务端,数据通常分布在多个文件和目录里。它需要安装MySQL数据库服务器,并且有专门的服务器进程进行数据库的管理。
- SQLite:SQLite数据库存储在一个单独的磁盘文件中,通常使用
- 使用场合:
- SQLite:适用于嵌入式设备、移动应用、小型项目甚至是单件软件中的数据持久化。常见于桌面软件、移动APP、网站的轻量级数据存储需求。
- MySQL:适用于需要处理大型数据集、高并发访问的客户端-服务器应用程序。通常用于网站后台数据库、大型商务和社交应用。
- 资源消耗:
- SQLite:非常小巧,资源消耗小,没有额外的配置、管理和维护工作。
- MySQL:资源消耗相对较大,需要分配专门的资源来配置、管理和维护数据库服务器。
- 并发处理:
- SQLite:在写入数据时会锁定整个数据库文件,不适合高并发写入的场景。
- MySQL:具备更复杂和成熟的并发处理机制,支持大量的并发读写操作。
- 功能和扩展性:
- 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
暂无评论内容