一、centos安装sqlite3
CentOS 安装 SQLite3
在服务器端开发过程中,SQLite 是一个轻量级的数据库引擎,常用于嵌入式设备和小型应用程序中。CentOS 是一种流行的 Linux 发行版,本文将介绍在 CentOS 上安装 SQLite3 的方法。
步骤一:更新系统
在安装任何软件之前,首先确保您的系统是最新的,可以通过以下命令更新:
sudo yum update
步骤二:安装 SQLite3
要在 CentOS 上安装 SQLite3,可以执行以下命令:
sudo yum install sqlite
安装完成后,您可以验证 SQLite3 是否成功安装,输入以下命令来检查版本信息:
sqlite3 --version
步骤三:使用 SQLite3
安装完成后,您可以开始使用 SQLite3 数据库。以下是一些常用的 SQLite3 命令示例:
sqlite3 newdatabase.db
:创建一个新的数据库。.databases
:显示当前连接的所有数据库。CREATE TABLE students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);
:创建名为 "students" 的表。INSERT INTO students (name, age) VALUES ('Alice', 20);
:向表中插入数据。SELECT * FROM students;
:检索表中的所有数据。
您可以根据您的需求执行各种 SQLite3 命令来管理和操作数据库。
步骤四:卸载 SQLite3
如果您想从 CentOS 系统中卸载 SQLite3,可以使用以下命令:
sudo yum remove sqlite
这将删除 SQLite3 软件包及其依赖项。
结论
通过本文的介绍,您现在应该知道如何在 CentOS 上安装和使用 SQLite3 数据库。SQLite3 的轻量级特性使其成为许多开发人员首选的数据库引擎之一。在您的项目中使用 SQLite3 可以帮助您高效地管理数据。希望本文对您有所帮助,祝您在 CentOS 上的开发工作顺利!
二、sqlite3优缺点?
sqlite的主要优点:
零配置(Zero Configuration)
SQlite3不用安装,不用配置,不用启动,关闭或者配置数据库实例。当系统崩溃后不用做任何恢复操作,再下次使用数据库的时候自动恢复。
紧凑(compactness):
SQLite是被设计成轻量级,自包含的。一个头文件,一个lib库,你就可以使用关系数据库了,不用任何启动任何系统进程。一般来说,整个SQLITE库小于225KB。
可移植(Portability)
它是运行在Windows,Linux,BSD,Mac OSX和一些商用Unix系统,比如Sun的Solaris,IBM的AIX,同样,它也可以工作在许多嵌入式操作系统下,比如QNX,VxWorks,PalmOS, Symbin和Windows CE。
最大特点:采用无数据类型,所以可以保存任何类型的数据,SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下五种数据类型:
1.NULL:空值。
2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。
3.REAL:浮点数字,存储为8-byte IEEE浮点数。
4.TEXT:字符串文本。
5.BLOB:二进制对象。
但同样的,这样的做法会导致在插入和修改时,要花去更多的时间。
SQLITE的缺点:
1:SQLITE不可储存过多的数据库,它的性能发挥最好只能在存放较小的数据量情况下。不要把它当做MYSQL甚至ORACLE来使用。它只是一个200K的数据库。
2:sqlite3不像MYSQL那样使用固定日志文件,所有使用insert、update、delete的运行效率只是一般,sqlite3的一个事务,需要调用4次fsync()操作,而一般的大型数据库,如mysql只用到了2次。sqlite3对每个事务都创建一个临时文件来记录日志,这个日志创建、更新和删除竟然使用了3次fsync()!为什么不用一个固定的日志文件呢?实在难以理解设计者的思路。可能他们把重点放在"Select"性能上吧。通过阅读sqlite3-3.5.1的源代码,发现作者也试图对这个问题进行修正,可能由于可靠性的原因,一直没有正式公布。
三、sqlite3缓存,参数?
Sqlite 缓存参数在下文中查询:数据库一般运行在嵌入式环境中,需要兼顾性能和硬件资源。
SQLite 使用 PRAGMA 命令在 SQLite 环境内控制各种环境变量和状态标志。一个 PRAGMA 值可以被读取,也可以根据需求进行设置。主要介绍几个在嵌入式开发中经常使用的关键参数。
synchronous
synchronous Pragma 获取或设置当前磁盘的同步模式,该模式控制积极的 SQLite 如何将数据写入物理存储。也就是说该参数控制何时执行sync指令。
Pragma 值描述0 或 OFF不进行同步。1 或 NORMAL在关键的磁盘操作的每个序列后同步。2 或 FULL在每个关键的磁盘操作后同步。
当synchronous设置为FULL (2), SQLite数据库引擎在紧急时刻会暂停以确定数据已经写入磁盘。这使系统崩溃或电源出问题时能确保数据库在重起后不会损坏。为了保证数据的安全性,该项建议设置为FULL。
journal_mode
journal_mode Pragma 获取或设置控制日志文件如何存储和处理的日志模式。
Pragma 值描述DELETE默认模式。在该模式下,在事务结束时,日志文件将被删除。TRUNCATE日志文件被阶段为零字节长度。PERSIST日志文件被留在原地,但头部被重写,表明日志不再有效。MEMORY日志记录保留在内存中,而不是磁盘上。OFF不保留任何日志记录。
首先补充一个知识点,SQLite中日志模式主要有DELETE和WAL两种,其中WAL(Write ahead logging)是一种日志模式,它是一种思想,普遍应用于关系型数据库。每个事务执行变更时,修改数据页,同时会产生日志,这样在事务提交后,不需要将修改的脏页刷盘,只需要将事务产生的日志落盘即可返回。WAL保证日志一定先于对应的脏页落盘,就是所谓的WAL。
DELETE模式采用影子分页技术(Shadow paging),DELETE模式下,日志中记录的变更前数据页内容;WAL模式下,日志中记录的是变更后的数据页内容。事务提交时,DELETE模式将日志刷盘,将DB文件刷盘,成功后,再将日志文件清理;WAL模式则是将日志文件刷盘,即可完成提交过程。
建议将journal_mode 设置为delete,当数据写入数据库有失败动作时,透过journal档案予以复原到未更动前(原始)数据,来确保数据完整与一致性。如果在每次写入的时间很长或频繁的进行数据库写入情况下,因系统(主机)电力不稳或突然断电时,那么下次重新启动,而journal档案若存在,则在开启SQLite数据库时,若发现有journal档案的存在,便会对数据库做Rollback 动作(还原)。
journal_size_limit
默认值为-1,表示没有限制,单位是字节。
DELETE模式下,当日志增长超过阀值时,则进行截断。default_journal_size_limit,用于设置日志文件的默认大小。
cache_size
cache_size Pragma 可获取或暂时设置在内存中页面缓存的最大尺寸。
pages 值表示在缓存中的页面数。内置页面缓存的默认大小为 2,000 页,最小尺寸为 10 页。每页使用约1.5K内存,若需要使用改变大量多行的UPDATE或DELETE命令,并且不介意SQLite使用更多的内存的话,可以增大缓存以提高性能。建议设置为2000即可。
auto_vacuum
auto_vacuum Pragma 获取或设置 auto-vacuum 模式。
Pragma 值描述0 或 NONE禁用 Auto-vacuum。这是默认模式,意味着数据库文件尺寸大小不会缩小,除非手动使用 VACUUM 命令。1 或 FULL启用 Auto-vacuum,是全自动的。在该模式下,允许数据库文件随着数据从数据库移除而缩小。2 或 INCREMENTAL启用 Auto-vacuum,但是必须手动激活。在该模式下,引用数据被维持,自由页面只放在自由列表中。这些页面可在任何时候使用 incremental_vacuum pragma 进行覆盖。
正常情况下,当提交一个从数据库中删除数据的事务时,数据库文件不改变大小。未使用的文件页被标记并在以后的添加操作中再次使用。这种情况下使用VACUUM命令释放删除得到的空间。但是Vacuum的效率非常低!建议 设置成NONE(0),定时手动进行VACUUM操作。
void db_config(sqlite3 *db)
{
int ret;
char *errmsg=NULL;
system("sync");
ret = db_sql_exec(db,"pragma journal_mode=delete;",&errmsg);
if(ret !=SQLITE_OK)
{
fprintf(stderr, "config db wal error: %s\n", errmsg);
sqlite3_free(errmsg);
}
ret = db_sql_exec(db,"pragma synchronous=FULL;",&errmsg);
if(ret !=SQLITE_OK)
{
fprintf(stderr, "config db synchronous error: %s\n", errmsg);
sqlite3_free(errmsg);
}
ret = db_sql_exec(db,"pragma journal_size_limit=409600;",&errmsg);
if(ret !=SQLITE_OK)
{
fprintf(stderr, "config db journal_size_limit error: %s\n", errmsg);
sqlite3_free(errmsg);
}
ret = db_sql_exec(db,"PRAGMA cache_size =2000",&errmsg);
if(ret !=SQLITE_OK)
{
fprintf(stderr, "config db cache_size error: %s\n", errmsg);
sqlite3_free(errmsg);
}
ret = db_sql_exec(db,"PRAGMA auto_vacuum = NONE;",&errmsg);
if(ret !=SQLITE_OK)
{
fprintf(stderr, "config db auto_vacuum error: %s\n", errmsg);
sqlite3_free(errmsg);
}
}
参考:
https://blog.csdn.net/tietao/article/details/6890350
https://www.runoob.com/sqlite/sqlite-pragma.html
http://www.it165.net/database/html/201310/4691.html
https://blog.csdn.net/zhaofuguang/article/details/91882073
四、centos sqlite3
CentOS中安装和使用SQLite3
SQLite是一种轻量级的嵌入式关系型数据库管理系统,适用于各种不同的应用程序。CentOS是一种流行的Linux发行版,因其稳定性和安全性而广受欢迎。本文将介绍如何在CentOS操作系统中安装和使用SQLite3。
1. 安装SQLite3
要在CentOS中安装SQLite3,可以通过yum包管理器进行安装。以下是安装SQLite3的步骤:
- 打开终端窗口。
- 运行以下命令以安装SQLite3:
yum install sqlite
安装完成后,您可以验证SQLite3是否成功安装,可以运行以下命令检查安装情况:
sqlite3 --version
2. 使用SQLite3
SQLite3提供了一个交互式的命令行界面,您可以使用该界面执行SQL查询和管理数据库。以下是一些常用的SQLite3命令:
- .open database_name: 打开指定名称的数据库。
- .tables: 列出当前数据库中的所有表。
- .schema table_name: 显示指定表的架构。
- SELECT * FROM table_name: 显示指定表中的所有数据。
- CREATE TABLE: 创建新表。
- INSERT INTO: 向表中插入新数据。
除了命令行界面外,您还可以在应用程序中使用SQLite3作为数据库。通过SQLite3提供的C API,您可以在C/C++程序中嵌入SQLite3数据库功能。
3. 示例应用程序
以下是一个简单的使用SQLite3的Python应用程序示例:
import sqlite3
# 连接到数据库(若不存在,则会在当前目录创建该数据库)
conn = sqlite3.connect('example.db')
# 创建游标对象
c = conn.cursor()
# 创建表
c.execute('''CREATE TABLE stocks
(date text, trans text, symbol text, qty real, price real)''')
# 插入数据
c.execute("INSERT INTO stocks VALUES ('2022-01-05', 'BUY', 'GOOGL', 100, 1500.25)")
# 查询数据
c.execute("SELECT * FROM stocks")
print(c.fetchall())
# 关闭连接
conn.close()
这个简单的Python脚本创建了一个名为example.db的SQLite3数据库,并在其中创建了一个名为stocks的表,并插入了一条数据。您可以根据实际需求修改和扩展这个示例应用程序。
4. 总结
本文介绍了在CentOS操作系统中安装和使用SQLite3的方法,包括安装SQLite3软件包、通过命令行界面执行SQL查询、在应用程序中使用SQLite3等内容。SQLite3作为一种轻量级的数据库管理系统,在开发应用程序时具有很高的灵活性和适用性。希望本文能够帮助您更好地了解和使用SQLite3。
五、centos 安装sqlite3
sudo yum update六、centos sqlite3安装
CentOS下SQLite3安装及配置详解
在进行CentOS系统开发时,有时会需要使用SQLite3数据库作为数据存储解决方案。SQLite3是一种轻量级的、基于文件的数据库,非常适合小型项目或移动应用程序的数据管理。本文将详细介绍在CentOS下安装和配置SQLite3数据库的步骤,帮助您快速上手并顺利完成相关开发工作。
安装SQLite3
首先,确保您的CentOS系统已连接到互联网,并具备sudo权限。接下来,打开终端,按照以下步骤安装SQLite3:
- 执行以下命令更新系统软件包列表:
- 然后运行以下命令安装SQLite3:
- 等待安装完成后,验证SQLite3是否成功安装:
sudo yum update
sudo yum install sqlite
sqlite3 --version
配置SQLite3
安装完成后,接着需要配置SQLite3以确保其正常运行。以下是配置SQLite3的关键步骤:
- 创建新的SQLite数据库文件:
- 在SQLite3提示符下,可以执行各种SQLite命令,例如创建表、插入数据等。
- 退出SQLite3控制台:
sqlite3 mydatabase.db
.quit
使用SQLite3
现在您已经成功安装和配置了SQLite3,可以开始在CentOS系统上使用它了。以下是一些常用的SQLite3命令示例:
- 打开特定数据库文件:
- 显示表格列表:
- 执行SQL查询:
sqlite3 mydatabase.db
.tables
SELECT * FROM table_name;
总结
通过本文的介绍,您应该已经掌握了在CentOS系统上安装、配置和使用SQLite3的基本步骤和技巧。SQLite3作为一种简单易用的数据库解决方案,将为您的项目带来便利和高效的数据管理能力。在实际开发中,结合SQLite3的灵活性和功能强大的SQL语法,您可以轻松实现各种数据操作需求。
七、centos sqlite3 安装
CentOS系统下安装SQLite3教程
SQLite3是一个轻量级的嵌入式关系型数据库管理系统,它在许多应用程序中被广泛使用。本教程将指导您如何在CentOS系统上安装SQLite3。
步骤一:更新系统
在安装任何新软件之前,首先确保您的系统已经更新到最新版本。您可以通过以下命令来更新系统:
yum update
步骤二:安装SQLite3
安装SQLite3非常简单。您只需要运行以下命令:
yum install sqlite
安装过程可能需要一些时间,取决于您的系统配置和网络速度。
步骤三:验证安装
安装完成后,您可以通过运行以下命令来验证SQLite3是否成功安装:
sqlite3 --version
如果安装成功,您将看到SQLite3的版本信息。
其他注意事项
在实际使用中,您可能需要进一步了解如何配置和管理SQLite3数据库。SQLite官方网站提供了丰富的文档和教程,可以帮助您更好地利用这一强大的工具。
总的来说,在CentOS系统上安装SQLite3非常简单。遵循以上步骤,您将很快拥有一个可靠的数据库管理系统来支持您的应用程序开发。
八、java sqlite3使用方法?
java连接SQLite 代码如下:
Java代码
importjava.sql.*;
importorg.sqlite.JDBC;
/**
* 这是个非常简单的SQLite的Java程序,
* 程序中创建数据库、创建表、然后插入数据,
* 最后读出数据显示出来
*/
publicclass TestSQLite
{
publicstaticvoid main(String[] args){
try{
//连接SQLite的JDBC
Class.forName("org.sqlite.JDBC");
//建立一个数据库名zieckey.db的连接,如果不存在就在当前目录下创建之
Connection conn =DriverManager.getConnection("jdbc:sqlite:zieckey.db");
Statement stat = conn.createStatement();
stat.executeUpdate("create table tbl1(name varchar(20), salary int);");//创建一个表,两列
stat.executeUpdate("insert into tbl1values('ZhangSan',8000);");//插入数据
stat.executeUpdate("insert into tbl1values('LiSi',7800);");
stat.executeUpdate("insert into tbl1values('WangWu',5800);");
stat.executeUpdate("insert into tbl1values('ZhaoLiu',9100);");
ResultSet rs = stat.executeQuery("select * from tbl1;");//查询数据
while(rs.next()){//将查询到的数据打印出来
System.out.print("name = "+ rs.getString("name")+" ");//列属性一
System.out.println("salary = "+ rs.getString("salary"));//列属性二
}
rs.close();
conn.close();//结束数据库的连接
}
catch(Exception e ){
e.printStackTrace();
}
}
}
九、如何打开android的sqlite3?
1、在PC环境下启动一个模拟器(不是手机)
2、查看模拟器 /systen/xbin是否有sqlite3命令
adb shell
cd /system/xbin
ls
3、把模拟器 /system/xbin/sqlite3命令文件从模拟器拷到PC上
adb pull /system/xbin/sqlite3 e:/eclipse
4、关闭模拟器,把Android手机连接到PC
5、获取Android手机 /system 文件夹的读取权限
adb shell # mout -o remout, rw -t yaffs2 /dev/block/mtdblock3 /system(根据自己的设备网上很多人的设备是这个)
6、把PC上的e:/eclipse/sqlite3文件拷到Android手机的/system/xbin/目录下
adb push e:/sqlite3 /system/xbin
若是提示permission denial
adb shell
chmod 777 system/
cd system
chmod 777 xbin
然后执行上面的 push
若是还是不行就直接 到eclipse DDMS filter explore 下面 /system/xbin
把所用的数据直接从电脑上拖到 /system/xbin 下面
7、修改Android真机/system/xbin/sqlite3命令的权限
adb shell
chmod 4755 /system/xbin/sqlite3
然后输入sqlite3
进入到sqlite就可以了。
十、sqlite3怎么查询字段类型?
Sqlite v3数据库中的任何列,除了整形主键列,可以用于存储任何一个存储列的值。sql语句中的中所有值,不管它们是嵌入在sql文本中或者是作为参数绑定到一个预编译的sql语句,它们的存储类型都是未定的。在下面描述的情况中,数据库引擎会在查询执行过程中在数值(numeric)存储类型(INTEGER和REAL)和TEXT之间转换值。1.1布尔类型Sqlite没有单独的布尔存储类型,它使用INTEGER作为存储类型,0为false,1为true1.2 Date和Time DatatypeSqlite没有另外为存储日期和时间设定一个存储类集,内置的sqlite日期和时间函数能够将日期和时间以TEXT,REAL或INTEGER形式存放l TEXT 作为IS08601字符串("YYYY-MM-DD HH:MM:SS.SSS")
l REAL 从格林威治时间11月24日,4174 B.C中午以来的天数