linux sqlite3 相关
数据库
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 相关的更多相关文章
- Linux文件管理相关命令
Linux文件管理相关命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux文件管理背景知识之后, 我们可以 ...
- Linux进程相关命令使用场景
Linux进程相关命令使用场景 在Linux系统上工作时,我们常常会碰到很多和进程相关的查询场景,今天在这里进行详细的讲解,进程相关的对象包括以下几个: 端口:Port 进程号:PId 执行文件所在路 ...
- 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掉的网卡, ...
- Linux内核相关常见面试题
转:http://www.embeddedlinux.org.cn/html/xinshourumen/201303/11-2475.html 本文详细阐述了linux内核相关的开发职位面试中 ...
- 浅入分析和Linux内核相关的文件夹/proc和/sys .
近来文章被踩的厉害,我只想把自己从马哥学的知识自己总结下发到博客里,但是没想到昨天一篇文章刚发一上午被踩了9次...如果您真的觉得我的文章很烂,请告诉我原因,不胜感激. 这星期,马哥讲了关于Linux ...
- Linux 文件系统相关的基本概念
本文介绍 Linux 文件系统相关的基本概念. 硬盘的物理组成 盘片硬盘其实是由单个或多个圆形的盘片组成的,按照盘片能够容纳的数据量,分为单盘(一个硬盘里面只有一个盘片)或多盘(一个硬盘里面有多个盘片 ...
- Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法 使用介绍
第7周第3次课(5月9日) 课程内容: 10.11 Linux网络相关10.12 firewalld和netfilter10.13 netfilter5表5链介绍10.14 iptables语法 扩展 ...
- Linux 网络相关命令 Cheat Sheet
以下漫画形式呈现的常用 Linux 网络相关命令速查表来自 twitter -
- 脚本_统计 Linux 进程相关数量信息
#!bin/bash#作者:liusingbon#功能:统计 Linux 进程相关数量信息,running(运行的进程),sleeping(睡眠中的进程),stoped(停止的进程),zombie(僵 ...
随机推荐
- ios设置音乐audio自动播放
因为audio标签的自动播放:autoplay.在ios系统中不能自动播放,此时需要设置,在进入页面自动播放音乐. 第一步,先引入js微信 <script src="js/jweixi ...
- shell echo/read/printf/流程控制章节笔记
// echo read printf 流程控制 命令 1.read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量 read hello 输入xxx echo $hell ...
- MYSQL 单表一对多查询,将多条记录合并成一条记录
一.描述: 在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图) 想要达到的效果: 实现SQL语句: SELECT a.books, GRO ...
- .Net core使用Autofac进行依赖注入示例
一.官方文档 https://autofaccn.readthedocs.io/zh/latest/index.html 二.新建.net core 控制台程序 三.注册类型,示例一 1.新建接口 I ...
- VB 字符串转换为UTF-8
dim e as object Set e=CreateObject("MSScriptControl.ScriptControl") e.Language = "jav ...
- 【Linux】日志分析工具grep sed sort
遇到一个问题,在查询日志时发现,服务器上打印的文件有很多个,每个都存储了一部分日志, 需要将日志按照时间排序,并显示所有日志. 原命令: grep -h searchContent */*log 搜 ...
- 1到n的最小步数
1到n的最小步数 Time Limit: 1 Sec Memory Limit: 128 MB 给你一个数n,让你求从1到n的最小步数是多少. 对于当前的数x有三种操作: 1: x+1 2: x ...
- 使用pl/sql developer登陆不了oracle
1,Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务 这里最主要的原因在于:(参考:https://www.cnblogs.com/shangshan/p/6359880.h ...
- python默认参数陷阱
对于学习python的人都有这样的困惑 def foo(a=[]): a.append(5) return a Python新手希望这个函数总是返回一个只包含一个元素的列表:[5].结果却非常不同,而 ...
- 分布式缓存技术之Redis_04Redis的应用实战
目录 1 Redis Java客户端的使用 Jedis 单点连接 Jedis sentinel连接哨兵集群 Jedis sentinel源码分析 Jedis Cluster分片环境连接 Jedis C ...