数据库
sqlite
1 用下载好的安装包安装
linux@ubuntu:~/sqlite3$ sudo dpkg -i libsqlite3-0_3.7.2-1ubuntu0.1_i386_1.deb

[sudo] password for linux:
(Reading database ... 189580 files and directories currently installed.)
Preparing to replace libsqlite3-0 3.7.2-1ubuntu0.1 (using libsqlite3-0_3.7.2-1ubuntu0.1_i386_1.deb) ...
Unpacking replacement libsqlite3-0 ...
Setting up libsqlite3-0 (3.7.2-1ubuntu0.1) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

linux@ubuntu:~/sqlite3$ sudo dpkg -i libsqlite3-dev_3.7.2-1ubuntu0.1_i386_2.deb
(Reading database ... 189580 files and directories currently installed.)
Preparing to replace libsqlite3-dev 3.7.2-1ubuntu0.1 (using libsqlite3-dev_3.7.2-1ubuntu0.1_i386_2.deb) ...
Unpacking replacement libsqlite3-dev ...
Setting up libsqlite3-dev (3.7.2-1ubuntu0.1) ...

linux@ubuntu:~/sqlite3$ sudo dpkg -i sqlite3_3.7.2-1ubuntu0.1_i386_3.deb
Selecting previously unselected package sqlite3.
(Reading database ... 189580 files and directories currently installed.)
Unpacking sqlite3 (from sqlite3_3.7.2-1ubuntu0.1_i386_3.deb) ...
Setting up sqlite3 (3.7.2-1ubuntu0.1) ...
Processing triggers for man-db ...
linux@ubuntu:~/sqlite3$

linux@ubuntu:~/sqlite3$ sqlite3 new.db //创建一个数据库并进入SQLITE命令环境
SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .help //点开头的命令不用加分号 .help 查看帮助文件
sqlite> .quit //退出

数据库:将所有的数据 各种类型 描述各种事物的数据放到一起
数据表:描述某一个事物基本信息的表
记录:表里的一条信息
字段:列名

数据类型:
interger 32位整数
double 64位实数
varchar(n) 长度不固定 且其最大长度n n不能超过4000

sqlite> create table child_info(name varchar(20),age integer,sex varchar(10));//创建表
sqlite> .schema child_info//.schema 查看表名
CREATE TABLE child_info(name varchar(20),age integer,sex varchar(10));

sqlite> insert into child_info values("zhao",23,"femal");//插入记录 所有字段都填入数据
sqlite> .schema child_info
CREATE TABLE child_info(name varchar(20),age integer,sex varchar(10));
sqlite> select *from child_info;//查看表内信息
zhao|23|femal

sqlite> insert into child_info values("qian",21,"male");
sqlite> select *from child_info;
zhao|23|femal
qian|21|male

sqlite> insert into child_info(name)values("sun"); //只给某些字段添加值
sqlite> select *from child_info;
zhao|23|femal
qian|21|male
sun||

sqlite> delete from child_info where name=‘sun’;//删除名字为"sun"的记录
sqlite> select *from child_info;
zhao|23|femal
qian|21|male
li|12|
||femal

sqlite> select *from child_info where name='zhao' and age=23; //查找名字为zhao 年龄为23的记录

其他各种查询
1 查询年龄是25的记录
select * from stu_info where age = 25;
2 查询年龄 > 25的记录
select * from stu_info where age > 25;
3 查询记录 只想看编号、姓名字段
select number, name from stu_info where age = 25;

4 如果想按顺序输出所有记录,按年龄排序
select * from stu_info order by age; //默认情况是升序排列
select * from stu_info order by age desc; //降序排列

5 模糊查询(假设有一个人名我记不住了,但能记住名字中的一个字, 就可以用模糊查询)
查询名字当中带l字符的人
select * from stu_info where name like '%li%';

6 多条件查询
想查询年龄大于 25, 编号 > 10001 的学生信息

select * from stu_info where age > 26 and number > 1001 and name like '%l%';

7 统计记录条数
select count(*) from stu_info;
select count(*) from stu_info where age = 25;

8 统计所有人的年龄总和
select sum(age) from stu_info;

9 统计所有人的年龄平均值
select avg(age) from stu_info;

删除记录
delete from stu_info; //删除所有记录
delete from stu_info where name = 'lisi';

修改记录
zhangsan , 年龄改成30

update stu_info set age = 30 where name = 'zhangsan';
update stu_info set age = 30, sex = 'nan' where name = 'zhangsan';

c操作数据库
1 打开数据库

编译时 加:-lsqlite3

#include<sqlite3.h>
sqlite3_open(char *path,sqlite3 **db);

参数1:数据库名
参数2:创建的数据库连接的对象

成功返回0 失败-1

#include<stdio.h>
#include<sqlite3.h>

int main()
{
sqlite3 *p = NULL;
if(sqlite3_open("snew.db",&p)==0)//如果数据库不存在 则创建
{
printf("database open suc!\n");
}
return 0;

}

编译:gcc a.out -lsqlite3

int sqlite3_exec(sqlite3*db,const char *sql,sqlite3_callbak,void *data,char**errmsg);
参数1:打开的数据库
参数2:将要执行的sql语句
参数3,4,5 传NULL
#include<stdio.h>
#include<sqlite3.h>

int main()
{
sqlite3 *p = NULL;
if(sqlite3_open("new.db",&p)==0)
{
printf("database open suc!\n");
sqlite3_exec(p,"delete from child_info where name='zhao'",NULL,NULL,NULL);

}
sqlite3_close(p);
return 0;

}

int sqlite3_get_table(sqlite3 *db,//数据库连接对象
const char *sql;//将要执行的sql语句
char***result,//查询结果集
int *row;//结果集的行数(不包括字段)
int *column;//结果集的列数
char **errmsg;//查询的 错误信息
)
功能:获取表查询结果

void sqlite3_free_table(char **result);
功能:释放查询结果的内存

#include<stdio.h>
#include<sqlite3.h>

int main()
{
sqlite3 *p = NULL;
if(sqlite3_open("new.db",&p)==0)
{
printf("database open suc!\n");
}

int i;
char *sql = "select *from child_info";
char **result= NULL;
int row,col;
sqlite3_get_table(p,sql,&result,&row,&col,NULL);
for(i=0;i<(row+1)*col;i++)
{
printf("%12s",result[i]);
}
printf("\n");

sqlite3_free_table(result);
sqlite3_close(p);
return 0;

}

linux sqlite3 相关的更多相关文章

  1. Linux文件管理相关命令

    Linux文件管理相关命令   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux文件管理背景知识之后, 我们可以 ...

  2. Linux进程相关命令使用场景

    Linux进程相关命令使用场景 在Linux系统上工作时,我们常常会碰到很多和进程相关的查询场景,今天在这里进行详细的讲解,进程相关的对象包括以下几个: 端口:Port 进程号:PId 执行文件所在路 ...

  3. 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法

    Linux网络相关 ifocnfig 查看网卡ip(yum install net-tools) ip add 查看网卡 ip add = ifocnfig ifconfig 不显示down掉的网卡, ...

  4. Linux内核相关常见面试题

      转:http://www.embeddedlinux.org.cn/html/xinshourumen/201303/11-2475.html   本文详细阐述了linux内核相关的开发职位面试中 ...

  5. 浅入分析和Linux内核相关的文件夹/proc和/sys .

    近来文章被踩的厉害,我只想把自己从马哥学的知识自己总结下发到博客里,但是没想到昨天一篇文章刚发一上午被踩了9次...如果您真的觉得我的文章很烂,请告诉我原因,不胜感激. 这星期,马哥讲了关于Linux ...

  6. Linux 文件系统相关的基本概念

    本文介绍 Linux 文件系统相关的基本概念. 硬盘的物理组成 盘片硬盘其实是由单个或多个圆形的盘片组成的,按照盘片能够容纳的数据量,分为单盘(一个硬盘里面只有一个盘片)或多盘(一个硬盘里面有多个盘片 ...

  7. Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法 使用介绍

    第7周第3次课(5月9日) 课程内容: 10.11 Linux网络相关10.12 firewalld和netfilter10.13 netfilter5表5链介绍10.14 iptables语法 扩展 ...

  8. Linux 网络相关命令 Cheat Sheet

    以下漫画形式呈现的常用 Linux 网络相关命令速查表来自 twitter -

  9. 脚本_统计 Linux 进程相关数量信息

    #!bin/bash#作者:liusingbon#功能:统计 Linux 进程相关数量信息,running(运行的进程),sleeping(睡眠中的进程),stoped(停止的进程),zombie(僵 ...

随机推荐

  1. ios设置音乐audio自动播放

    因为audio标签的自动播放:autoplay.在ios系统中不能自动播放,此时需要设置,在进入页面自动播放音乐. 第一步,先引入js微信 <script src="js/jweixi ...

  2. shell echo/read/printf/流程控制章节笔记

    // echo read printf 流程控制 命令 1.read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量 read hello 输入xxx echo $hell ...

  3. MYSQL 单表一对多查询,将多条记录合并成一条记录

    一.描述: 在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图) 想要达到的效果: 实现SQL语句: SELECT a.books, GRO ...

  4. .Net core使用Autofac进行依赖注入示例

    一.官方文档 https://autofaccn.readthedocs.io/zh/latest/index.html 二.新建.net core 控制台程序 三.注册类型,示例一 1.新建接口 I ...

  5. VB 字符串转换为UTF-8

    dim e as object Set e=CreateObject("MSScriptControl.ScriptControl") e.Language = "jav ...

  6. 【Linux】日志分析工具grep sed sort

    遇到一个问题,在查询日志时发现,服务器上打印的文件有很多个,每个都存储了一部分日志, 需要将日志按照时间排序,并显示所有日志. 原命令: grep -h  searchContent */*log 搜 ...

  7. 1到n的最小步数

    1到n的最小步数 Time Limit: 1 Sec  Memory Limit: 128 MB 给你一个数n,让你求从1到n的最小步数是多少. 对于当前的数x有三种操作: 1:  x+1 2:  x ...

  8. 使用pl/sql developer登陆不了oracle

    1,Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务 这里最主要的原因在于:(参考:https://www.cnblogs.com/shangshan/p/6359880.h ...

  9. python默认参数陷阱

    对于学习python的人都有这样的困惑 def foo(a=[]): a.append(5) return a Python新手希望这个函数总是返回一个只包含一个元素的列表:[5].结果却非常不同,而 ...

  10. 分布式缓存技术之Redis_04Redis的应用实战

    目录 1 Redis Java客户端的使用 Jedis 单点连接 Jedis sentinel连接哨兵集群 Jedis sentinel源码分析 Jedis Cluster分片环境连接 Jedis C ...