数据库
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. SQLAlchemy+Flask-RESTful使用(三)

    前言 顺理成章地,19.3.21起笔了第三章.也就是最近没啥事了,才有时间搞这些.生命不息奋斗不止吧! 变更记录 # 19.3.21 起笔 # 19.3.21 增加 Flask-RESTful如何获取 ...

  2. jsp参数乱码解决

    iframe src引入jsp,?跟着的中文参数会乱码 解决方法: var CJJG=encodeURI(encodeURI(value.data.CJJG));//js里面转码一次 //jsp页面里 ...

  3. java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象

    1. java.util.Arrays  数组工具类    Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...

  4. UiAutomator2.0 - Toast信息的验证

    目录 问题:在做UI自动化测试时,偶尔会碰到 Toast 这种提示信息(如图),通过Uiautomatorviewer 无法获该类控件的信息.所以无法验证,该条case不能实现.然后就没然后了... ...

  5. 生产宕机dunp配置

    修改线程数 <self-tuning-thread-pool-size-min>100</self-tuning-thread-pool-size-min> <self- ...

  6. 逻辑卷管理(linux)

    (创建分区)1.fdisk /dev/sdb2.n3default4.default5.+200M6.w7.partprobe(更新分区)8mkfs.ext4 /dev/sdb1//格式化sdb1.. ...

  7. JSON字符串自动转换

    package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObj ...

  8. iOS开发从申请开发账号到APP上架的整体流程详解

    应公司要求,写一份文档从申请账号一直到APP上架的整体流程,下面进入正文. https://blog.csdn.net/qq_35612929/article/details/78754470 首先第 ...

  9. zabbix企业级监控dell硬件服务状态

    监控dell服务的硬件状态,一般有两种方式 第一,在操作熊上安装OMSA,编写脚本调用omreport命令进行监控 第二.使用IDRAC,只需开启在IARAC上的SNMP,zabbix通过snmp进行 ...

  10. The requested URL / was not found on this server

    The requested URL / was not found on this server.原因:未打开Apache的重写功能#LoadModule rewrite_module modules ...