介绍SQLite
SQLite,是一款轻量级的关系型数据库管理系统,它的特点是占用资源少、易于使用、适用于小型应用程序,可以在各种操作系统上运行,包括Windows、MacOS、Linux、iOS和Android。SQLite的最大优势在于无需配置和管理,可快速部署和使用。
SQLite的数据类型
SQLite支持多种数据类型,包括NULL、INTEGER、REAL、TEXT和BLOB。其中NULL表示缺失或空值,INTEGER表示整数,REAL表示浮点数,TEXT表示字符串,BLOB表示二进制数据。
CREATE TABLE my_table ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER, salary REAL, profile BLOB );
上述代码创建了一个名为my_table的表,其中包含id、name、age、salary和profile五个字段,分别对应整型、字符串、整型、浮点型和二进制数据类型。
SQLite的基本操作
下面是一些SQLite的基本操作,包括创建数据库、创建表、插入数据、查询数据和删除数据。
创建数据库
sqlite3 my_database.db
上述代码创建了一个名为my_database.db的数据库。
创建表
CREATE TABLE my_table ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER, salary REAL, profile BLOB );
上述代码创建了一个名为my_table的表,其中包含id、name、age、salary和profile五个字段。
插入数据
INSERT INTO my_table (id, name, age, salary, profile) VALUES (1, 'Tom', 25, 5000.0, 'profile_data');
上述代码向my_table表中插入了一条数据,包括id、name、age、salary和profile五个字段。
查询数据
SELECT * FROM my_table;
上述代码查询了my_table表中的所有数据。
删除数据
DELETE FROM my_table WHERE id=1;
上述代码删除了my_table表中id为1的数据。
SQLite的高级操作
除了基本操作外,SQLite还支持一些高级操作,包括索引、事务和触发器。
索引
索引可以提高查询效率,避免全表扫描。SQLite支持多种索引类型,包括B树索引、哈希索引和全文搜索索引。
CREATE INDEX my_index ON my_table (name);
上述代码创建了一个名为my_index的索引,用于加速查询my_table表中的name字段。
事务
事务可以保证数据的一致性和完整性,避免数据错误和丢失。SQLite支持四种事务隔离级别,包括SERIALIZABLE、REPEATABLE READ、READ COMMITTED和READ UNCOMMITTED。
BEGIN TRANSACTION; UPDATE my_table SET salary=salary+1000 WHERE age>30; COMMIT;
上述代码开启了一个事务,更新my_table表中年龄大于30的员工薪资,并提交事务。
触发器
触发器可以在特定事件发生时自动执行一系列操作,例如插入、更新和删除数据。SQLite支持BEFORE和AFTER两种触发器类型。
CREATE TRIGGER my_trigger BEFORE INSERT ON my_table BEGIN SELECT RAISE(ABORT, 'name cannot be empty') WHERE NEW.name=''; END;
上述代码创建了一个名为my_trigger的BEFORE INSERT触发器,当向my_table表中插入数据时,如果name字段为空,则触发器会中止操作并抛出错误信息。
总结
SQLite是一款轻量级的关系型数据库管理系统,具有占用资源少、易于使用、适用于小型应用程序等优点。在使用SQLite时,需要了解其数据类型、基本操作和高级操作,例如索引、事务和触发器等。当你掌握了这些技巧后,就可以轻松管理数据库,提高应用程序的运行效率。