在linux下我们首先要获取root权限

当然也可是使用 sudo命令

接着让我们来安装sqlite3吧!博主当然是已经安装好了!

别急,的确你是安装好了sqlite3但是有一点必须要记住,你还没有安装对应的api库,所谓的api库就是在你使用c接口编程时导致的各种没有定义和找不到!

于是我们接着安装好它的库,我的是已经安装好后的了!

OK,下面便到了我们理解SQL语言的步骤了!

  • sql功能
    • 数据定义(DDL):用户定义、删除和修改数据模式
    • 数据查询(DQL):用于查询数据
    • 数据操纵(DML):用于增、删、改数据
    • 数据控制(DCL):用于控制数据访问权限

其实它的语言非常像我们小学时代最喜欢在作文里出现的几个句子一样!

一个动词 (干什么) 对 ****(对象)where (条件);

记住:它跟咱们写代码一样都是以;号结尾的,我经常犯忘记写分号的错误!

它还有个非常不同于我们一般写代码的地方是:它不区分大小写的哟!

  1. 创建表

    Create table[表明](创建的各个元素)

    Create table student (id integer primary key ,name text);

  2. 改变表

    ALTER TABLE table { RENAME TO name | ADD COLUMN column_def }

    我们基本不会用到这个,我也没有去注意过它,等到大家真的去研究数据库再说吧

  3. 删除

    Delete from [表名]where<条件>

    Delete from student where id = 1;

  4. 查询

    Select * from[表名]

    其实查询用许许多多,后面在讲API调用的时候,我们细细讲来

    API linux的大餐到了

    1、打开数据库

  • int sqlite3_open(const char* fileName, sqlite3** ppDB);
  • 函数功能:打开一个数据库;若该数据库文件不存在,则自动创建。打开或者创建数据库的命令会被缓存,直到这个数据库真正被调用的时候才会被执行。
  • 输入参数:fileName,待打开的数据库文件名称,包括路径,以'\0'结尾; 特别说明:SQLite 支持内存数据库,内存方式存储使用文件名":memory:"
  • 输出参数:ppDB,返回打开的数据库句柄;
  • 返回值:执行成功返回SQLITE_OK,否则返回其他值;

    2、关闭数据库

  • int sqlite3_close(sqlite3* pDB);
  • 函数功能:关闭一个打开的数据库;
  • 输入参数:pDB,打开的数据库句柄
  • 输出参数: 无
  • 返回值:执行成功返回SQLITE_OK,否则返回其他值

    3、执行sql

  • int sqlite3_exec(sqlite3* pDB, const char *sql, sqlite_callback callback, void*para, char** errMsg);
  • 函数功能:编译和执行零个或多个SQL 语句,查询的结果返回给回调函数callback
  • 输入参数:pDB,数据库句柄;sql,待执行的SQL 语句字符串,以'\0'结尾;callback,回调函数,用来处理查询结果,如果不需要回调(比如做insert 或者delete 操作时),可以输入NULL;para,用户传入的参数,可以为NULL,该参数指针最终会被传给回调函数callback,供用户在回调函数中使用;
  • 输出参数:errMsg,返回错误信息,注意是指针的指针。
  • 返回值:执行成功返回SQLITE_OK,否则返回其他值

    还有一种是专门从数据库中取出来,然后读取出来的

  • int sqlite3_prepare(sqlite3* pDB, const char* sql , int maxSqlLen,sqlite3_stmt** ppStmt, const char**pTail);
  • 函数功能:将SQL 语句编译成SQLite 能够识别的二进制字节码(也即SQL声明,statement),结果保存在ppStat 中。注:输入的参数中只有第一个SQL语句会被编译。SQL 语句间通过分号';'分隔。
  • 输入参数:pDB ,数据库句柄;sql ,待编译的SQL 语句字符串;

    maxSqlLen,SQL 语句的最大长度,如果此值小于0,SQLite 会自动计算字符串长度;

  • 输出参数:ppStmt,编译后SQL 语句存放位置;pTail,未编译的SQL 语句的起始位置,一般输入NULL 就可以了。
  • 返回值:执行成功返回SQLITE_OK,否则返回其他值

    以下是我写的例子:(数据库已经在前面打开了)

    int rc;//只是说明rc的类型

    sqlite3 * db;//只是说明db的类型 这个数据库指针绝对不是在这定义的!

    int ncolumn

    rc = sqlite3_prepare(db,"select * from test",-1,&stmt,0);

    is_sqlite3_error(rc);//自己写的一个检验是否执行的函数

    rc = sqlite3_step(stmt);

    ncolumn = sqlite3_column_count(stmt);

    while(rc == SQLITE_ROW)

    {

    for(i = 0; i < ncolumn; i++)

    {

    printf("%s|",sqlite3_column_text(stmt,i));

    }

    printf("\n");

    rc = sqlite3_step(stmt);

    }

数据库sqlite3在linux中的使用的更多相关文章

  1. 在 Linux 中,最直观、最可见的部分就是 文件系统(file system)

    在 Linux 中,最直观.最可见的部分就是 文件系统(file system).下面我们就来一起探讨一下关于 Linux 中国的文件系统,系统调用以及文件系统实现背后的原理和思想.这些思想中有一些来 ...

  2. Linux下用到数据库sqlite3

    最近在Linux下用到数据库sqlite3,于是开始了该方面的学习. 0. 引言 我们这篇文章主要讲述了如何在C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理, 包括创建数据库.创建 ...

  3. iOS开发中的4种数据持久化方式【二、数据库 SQLite3、Core Data 的运用】

                   在上文,我们介绍了ios开发中的其中2种数据持久化方式:属性列表.归档解档.本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运 ...

  4. linux中安装oracle数据库

    1. 执行 ./runInstaller 提示 /tmp 的空间过小执行 mount -o remount,size=1G,noatime /tmp重新设置 /tmp 的大小 2. 安装完成数据库之后 ...

  5. 通过window(Navicat)访问linux中的mysql数据库

    Centos安装Mysql数据库 查看我们的操作系统上是否已经安装了mysql数据库 [root@centos~]# rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已 ...

  6. 数据库sqlite3的使用-ios中引用方法

    一.简单说明 在iOS中使用SQLite3,首先要添加库文件libsqlite3.dylib和导入主头文件. 导入头文件,可以使用库中的函数(是纯C语言的) 二.具体说明 新建一个项目,在项目的主界面 ...

  7. LINUX中备份mysql数据库

    1.在LINUX中创建备份目录 如:/home/backup   2.把sh脚本放到备份目录下   脚本如下 https://wws.lanzous.com/i1oCxlccapa密码:dter   ...

  8. Android adb命令,linux中各种命令

    常用的ADB命令 1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器 ...

  9. 如何在Linux中搭建禅道8.4.1(httpd+php+mysql)

    1.安装httpd 命令:yum install httpd 然后一路y即可 2.安装php 命令:yum install php   3.安装php-mysql 命令:yum install php ...

随机推荐

  1. java项目 远程debug

    AVA项目无法像PHP那样可以随时修改文件内容进行调试,调试可以借助eclipse,本地代码的话很容易在本地debug,但如果代码已经打包部署在linux上呢?可以进行远程debug   很简单,只需 ...

  2. C# 调用Delphi dll

    delphi dll 源码: library dllres; type char10 = ..] of char; TMydata = packed record id: Integer; name: ...

  3. python3.7使用models.ForeignKey时一定要传入实参on_delete=models.CASCADE

    models.ForeignKey 模型中最重要的部分——以及模型中唯一需要的部分——是它定义的数据库字段列表.字段由类属性指定.注意不要选择与模型API冲突的字段名称,如清除.保存或删除. from ...

  4. JAVA—编码问题

    一.编码.(引用  百度百科) 编码是信息从一种形式或格式转换为另一种形式的过程也称为计算机编程语言的代码简称编码.用预先规定的方法将文字.数字或其它对象编成数码,或将信息.数据转换成规定的电脉冲信号 ...

  5. 总结目前为止学到的关键字(break,continue,private,static,this,super,final,abstract)

    1.控制跳转语句:break(结束) 使用的场景: a.循环当中 b.switch break关键字需要注意的问题: 1.break关键字只能用于循环和switch语句当中,其本质就是结束整段语句的意 ...

  6. 流式处理框架storm浅析(下篇)

    本文来自网易云社区 作者:汪建伟 举个栗子 1 实现的目标 设计一个系统,来实现对一个文本里面的单词出现的频率进行统计. 2 设计Topology结构: 这是一个简单的例子,topology也非常简单 ...

  7. vue 中的computed和watch

    计算属性 通过计算得来的属性 computed:是一个计算属性,用来监听属性的变化 computed里面的方法调用的时候是不需要加() 另外里面的方法必须要有一个返回值   computed里面的方法 ...

  8. ZJOI2019 游记

    Day -2 入住酒店,跟 Sooke 一个房间 酒店还是很好的呢 然后就是颓废 Sooke 和 zxy,ljx,lyt,xx 一起打 lol,我孤独的打着坦克和 MC 然后复习了一下板子 Day - ...

  9. powerdesign设计、实现简单的数据库模型

    1,新建CDM,打开powerdesign,选择Categories----Infoomation------Conceptual Data.开始画图,如果此时如表示关系的图标是灰色的.Tools-- ...

  10. SpringBoot整合MyBatis及Thymeleaf

    http://www.cnblogs.com/ludashi/archive/2017/05/08/6669133.html 上篇博客我们聊了<JavaEE开发之SpringBoot工程的创建. ...