下载安装:
1,到http://www.sqlite.org/download.html下载linux版本的源码:我下载的是sqlite-autoconf-3240000.tar.gz
[wt@localhost ~]$ wget https://www.sqlite.org/2018/sqlite-autoconf-3240000.tar.gz
2,解压:
[wt@localhost ~]$ tar -xzf sqlite-autoconf-3240000.tar.gz -C ./dir
说明:-C ./dir: 解压到./dir文件夹下
3,配置安装信息与安装:
-
cd sqlite-autoconf-3240000/ 进入到源码目录
[wt@localhost sqlite-autoconf-3240000]$./configure CC=/opt/xtools/arm920t/bin/arm-linux-gcc --host=arm-linux --prefix=/usr/local/sqlite3
[wt@localhost sqlite-autoconf-3240000]$ sudo make && make install
说明:CC赋值为嵌入式开发环境所使用的交叉编译工具,--host指定软件运行环境为arm-linux, --prefix指定源码交叉编译后生成文件的路径。
4,移植sqlite3:
-
将在/usr/local/sqlite3/lib 目录下生成的 libsqlite3.so.0.8.6 文件拷贝到嵌入式开发环境的/usr/sbin目录或者程序运行依赖的lib目录下即可。
-
将在/usr/local/sqlite3/bin 目录下生成的 sqlite3 应用程序拷贝到嵌入式开发环境下就可以运行并创建数据库了。
/usr/sbin >: tftp -gr libsqlite3.so.0.8.6 192.168.152.10
/usr/sbin >: tftp -gr sqlite3 192.168.152.10
/usr/sbin >: chmod 777 libsqlite3.so.0.8.6
/usr/sbin >: chmod 777 sqlite3
说明:用tftp命令将文件从pc下载到开发板,这里我pc端的ip为192.168.152.10
sqlite数据库简单的增删改查
1. 创建数据库:
在任意目录下新建一个数据库,比如123.db
~ >: sqlite3 test.db
SQLite version 3.24.0 2018-06-04 19:24:41
Enter ".help" for usage hints.
sqlite>
.databases 查看数据库列表(都有哪些数据库)
.dump 导出完整的数据库在一个文本文件中($sqlite3 test.db .dump > test.sql),从生成的 test.sql 恢复该 数据库($sqlite3 test.db < test.sql)
2,创建表
基本语法
CREATE TABLE database_name.table_name(
column1 datatype PRIMARY KEY(one or more columns), //PRIMARY KEY:主关键字(主键),它的值用于唯一地标识表中的某一条记录
column2 datatype,
column3 datatype,
.....
columnN datatype,
);
实例
创建一个名为COMPANY的表
sqlite> CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL, //ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL:
NAME TEXT NOT NULL, //TEXT表示值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL //REAL表示值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。
);
.tables 验证表是否已成功创建,该命令用于列出附加数据库中的所有表
.schema COMPANY 得到表COMPANY的完整信息
DROP TABLE COMPANY; 删除表COMPANY(不要忽略结尾分号)
3,向表中添加数据
语法一
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] //column1, column2,...columnN 是要插入数据的表中的列的名称。
VALUES (value1, value2, value3,...valueN);
语法二
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN); // 要确保值的顺序与列在表中的顺序一致
实例(向表COMPANY中添加数据)
语法一
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 );
语法二
INSERT INTO COMPANY VALUES (2, 'James', 24, 'Houston', 10000.00 );
4,从 SQLite 数据库表中获取数据
SELECT column1, column2, columnN FROM table_name; //column1, column2...是表的字段,他们的值即是您要获取的
SELECT * FROM table_name; //获取所有可用的字段
实例(从表COMPANY中获取数据)
sqlite>.header on //开启头部显示。
sqlite>.mode column //设置输出模式为左对齐的列
sqlite> SELECT * FROM COMPANY;
得到结果
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 James 24 Houston 10000.0
DELETE FROM COMPANY WHERE ID = 2; 删除 ID 为 2 的客户
DELETE FROM COMPANY; 从 COMPANY 表中删除所有记录
UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 2; 更新 ID 为 2 的客户地址为Texas
有时,由于要显示的列的默认宽度导致 .mode column,这种情况下,输出被截断。此时,您可以使用 .width num, num.... 命令设置显示列的宽度
sqlite>.width 10, 20, 10 //设置第一列的宽度为 10,第二列的宽度为 20,第三列的宽度为 10
系统学习sqlite推荐这个网站:http://www.runoob.com/sqlite/sqlite-tutorial.html