Sqlite3数据库

数据库类型

大型数据库:Oracle
中型数据库:Server,微软开发的数据库产品,主要支持windows平台
小型数据库:mySQL,关系型数据库管理系统,开放源码

SQL语句

1,是标准库语言,不管哪种数据库都支持。
2,不需要以"."开头,正常输入的内容都会当成SQL语句解析。
3,SQL语句的关键字不分区大小写,但是通常用大写
4,在终端以”;“结尾,否则终端继续等待输入

Sqlite3数据库

使用C语言编写
开源
轻量级嵌入式数据库
特点:1:零配置,无需安装和管理配置
   2:存储在单一磁盘中,完整
   3:可在不同字节顺序的机器之间共享
   4:最大支持2TB数据库
   5:体积小,大致3W行源码,250KB
   6:比其他数据库对数据的操作速度快

sqlite3函数

编译:gcc sqlite.c -lsqlite3
头文件:#include <sqlite3.h>
句柄:sqlite3 *db;

(1):int sqlite3_open(char *path, sqlite3 **db);
功能:
打开数据库,没有则创建
参数:
①路径
②:指向句柄的指针
返回值:
①:成功返回SQLITE3_OK
②:失败返回错误码(非零值)

(2):int sqlite3_close(sqlite3 *db);
功能:关闭sqlite3数据库
返回值:
①:成功返回SQLITE3_OK
②:失败返回错误码(非零值)

(3):int sqlite3_exec(sqlite3 *db,const
           char *sql,
           int (*callback)(void *,int,char **,char**),
           void *arg,
           cha **errmsg);
功能:执行SQL操作
参数:
①句柄
②SQL语句
③回调函数(满足一次条件,调用一次函数)
调用查询SQL语句的时候使用回调函数打印查询到的信息
④传递给函数的参数
⑤错误信息指针的地址
返回值:
①:成功返回SQLITE3_OK
②:失败返回错误码(非零值)

(4):回调函数(不能执行SQL语句,只能用于查询)
int sqlite3_get_table(sqlite3 *db,
         const char *sql,
         char ***resultp,
         int *nrow,
         int *ncolumn,
         char **errmsg);
功能:执行SQL操作
参数:
①句柄
②sql语句
③指向sql执行结果的指针
④满足条件的记录的数目(不包含字段名)
⑤每条记录包含的字段数目
⑥错误信息指针的地址       
返回值:
①:成功返回SQLITE3_OK
②:失败返回错误码(非零值)

(5):char* sqlite3_errmsg(sqlite3 *db);
返回sqlite3定义的错误信息

对数据库的操作

数据库本质是一个文件,以db作为后缀名

创建数据库(无则创建,有则打开)

1,使用SQL命令创建
(1)直接:

$ sqlite3 test.db

(2)间接:
①在Linux命令行界面输入“sqlite3”可以启动sqlite3工具。

sqlite>.

②使用。open命令创建

sqlite>.open xxx.db

创建表

CREATE TABLE ”表的名字“(
   column1 datatype   PRIMARY KEY,     //主键,唯一,类似于人的身份证
   column2 datatype   NOT NULL,        //约束在表中创建记录时字段不能为NULL
   column3 datatype,
   .....
   columnN datatype,
);

使用”.tables“列出数据库中的所有表,验证表是否创建成功。

sqlite>.tables

使用”。schema“ 可以查看表的完整信息

sqlite> .schema

删除表

1,

DROP TABLE ”table_name“;

2,

sqlite>DROP TABLE COMPANY;

插入数据

1,对指定列添加值

INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN);

例子:

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Allen', 25, 'Texas', 15000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'David', 27, 'Texas', 85000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 );

2,如果对所有列添加,可以不写列名。但要确保值的顺序与列在表中的顺序一致。

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

例子:

INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );

查询

SELECT column1, column2, columnN FROM table_name;

如果要查询所有的数据,可以用下面的语句:

SELECT * FROM table_name;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值