一,安装Sqlite3

1.入门时看http://www.runoob.com/sqlite/sqlite-intro.html,说的简单,但是适合入门

2.在终端输入sqlite3,没有返回信息,表示系统没有安装sqlite3,否则系统已安装(系统一般附带有安装)

3.需要自己安装时,到http://www.sqlite.org/sqlite-autoconf-3070500.tar.gz下载,

 然后:(1) tar -zxvf sqlite-autoconf-3070500.tar.gz

    (2) cd  sqlite-autoconf-3070500

    (3)  ./configure --prefix=/xx/xxxx(/xx/xxxx表示文件生成目录)

    (4)  make & make install (成功后在/xx/xxxx目录下生成(bin include lib share 4个目录))

        其中bin放置可执行文件sqlite3,./sqlite3 可进入sqlite命令行界面

        include放置头文件

        lib放置库文件

二,用的较多的命令

    (1)获取点命令清单:.help

    (2)退出提示符:.quit     .exit

    (3)输出到屏幕:output stdout

    (4)列出数据库名称:.databases

    (5)以SQL文本格式转存数据库:.dump

三,用的较多的存储类

    NULL、INTEGER、REAL、TEXT

四,很有用的语法

    (1)创建数据库:sqlite3 xxx.db

    (2)创建表

    (3)删除表

    (4)INSERT INTO语法

    (5)SELECT语法

    (6)WHERE语法

    (7)UPDATE语法

    (8)DELETE语法

五,Sqlite3 API 使用

    (1)最重要的三个函数:

      int sqlite3_open(const char*, sqlite3**);

      int sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void*, char**);

      int sqlite3_close(sqlite3*);

      还有2个:

          const char *sqlite3_errmsg(sqlite3*);

          void sqlite3_free(void*);

      查看更多函数,下载sqlite源码包,只需要其中的sqlite3.c、sqlite.h即可。


    (2)sqlite3_open 返回一个整数错误代码,=0 表示成功码,> 0都是错误码,详情看Sqlite3手册说明

      函数用于打开/创建一个函数库

      const char* 指定文件名,sqlite3** 指定数据库句柄,用户通过数据库句柄操作数据库

      

    (2)sqlite3_exec返回0表示sql指令执行完毕,否则说明这次执行没有成功

      函数用于执行一条或多条SQL语句,SQL语句之间用“;”隔开

      sqlite3*指定已打开的数据库句柄,const char *sql   指定SQL指令,sqlite_callback  在回调函数中可以获得SQL执行的结果

      void*  指定传给回调函数的数据 , char**   指定命令执行失败的详细错误信息

    (3)回调函数

      

    (4) sqlite3_close   关闭数据库文件,参数是数据库句柄

    (5)sqlite3_errmsg  返回错误码所对应的文字说明,参数是数据库句柄

    (6)sqlite3_free  释放存放错误信息的内存空间,sqlite3_errmsg  返回的errmsg必须用此函数释放

    (7)简单测试代码

      

 #include <stdio.h>
#include <sqlite3.h> int callback(void *pv,int argc,char **argv,char **col)
{
int cnt_i = ;
for(cnt_i =;cnt_i < argc;cnt_i++)
{
printf("%s\t%s\n",col[cnt_i],argv[cnt_i]);
}
printf("\n");
return ;
} int main(void)
{
sqlite3 *db;
int result = ;
char *rerrmsg = NULL;
char *sql = NULL;
char *data = "callback"; result = sqlite3_open("sample.db",&db);
if(result > )
{
printf("open database err:%s\n",sqlite3_errmsg(db));
return -;
} else
{
printf("open database successfully!\n"); sql = "CREATE TABLE STUDENT(" \
"NUM INT PRIMARY KEY NOT NULL," \
"NAME TEXT NOT NULL," \
"AGE INT NOT NULL," \
"SORCE REAL);"; result = sqlite3_exec(db,sql,callback,NULL,&rerrmsg);
if(result != )
{
printf("creat table err:%s\n",rerrmsg);
sqlite3_free(rerrmsg);
return -;
} else
{
printf("create table successfully!\n"); sql = "INSERT INTO STUDENT(NUM,NAME,AGE,SORCE)" \
"VALUES(1,'Paul',13,99.1);" \
"INSERT INTO STUDENT(NUM,NAME,AGE,SORCE)" \
"VALUES(2,'Kate',15,94.1);" \
"INSERT INTO STUDENT(NUM,NAME,AGE,SORCE)" \
"VALUES(3,'Jim',12,95.1);" \
"INSERT INTO STUDENT(NUM,NAME,AGE,SORCE)" \
"VALUES(4,'Tom',13,99.4);" \
"INSERT INTO STUDENT(NUM,NAME,AGE,SORCE)" \
"VALUES(5,'Jack',13,89.1);"; result = sqlite3_exec(db,sql,callback,NULL,&rerrmsg);
if(result != )
{
printf("insert data err:%s\n",rerrmsg);
sqlite3_free(rerrmsg);
return -;
} else
{
printf("insert data successfully!\n"); sql = "SELECT * FROM STUDENT";
result = sqlite3_exec(db,sql,callback,(void *)data,&rerrmsg);
if(result != )
{
printf("select data err:%s\n",rerrmsg);
sqlite3_free(rerrmsg);
return -;
} else
{
printf("select data successfully!\n");
}
}
}
} sqlite3_close(db); return ;
}

六,图形界面管理工具

     SQLite Expert - Personal Edition ,简单入门,直接导入数据库文件即可

以上,

2017/03/30

Sqlite3支持的数据类型

NULL,INTEGER,REAL,TEXT,BLOB

以及:
smallint 16 位元的整数。
interger 32 位元的整数。
decimal(p,s) p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。
float   32位元的实数。
double   64位元的实数。
char(n)   n 长度的字串,n不能超过 254。
varchar(n) 长度不固定且其最大长度为 n 的字串,n不能超过 4000。
graphic(n) 和 char(n) 一样,不过其单位是两个字元 double-bytes, n不能超过127。这个形态是为了支援两个字元长度的字体,例如中文字。
vargraphic(n) 可变长度且其最大长度为 n 的双字元字串,n不能超过 2000
date   包含了 年份、月份、日期。
time   包含了 小时、分钟、秒。

timestamp 包含了 年、月、日、时、分、秒、千分之一秒。

参考:

type description
TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB, BYTEA String types of unlimited length. Binary data must be safely encoded, see text.
CHAR(), VARCHAR(), TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT String types of unlimited length. There is no chopping or padding performed by the database engine.
ENUM String type of unlimited length. In contrast to MySQL, choosing ENUM over VARCHAR does not save any storage space.
SET String type of unlimited length. In contrast to MySQL, the input is not checked against the list of allowed values.
YEAR String type of unlimited length. MySQL stores 2 or 4 digit years as a 1 byte value, whereas the SQLite drivers stores the string as provided.
TINYINT, INT1, CHAR A 1 byte type used to store one character, a signed integer between -128 and 127, or an unsigned integer between 0 and 255.
SMALLINT, INT2 2 byte (short) integer type used to store a signed integer between -32768 and 32767 or an unsigned integer between 0 and 65535.
MEDIUMINT 3 byte integer type used to store a signed integer between -8388608 and 8388607 or an unsigned integer between 0 and 16777215.
INT, INTEGER, INT4 4 byte (long) integer type used to store a signed integer between -2147483648 and 2147483647 or an unsigned integer between 0 and 4294967295.
BIGINT, INT8, INTEGER PRIMARY KEY 8 byte (long long) integer type used to store a signed integer between -9223372036854775808 and 9223372036854775807 or an unsigned integer between 0 and 18446744073709551615. See below for a discussion of INTEGER PRIMARY KEY.
DECIMAL, NUMERIC A string type of unlimited length used to store floating-point numbers of arbitrary precision.
TIMESTAMP, DATETIME A string type of unlimited length used to store date/time combinations. The required format is 'YYYY-MM-DD HH:MM:SS', anything following this pattern is ignored.
DATE A string type of unlimited length used to store a date. The required format is 'YYYY-MM-DD', anything following this pattern is ignored.
TIME A string type of unlimited length used to store a time. The required format is 'HH:MM:SS', anything following this pattern is ignored.
FLOAT, FLOAT4, REAL A 4 byte floating-point number. The range is -3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to 3.402823466E+38. Please note that MySQL treats REAL as an 8 byte instead of a 4 byte float like PostgreSQL.
DOUBLE, DOUBLE PRECISION, FLOAT8 An 8 byte floating-point number. The range is -1.7976931348623157E+308 to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to 1.7976931348623157E+308.

Sqlite3入门简记的更多相关文章

  1. python sqlite3 入门 (视频讲座)

    python sqlite3 入门 (视频讲座) an SQLite mini-series! - Simple Databases with Python 播放列表: YouTube https:/ ...

  2. sqlite3 入门

    SQLite3 C语言API入门下载SQLite3 我们下载sqlite源码包,只需要其中的sqlite3.c.sqlite.h即可.最简单的一个创建表操作#include <stdio.h&g ...

  3. sqlite3入门之sqlite3_get_table,sqlite3_free_table

    sqlite3_get_table sqlite3_get_table函数原型: int sqlite3_get_table( sqlite3 *db, /* An open database */ ...

  4. sqlite3入门之sqlite3_open,sqlite3_exec,slite3_close

    sqlite3_open sqlite3_open函数原型: int sqlite3_open( const char *filename, /* Database filename (UTF-8) ...

  5. Docker入门简记

    Docker的容器环境实际上是借助类Linux命名空间,将各种系统资源按照容器不同划分了不同的命名空间进行隔离,为各个进程提供独立的运行环境关键概念:容器,镜像两个概念一起看,镜像好比平常系统中的各个 ...

  6. sqlite3入门之sqlite3_mprintf

    sqlite3_mprintf sqlite3_mprintf()函数原型: char *sqlite3_mprintf(const char*,...); sqlite3_mprintf()的作用是 ...

  7. sqlite3使用入门

    sqlite的安装 1. 首先是下载sqlite,可以该页面下载:http://www.sqlite.org/download.html 当前的最新版本为:sqlite-shell-win32-x86 ...

  8. SQLite3简单入门及C++ API

    转载请注明出处:http://www.cnblogs.com/StartoverX/p/4660487.html 项目用到SQLite3,简单记录一下. MySQL不同,SQLite3的数据库基于文件 ...

  9. python3基础入门-知识点简记

    1.基础语法 编码.标识符.保留字.注释.行与缩进... 2.变量类型 (1)Python3有6个标准的数据类型: Numbers(数字)  数字数据类型用于存储数值  不可改变的数据类型 可细分为  ...

随机推荐

  1. Git 头像修改 原

    Git头像分两种: 第一种是直接在你当前托管的git服务网站中自定义上传头像 第二种通过第三方网站修改,基本上所有git服务网站都遵循这点,下面说的就是该模式 其实很简单!!! https://zh- ...

  2. sklearn标准化-【老鱼学sklearn】

    在前面的一篇博文中关于计算房价中我们也大致提到了标准化的概念,也就是比如对于影响房价的参数中有面积和户型,面积的取值范围可以很广,它可以从0-500平米,而户型一般也就1-5. 标准化就是要把这两种参 ...

  3. webpack打包后访问不到json文件

    一.问题描述 在vue中,前端写ajax假数据,用axios将json数据渲染到组件中,开发期间一切正常,webpack打包压缩后,json文件的路径错误,页面访问不到数据,导致渲染失败. 二.预期结 ...

  4. Mybatis 通用 Mapper 和 Spring 集成

    依赖 正常情况下,在原有依赖基础上增加的 mapper-spring. <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spr ...

  5. php生成随机字符串可指定纯数字、纯字母或者混合的

    php 生成随机字符串 可以指定是纯数字 还是纯字母 或者混合的. 可以指定长度的. function rand_zifu($what,$number){ $string=''; for($i = 1 ...

  6. Express内置方法

    创建一个 Express 应用.express()是一个由 express 模块导出的入口(top-level)函数. //最顶级:top-level 内置方法 express.static(root ...

  7. __x__(6)0905第二天__标签属性=“值”

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  8. [Codeforces Round #438][Codeforces 868D. Huge Strings]

    题目链接:868D - Huge Strings 题目大意:有\(n\)个字符串,\(m\)次操作,每次操作把两个字符串拼在一起,并询问这个新串的价值.定义一个新串的价值\(k\)为:最大的\(k\) ...

  9. jquery运用FormData结合Ajax异步上传表单,超实用

    首先创建一个formData,其中参数,就是你的form表单,jquery要加0,也可以用document.querySelector("form")得到 var formData ...

  10. Jumpserver之设置开机自启动

    vi /usr/lib/systemd/system/jms.service [Unit] Description=jms After=network.target mariadb.service r ...