如何使用Linux中sqlite数据库?

640?


数据库的安装


1. 网络安装:

配置好网络源后

sudo apt-get install sqlite3  


2.使用给出的deb包安装:

Sudo dpkg -i *.deb

安装三个deb包

使用源码包安装:

解压:tar xzf sqlite-autoconf-3140100.tar.gz 

执行./configure 

执行make && make install


3.执行sqlite3 -version进行测试


sqllite命令


创建数据库:sqlite3 company.db

1.帮助:.help

2.退出sqlite3:.quit

3.显示当前打开的数据库文件:.database

4.显示数据库中所有表名:.tables

5.查看表的结构:.schema  <table_name>

6.控制显示格式:.mode column   .header on


SQLite 数据类型


表结构:行:记录  列:字段 值:字段值

每个存储在 SQLite 数据库中的值都具有以下存储类之一:

1.null:值是一个 NULL 值。

2.integer:值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。

3.real:值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。

4.text:值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。

5.blob:值是一个 blob 数据,完全根据它的输入存储。


sql命令(以';'结尾)


1.创建表(主键)

create table table_name(

    column1 datatype  primary key,

    column2 datatype,

    column3 datatype,

    .....

    columnn datatype,

);  //primary保证字段唯一性

实例:(not null 表示记录被插入时候字段不能为空)

下面是一个实例,它创建了一个 COMPANY 表,ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL:

create table company(

   id int primary key     not null,

   name           text    not null,

   age            int     not null,

   address        char(50),

   salary         real

);


2.删除表

drop  table  <table_name>

drop  table company;


3.插入数据

3.1 指定列插入数据

insert into table_name (column1, column2, column3,...columnn)  values (value1, value2, value3,...valuen);

3.2 所有列插入数据

insert into table_name values (value1,value2,value3,...valuen);


4.查询语句

查询所有

select * from table_name;

查询指定列

select column1, column2, columnn from table_name;

条件查找

select * from table_name where <表达式>

例:select * from company where id = 7;


5.删除记录

delete from table_name where [condition];

如果不使用条件,那么会删除整个表数据

举例:

删除ID=7的表

delete from company where id = 7;


6.修改

update table_name set column1 = value1, column2 = value2...., columnn = valuen where [condition];

如果不使用where指定条件,那么会更新所有的记录


linux编程接口


包含:#include<sqlite3.h>

编译方式:gcc sqlite1.c -lsqlite3


1.int sqlite3_open(char  *path, sqlite3 **db);

功能:打开sqlite数据库,如果数据库不存在则创建它

path: 数据库文件路径

db: 指向sqlite句柄的指针

返回值:成功返回SQLITE_OK,失败返回错误码(非零值)


2.int sqlite3_close(sqlite3 *db);

功能:关闭sqlite数据库

返回值:成功返回SQLITE_OK,失败返回错误码

返回值:返回错误信息


3.执行sql语句接口

int sqlite3_exec(

  sqlite3 *db, /* An open database */

  const char *sql, /* SQL to be evaluated */

  int (*callback)(void*,int,char**,char**),  /* Callback function */

  void *arg,   /* 1st argument to callback */

  char **errmsg /* Error msg written here */

);

功能:执行SQL操作

db:数据库句柄

sql:要执行SQL语句

callback:回调函数(满足一次条件,调用一次函数,用于查询)

arg:传递给回调函数的参数

errmsg:错误信息指针的地址

返回值:成功返回SQLITE_OK,失败返回错误码

回调函数:

typedef int (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name);

功能:每找到一条记录自动执行一次回调函数

para:传递给回调函数的参数(由 sqlite3_exec() 的第四个参数传递而来)

f_num:记录中包含的字段数目

f_value:包含每个字段值的指针数组(列值)

f_name:包含每个字段名称的指针数组(列名)

返回值:成功返回SQLITE_OK,失败返回-1,每次回调必须返回0后才能继续下次回调

4.不使用回调函数执行SQL语句

int sqlite3_get_table(sqlite3 *db, const  char  *sql,  char ***resultp,  int*nrow,  int *ncolumn, char **errmsg);

功能:执行SQL操作

db:数据库句柄

sql:SQL语句

resultp:用来指向sql执行结果的指针

nrow:满足条件的记录的数目(但是不包含字段名)

ncolumn:每条记录包含的字段数目

errmsg:错误信息指针的地址

返回值:成功返回SQLITE_OK,失败返回错误码


云计算免费课程火热抢先中,5天运维课程免费听,点击文末“阅读原文”即可免费听课当然也有其他IT课程免费听(Java、前端、大数据、Python、设计、C++、嵌入式、网络营销),后台回复“姓名+联系方式+所在+课程名称”也可申请其他免费课程,火速抢先~~~~

PS:记得查收小编送你的免费大礼包呦~

福利 | 一万多套PPT模板等你免费来拿!无条件领取!

免费送 | 1000多套简历模板免费拿,附赠简历制作教程!

免费领 | 《Shell脚本 100例》电子书免费拿,运维必备干货~

640? 640?wx_fmt=jpeg

▼▼点击【阅读原文】,免费听5天Linux运维干货分享课,火热开讲中,速来抢!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值