Sqlite的简单介绍和应用 (一)为什么要用sqlite3? 相信很多人跟我一样一开始对sqlite不太了解,不明白为什么要用sqlite,为什么不用Mysql(也是我喜欢的数据库之一)?其实,安我的理解是最重要的两点就是简单方便和小巧玲珑,不过还是把sqlite的特点跟大家
Sqlite的简单介绍和应用
(一)为什么要用sqlite3?
相信很多人跟我一样一开始对sqlite不太了解,不明白为什么要用sqlite,为什么不用Mysql(也是我喜欢的数据库之一)?其实,安我的理解是最重要的两点就是简单方便和小巧玲珑,不过还是把sqlite的特点跟大家说一下吧,
sqlite3的优点: www.2cto.com
(1)实现了绝大多数SQL92标准。整个数据库存储在一个单一的文件中
(2)数据库文件可以在不同字节许的机器之间自由共享
(3)提供了多种语言的绑定,如C/C ,python,java
(4)相对比较流行的客户/服务器数据库引擎运行的更快
(5)没有外部依赖,源代码位于公共域,可以用于任何用途。
(6)源代码开放,代码95%有较好的注释
(7)不需要配置,不需要安装,也不需要管理员
(8)sqlite不是一个用于连接到大型数据库服务器的客户端,而是非常适合桌面程序(如字典等)和小型网站的数据库服务器。
(9)sqlite直接读写在硬盘上的数据库文件。
(二)sqlite的安装 www.2cto.com
(1)用系统的包管理器安装
sudo apt-get install sqlite3 sqlite3-doc
若是要安装图形界面,则输入以下指令
sudo apt-get install sqliteman sqliteman-doc
(2)编译安装
到官网(www.sqlite.org)上下载压缩包sqlite-3.*.*.tar.gz
$tar -xvf sqlite-3.*.*.tar.gz
$cd sqlite-3.*.*
$./configure
$make
$sudo make install
(三)sqlite的简单使用
sqlite3兼容大部分的SQL92语法,所以我们只需要学习几个sqlite3的几个特殊命令就可以了。不过为了完整,我还是在下面为大家演示了一些基本操作(如果看不懂的话,那么我想你需要补一点数据库的知识了:-))
首先在命令行执行 sqlite *.db就新建了一个库文件,我们的数据就都保存在这个文件里
$ sqlite3 test.db
SQLite version 3.7.9 2011-11-01 00:52:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table test( www.2cto.com
...> ID integer primary key,
...> name varchar(12)
...> );
sqlite> insert into test values(1,"one");
sqlite> insert into test values(2,"Two");
sqlite> insert into test values(3,"Three");
sqlite> select * from test;
1|one
2|Two
3|Three
sqlite> update test set name="One" where ID=1;
sqlite> select * from test;
1|One
2|Two
3|Three
sqlite> delete from test where ID=3;
sqlite> create index ID_INDEX on test(ID);
好了,上面的操作都是符合SQL92标准的,下面的一些命令才是sqlite的特色
sqlite的特殊命令都是以.开头的,比如刚开始进入sqlite的命令行时提示说“ Enter ".help" for instructions",其中“.help"就是特殊命令,我们输入.help会看到以下信息,都是以"."开头的。 www.2cto.com
sqlite> .help
.backup ?DB? FILE Backup DB (default "main") to FILE
.bail ON|OFF Stop after hitting an error. Default OFF
.databases List names and files of attached databases
.dump ?TABLE? ... Dump the database in an SQL text format
......
这里面有几个经常使用的,跳出来说一下。
sqlite> .tables --显示所有的表
test
sqlite> .schema --显示所有的定义
CREATE TABLE test(
ID integer primary key,
name varchar(12)
);
CREATE INDEX ID_INDEX on test(ID);
另外
.quit | .exit 退出
.output FILENAME 备份数据库
其他的自己看在线文档吧,就是.help命令了。
(四)sqlite的特别用法 www.2cto.com
sqlite可以在shell直接运行命令
$sqlite3 test.db "select * from test;" --显示表的内容
$sqlite3 -html test.db "select * from test;" --将表输出为HTML
$sqlite3 test.db ".dump">test.sql --备份数据库
$sqlite3 test.db
(五)用C/C 操作sqlite
我们若是用包管理器安装的sqlite3,那么很遗憾我们并没有用C操作sqlite3所需要的库,我们必须安装libsqlite3-dev
$sudo apt-get install libsqlite3-dev
若是编译安转的话,那么恭喜你,你已经可以用C操作sqlite3了,下面是我编写的一个关于test数据库的创建,插入,删除,更新,查询等的一个C程序,给大家献丑了。
//name:testdb.c
//Autor:prape
//date:2012-10-7
#include
#include
#include
int main(int argc,char **argv){
sqlite3 *db=NULL; www.2cto.com
char *errmsg=0;
int sf;//打开sqlite3库返回的状态
//打开数据库
sf=sqlite3_open("test.db",&db);//打开test.db,并把打开的数据库付给db
if(sf){
printf("can't open database test.dbn");
sqlite3_close(db);
return 0;
}
else{
printf("open test.db successfullyn");
} www.2cto.com
//创建数据库
char *sql="create table test(
ID integer primary key,
name varchar(12)
);";
sqlite3_exec(db,sql,0,0,&errmsg);
//插入记录
sql="insert into "test" values(1,"one");";
sqlite3_exec(db,sql,0,0,&errmsg);
sql="insert into "test" values(2,"Two");";
sqlite3_exec(db,sql,0,0,&errmsg);
sql="select * from "test";";
//查询记录
int row=0,column=0;
char **result;
sqlite3_get_table(db,sql,&result,&row,&column,&errmsg);
int i=0;
for(i=0;i
printf("result[%d]=%sn",i,result[i]);
sqlite3_free_table(result);//清除表占内存
sql="delete from "test" where ID=3;";
sqlite3_exec(db,sql,0,0,&errmsg);
sqlite3_close(db);
return 0; www.2cto.com
}
然后编译执行
$gcc testdb.c -lsqlite3 -o testdb.exe
如果前面你安装了libsqllite3-dev的话,那么你一定编译成功了,不过记住要链接sqlite3库。
这个程序里面还有许多不足之处,比如每次表的内容更改以后将表格打印出来会好很多,但是代码都是重复的,这里我就不复制代码了(本人有点懒),就当留给大家尝试的内容好了。

MySQL在数据库和编程中的地位非常重要,它是一个开源的关系型数据库管理系统,广泛应用于各种应用场景。1)MySQL提供高效的数据存储、组织和检索功能,支持Web、移动和企业级系统。2)它使用客户端-服务器架构,支持多种存储引擎和索引优化。3)基本用法包括创建表和插入数据,高级用法涉及多表JOIN和复杂查询。4)常见问题如SQL语法错误和性能问题可以通过EXPLAIN命令和慢查询日志调试。5)性能优化方法包括合理使用索引、优化查询和使用缓存,最佳实践包括使用事务和PreparedStatemen

MySQL适合小型和大型企业。1)小型企业可使用MySQL进行基本数据管理,如存储客户信息。2)大型企业可利用MySQL处理海量数据和复杂业务逻辑,优化查询性能和事务处理。

InnoDB通过Next-KeyLocking机制有效防止幻读。1)Next-KeyLocking结合行锁和间隙锁,锁定记录及其间隙,防止新记录插入。2)在实际应用中,通过优化查询和调整隔离级别,可以减少锁竞争,提高并发性能。

MySQL不是一门编程语言,但其查询语言SQL具备编程语言的特性:1.SQL支持条件判断、循环和变量操作;2.通过存储过程、触发器和函数,用户可以在数据库中执行复杂逻辑操作。

MySQL是一种开源的关系型数据库管理系统,主要用于快速、可靠地存储和检索数据。其工作原理包括客户端请求、查询解析、执行查询和返回结果。使用示例包括创建表、插入和查询数据,以及高级功能如JOIN操作。常见错误涉及SQL语法、数据类型和权限问题,优化建议包括使用索引、优化查询和分表分区。

MySQL是一个开源的关系型数据库管理系统,适用于数据存储、管理、查询和安全。1.它支持多种操作系统,广泛应用于Web应用等领域。2.通过客户端-服务器架构和不同存储引擎,MySQL高效处理数据。3.基本用法包括创建数据库和表,插入、查询和更新数据。4.高级用法涉及复杂查询和存储过程。5.常见错误可通过EXPLAIN语句调试。6.性能优化包括合理使用索引和优化查询语句。

选择MySQL的原因是其性能、可靠性、易用性和社区支持。1.MySQL提供高效的数据存储和检索功能,支持多种数据类型和高级查询操作。2.采用客户端-服务器架构和多种存储引擎,支持事务和查询优化。3.易于使用,支持多种操作系统和编程语言。4.拥有强大的社区支持,提供丰富的资源和解决方案。

InnoDB的锁机制包括共享锁、排他锁、意向锁、记录锁、间隙锁和下一个键锁。1.共享锁允许事务读取数据而不阻止其他事务读取。2.排他锁阻止其他事务读取和修改数据。3.意向锁优化锁效率。4.记录锁锁定索引记录。5.间隙锁锁定索引记录间隙。6.下一个键锁是记录锁和间隙锁的组合,确保数据一致性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

记事本++7.3.1
好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3汉化版
中文版,非常好用