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(僵 ...
随机推荐
- Centos系统FastDFS搭建与排错
FastDFS中Tracker server主要是负载均衡和调度,Storage server主要是文件存储. 1.1 系统环境 [root@ centos fastdfs]# cat /etc/re ...
- Linux 系统调用sysconf
1.前言 当前计算机都是多核的,linux2.6提供了进程绑定cpu功能,将进程指定到某个core上执行,方便管理进程.linux提供了sysconf系统调用可以获取系统的cpu个数和可用的cpu个数 ...
- FJUT-这还是一道数论题
这还是一道数论题 TimeLimit:4000MS MemoryLimit:128MB 64-bit integer IO format:%lld Special Judge Problem D ...
- C++入门篇十一
单例对象:为了让类只有一个实例,实例不需要自己释放掉 不管创建多少个实例对象进行访问,访问的都是同一个值 #include "pch.h" #include <iostrea ...
- 重磅发布:阿里 OpenJDK终于开源啦! 将长期支持版本 Dragonwell
前几天的北京阿里云峰会,阿里巴巴正式宣布对外开源 OpenJDK 长期支持版本 Alibaba Dragonwell.作为 Java 全球管理组织 Java Community Process (JC ...
- ELK搭建<一>:搭建ES集群
1.首先进入官网下载ES,如果下载最新之前的版本 点击past releases就行了. 2.解压后进入config修改配置文件elasticsearch.yml #集群名称 cluster.name ...
- c程序内存模型
这篇文章主要记录一下c程序运行时内存空间如何使用.(摘抄自网络) 在一个多任务操作系统中的每个进程都运行在它自己的内存“沙箱”中.这个沙箱是一个虚拟地址空间(virtual address space ...
- 测开之路十:函数&参数
def 函数名(): 函数代码块 return 返回值 参数 必备参数:位置参数,调用函数时必须有值传入 默认参数,调用如果没有传值使用默认值 不定长参数 *args:想传多少传多少,必须放在位置参数 ...
- 2018-2019-2 网络对抗技术 20165323 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165323 Exp2 后门原理与实践 一.实验要求 (3.5分) (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用soc ...
- python第六天(元组、字典、集合)
一.元组(tuple) 作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要用来读 定义:与列表类型相比,只不过把[ ]换成() age=(11,22,33,44,55)prin ...