首页 > 数据库 >在linux下使用sqlite3

在linux下使用sqlite3

时间:2023-03-13 19:46:38浏览次数:39  
标签:linux name sql student 使用 sqlite3 NULL id

前言

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎(来源百度百科)。它是一款轻量级数据库,所占资源低,消耗总量小,被用于嵌入式开发。

安装

apt-get install sqlite3 //数据库操作软件
apt-get install libsqlite3-dev //数据库开发库

sql命令

进入数据库

sqlite3

帮助信息

.help   

创建数据库

.open student.db

创建表

create table student(id integer,name text,age integer);

查看数据库的位置

.database  

输出

seq name file
0 main sqlite3/test.db

查看数据表的名字

.table 

输出:

student

查看数据表创建的信息

.schema

CREATE TABLE student(id integer,name text,age integer);

插入数据

insert into student(id,name,age) values(1,"stu1",21);
insert into student(id,name,age) values(2,"stu2",22);
insert into student(id,name,age) values(3,"stu3",23);

查询数据

select * from student;

设置空白字段显示的字符串

.nullvale "NULL"

显示表头

.header on

查看显示模式

# 如tab list column[推荐] csv table[推荐]
.mode column

修改数据

update  student set age = 25 where id = 3;

删除数据

delete from student where id =1;

删除数据表

drop table student;

离开数据库

.exit

sqlite的API

打开数据库

char sql[128]; //保存sql语句的字符串
sqlite3 *ppdb; //数据库指针
int ret = sqlite3_open("student.db", &ppdb);

创建数据库

memset(sql, 0, sizeof(sql)); //清空sql
sprintf(sql, "create table if not exists student(id integer,name text,age integer);");
ret = sqlite3_exec(ppdb, sql, NULL, NULL, NULL); //执行sql语句

插入数据

memset(sql, 0, sizeof(sql)); //清空sql
sprintf(sql, "insert into student(id,name,age) values(%d,'%s',%d);", id, name, age);
ret = sqlite3_exec(ppdb, sql, NULL, NULL, NULL);//执行sql语句

查询

// 查询方法1
memset(sql, 0, sizeof(sql));//清空sql
sprintf(sql, "select * from student;");
printf("查询方法1结果如下\n");
ret = sqlite3_exec(ppdb, sql, print, NULL, NULL); //执行sql语句 利用回调函数

int print(void *arg, int column, char **value, char **name)// 回调函数
{
    for (size_t i = 0; i < column; i++)
    {
        printf("%s = %s ", name[i], value[i]);
    }
    printf("\n");
    return 0;
}

// 查询方法2
char **result;//字符串数组
int row = 0, column = 0;
memset(sql, 0, sizeof(sql));
sprintf(sql, "select * from student;");
ret = sqlite3_get_table(ppdb, sql, &result, &row, &column, NULL);
if (ret != SQLITE_OK)
{
    printf("sqlite3_get_table:%s\n", sqlite3_errmsg(ppdb));
    exit(0);
}

int i, j;
int inindex = column; 
printf("查询方法2结果如下\n");

for (i = 0; i < row; i++)
{
    for (j = 0; j < column; j++)
    {
        printf("%s = %s ", result[j], result[inindex]);
        inindex++;
    }
    printf("\n");
}

标签:linux,name,sql,student,使用,sqlite3,NULL,id
From: https://www.cnblogs.com/dongchao612/p/17212526.html

相关文章

  • Linux系统编程与网络编程
    Linux系统编程Chapter1系统编程入门GCC区别GCC与G++gcc既能编译c,也能编译c++。只不过gcc在链接的时候,不能自动链接C++的库。在编译阶段,g++会调用gcc,二者是等价的......
  • 使用Java实现BMI指数测试
    前言:使用Java实现BMI指数测试,根据用户提供的身高和体重,调用Scanner方法类,通过类名.的方式进行对象调用,抓取用户数据,再新建一个double函数用来接收用户的数据,使用print函数......
  • 使用jsoup抓取和解析网页数据
    ​如果您觉得本博客的内容对您有所帮助或启发,请关注我的博客,以便第一时间获取最新技术文章和教程。同时,也欢迎您在评论区留言,分享想法和建议。谢谢支持!一、jsoup是什么,它的......
  • Docker 容器中使用PING命令报错
    报错原因下载的镜像是阉割版的有好多命令是没有的然后在这里提醒大家提前下载好需要用到的指令在镜像中解决方法dockerexec-ittomcat01/bin/bash执行aptinstall......
  • python开发环境使用和编程初体验
    #实验任务1 print('hey,u')print('hey','u')x,y,z=1,2,3print(x,y,z) print('x=%d,y=%d,z=%d'%(x,y,z)) print('x={},y={},z......
  • 使用symbolicatecrash工具符号化Crash日志
    对于打包上线的APP,或者打包测试的APP,出现了崩溃并不能方便的把手机链接到电脑,使用XCode自动符号化。此时手动符号化就是重要的选项1.查找符号化工具symbolicatecrash......
  • 五步掌握Git的基本开发使用命令
    第一步:设置全局变量:gitconfig--globaluser.name"gang.li"gitconfig--globaluser.email"[email protected]"第二步:初始化仓库,并推送到远程仓库(如果第一次推送执行......
  • Linux修改时间和时区
    Linux修改时间和时区一、查看时区1、方式一timedatectl如下图可见,系统时区为CST 2、方式二ll/etc/localtime 二、修改时区1、方法一1)查看可选时区tim......
  • jmeter使用-不一样的正则提取
    正则使用:https://blog.csdn.net/darkmanno5/article/details/80428275 1、解决的其他实际问题:安心购榜单是随运营配置不定期变动的,不能写死访问的链接,数据库无法查询,是......
  • 实验1 Python开发环境使用和编程初体验
    Task1-1代码源码#print输出的几种用法#用法1:用于输出单个字符串或单个变量print('hey,u')#用法2:用于输出多个数据项,用逗号分隔print('hey','u')x,y,z=1,2,3pri......