首页 数据库 mysql教程 Sqlite的简单介绍和应用

Sqlite的简单介绍和应用

Jun 07, 2016 pm 02:53 PM
sqlite 介绍 应用 简单

Sqlite的简单介绍和应用 (一)为什么要用sqlite3? 相信很多人跟我一样一开始对sqlite不太了解,不明白为什么要用sqlite,为什么不用Mysql(也是我喜欢的数据库之一)?其实,安我的理解是最重要的两点就是简单方便和小巧玲珑,不过还是把sqlite的特点跟大家


Sqlite的简单介绍和应用

 

(一)为什么要用sqlite3?

相信很多人跟我一样一开始对sqlite不太了解,不明白为什么要用sqlite,为什么不用Mysql(也是我喜欢的数据库之一)?其实,安我的理解是最重要的两点就是简单方便和小巧玲珑,不过还是把sqlite的特点跟大家说一下吧,

sqlite3的优点:  www.2cto.com  

(1)实现了绝大多数SQL92标准。整个数据库存储在一个单一的文件中

(2)数据库文件可以在不同字节许的机器之间自由共享

(3)提供了多种语言的绑定,如C/C ,python,java

(4)相对比较流行的客户/服务器数据库引擎运行的更快

(5)没有外部依赖,源代码位于公共域,可以用于任何用途。

(6)源代码开放,代码95%有较好的注释

(7)不需要配置,不需要安装,也不需要管理员

(8)sqlite不是一个用于连接到大型数据库服务器的客户端,而是非常适合桌面程序(如字典等)和小型网站的数据库服务器。

(9)sqlite直接读写在硬盘上的数据库文件。

 

(二)sqlite的安装  www.2cto.com  

(1)用系统的包管理器安装

sudo apt-get install sqlite3 sqlite3-doc

若是要安装图形界面,则输入以下指令

sudo apt-get install sqliteman sqliteman-doc

(2)编译安装

到官网(www.sqlite.org)上下载压缩包sqlite-3.*.*.tar.gz

$tar -xvf sqlite-3.*.*.tar.gz

$cd sqlite-3.*.*

$./configure

$make

$sudo make install
 

(三)sqlite的简单使用

sqlite3兼容大部分的SQL92语法,所以我们只需要学习几个sqlite3的几个特殊命令就可以了。不过为了完整,我还是在下面为大家演示了一些基本操作(如果看不懂的话,那么我想你需要补一点数据库的知识了:-))

首先在命令行执行 sqlite *.db就新建了一个库文件,我们的数据就都保存在这个文件里

$ sqlite3 test.db

SQLite version 3.7.9 2011-11-01 00:52:41

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

sqlite> create table test(  www.2cto.com  

   ...> ID integer primary key,

   ...> name varchar(12)

   ...> );

sqlite> insert into test values(1,"one");

sqlite> insert into test values(2,"Two");

sqlite> insert into test values(3,"Three");

sqlite> select * from test;

1|one

2|Two

3|Three

sqlite> update test set name="One" where ID=1;

sqlite> select * from test;

1|One

2|Two

3|Three

sqlite> delete from test where ID=3;

sqlite> create index ID_INDEX on test(ID);
 

好了,上面的操作都是符合SQL92标准的,下面的一些命令才是sqlite的特色

sqlite的特殊命令都是以.开头的,比如刚开始进入sqlite的命令行时提示说“ Enter ".help" for instructions",其中“.help"就是特殊命令,我们输入.help会看到以下信息,都是以"."开头的。  www.2cto.com  

sqlite> .help

.backup ?DB? FILE      Backup DB (default "main") to FILE

.bail ON|OFF           Stop after hitting an error.  Default OFF

.databases             List names and files of attached databases

.dump ?TABLE? ...      Dump the database in an SQL text format

......

这里面有几个经常使用的,跳出来说一下。

sqlite> .tables    --显示所有的表

test

sqlite> .schema    --显示所有的定义

CREATE TABLE test(

ID integer primary key,

name varchar(12)

);

CREATE INDEX ID_INDEX on test(ID);

另外

.quit | .exit  退出

.output FILENAME 备份数据库

其他的自己看在线文档吧,就是.help命令了。
 

(四)sqlite的特别用法  www.2cto.com  

sqlite可以在shell直接运行命令

$sqlite3 test.db "select * from test;"      --显示表的内容

$sqlite3 -html test.db "select * from test;"    --将表输出为HTML

$sqlite3 test.db ".dump">test.sql   --备份数据库

$sqlite3 test.db < test.sql --输出数据库

 

(五)用C/C 操作sqlite

我们若是用包管理器安装的sqlite3,那么很遗憾我们并没有用C操作sqlite3所需要的库,我们必须安装libsqlite3-dev

$sudo apt-get install libsqlite3-dev

若是编译安转的话,那么恭喜你,你已经可以用C操作sqlite3了,下面是我编写的一个关于test数据库的创建,插入,删除,更新,查询等的一个C程序,给大家献丑了。

 

//name:testdb.c

//Autor:prape

//date:2012-10-7

 

#include

#include

#include

 

int main(int argc,char **argv){

    sqlite3 *db=NULL;  www.2cto.com  

    char *errmsg=0;

    int sf;//打开sqlite3库返回的状态 

    //打开数据库

    sf=sqlite3_open("test.db",&db);//打开test.db,并把打开的数据库付给db

    if(sf){

        printf("can't open database test.dbn");

        sqlite3_close(db);

        return 0;

    }

    else{

        printf("open test.db successfullyn");

    }  www.2cto.com  

    //创建数据库

    char *sql="create table test(

        ID integer primary key,

        name varchar(12)

        );";

    sqlite3_exec(db,sql,0,0,&errmsg);

    //插入记录

    sql="insert into "test" values(1,"one");";

    sqlite3_exec(db,sql,0,0,&errmsg);

    sql="insert into "test" values(2,"Two");";

    sqlite3_exec(db,sql,0,0,&errmsg);

    sql="select * from "test";";

    //查询记录

    int row=0,column=0;

    char **result;

    sqlite3_get_table(db,sql,&result,&row,&column,&errmsg);

    int i=0;

    for(i=0;i<(row 1)*column;i )

        printf("result[%d]=%sn",i,result[i]);

    sqlite3_free_table(result);//清除表占内存

    sql="delete from "test" where ID=3;";

    sqlite3_exec(db,sql,0,0,&errmsg);

        

    sqlite3_close(db);

    return 0;  www.2cto.com  

}

然后编译执行

$gcc testdb.c -lsqlite3 -o testdb.exe

如果前面你安装了libsqllite3-dev的话,那么你一定编译成功了,不过记住要链接sqlite3库。

这个程序里面还有许多不足之处,比如每次表的内容更改以后将表格打印出来会好很多,但是代码都是重复的,这里我就不复制代码了(本人有点懒),就当留给大家尝试的内容好了。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP中箭头符号的作用及实践应用 PHP中箭头符号的作用及实践应用 Mar 22, 2024 am 11:30 AM

PHP中箭头符号的作用及实践应用在PHP中,箭头符号(->)通常用于访问对象的属性和方法。对象是PHP中面向对象编程(OOP)的基本概念之一,在实际开发中,箭头符号在操作对象时发挥着重要作用。本文将介绍箭头符号的作用以及实践应用,并提供具体的代码示例来帮助读者更好地理解。一、箭头符号的作用访问对象的属性箭头符号可以用来访问对象的属性。当我们实例化一个对

如何在iPhone中撤消从主屏幕中删除 如何在iPhone中撤消从主屏幕中删除 Apr 17, 2024 pm 07:37 PM

从主屏幕中删除了重要内容并试图将其取回?您可以通过多种方式将应用程序图标放回屏幕。我们已经讨论了您可以遵循的所有方法,并将应用程序图标放回主屏幕如何在iPhone中撤消从主屏幕中删除正如我们之前提到的,有几种方法可以在iPhone上恢复此更改。方法1–替换应用程序库中的应用程序图标您可以直接从应用程序库将应用程序图标放置在主屏幕上。第1步–横向滑动以查找应用程序库中的所有应用程序。步骤2–找到您之前删除的应用程序图标。步骤3–只需将应用程序图标从主库拖动到主屏幕上的正确位置即可。这是将应用程序图

从入门到精通:探索Linux tee命令的各种应用场景 从入门到精通:探索Linux tee命令的各种应用场景 Mar 20, 2024 am 10:00 AM

Linuxtee命令是一个非常有用的命令行工具,它可以在不影响已有输出的情况下,将输出写入文件或者将输出送往另一个命令。在本文中,我们将深入探索Linuxtee命令的各种应用场景,从入门到精通。1.基本用法首先,我们来看一下tee命令的基本用法。tee命令的语法如下:tee[OPTION]...[FILE]...该命令会从标准输入读取数据,并将数据

花亦山心之月鹿蜀技能属性介绍 花亦山心之月鹿蜀技能属性介绍 Mar 23, 2024 pm 05:30 PM

在花亦山心之月中鹿蜀是一名SSR名士,定位是单体后排,拥有很可观的暴击率,有不少玩家对鹿蜀还不太了解,下面小编就带来了花亦山心之月鹿蜀技能属性介绍,快来看看吧。名士属性名士技能1、鹿鸣蜀中技能描述:鹿蜀出身蜀中的穷奇会,自幼习武,武艺超群。对敌方后排单体造成攻击力100%的普攻伤害,并降低目标10点怒气。技能属性:等级2:普攻伤害提升至105%。等级2:普攻伤害提升至110%,并降低目标15点怒气。等级2:普攻伤害提升至115%。等级2:普攻伤害提升至120%,并降低目标20点怒气。等级2:普攻

三星S24ai功能详细介绍 三星S24ai功能详细介绍 Jun 24, 2024 am 11:18 AM

2024是AI手机的元年,越来越多的手机集成了多项ai功能,通过ai智能技术的赋能,让我们的手机使用更加高效便捷。近日,年初发布的GalaxyS24系列再度提升了其生成式AI的体验,下面下详细的功能介绍,一起来看看吧。一、生成式AI深度赋能三星GalaxyS24系列通过GalaxyAI的赋能,带来了诸多智能化应用,这些功能与SamsungOneUI6.1深度集成,让用户可以随时获得便利的智能体验,显着提升了手机的使用效率和便捷性。由GalaxyS24系列首创的即圈即搜功能是亮点之一,用户只需长按

什么是狗狗币 什么是狗狗币 Apr 01, 2024 pm 04:46 PM

狗狗币是一种基于互联网模因创建的加密货币,没有固定的供应上限,交易时间快速,交易费用低,拥有庞大的模因社区。用途包括小额交易、打赏和慈善捐赠。然而,其无限供应量、市场波动和作为笑话币的地位也带来风险和担忧。什么是狗狗币?狗狗币是一种基于互联网模因和笑话创建的加密货币。起源和历史:2013年12月,两位软件工程师BillyMarkus和JacksonPalmer创建狗狗币。灵感来自于当时流行的"Doge"模因,一个以一只柴犬为特征的滑稽照片加上破碎英语。特征和优势:无限供应量:与比特币等其他加密货

探索Go语言的优势及应用场景 探索Go语言的优势及应用场景 Mar 27, 2024 pm 03:48 PM

Go语言是一种由Google开发的开源编程语言,于2007年首次发布。它被设计成一种简单易学、高效、并发性强的语言,受到越来越多开发者的青睐。本文将探索Go语言的优势,并介绍一些适合Go语言的应用场景,同时给出具体的代码示例。优势并发性强:Go语言内置支持轻量级线程——goroutine,能够很容易地实现并发编程。通过使用go关键字就可以启动goroutin

Linux在云计算领域的广泛应用 Linux在云计算领域的广泛应用 Mar 20, 2024 pm 04:51 PM

Linux在云计算领域的广泛应用随着云计算技术的不断发展和普及,Linux作为一种开源操作系统在云计算领域中发挥着重要作用。由于其稳定性、安全性和灵活性,Linux系统被广泛应用于各种云计算平台和服务中,为云计算技术的发展提供了坚实的基础。本文将介绍Linux在云计算领域的广泛应用,并给出具体的代码示例。一、Linux在云计算平台中的应用虚拟化技术虚拟化技术

See all articles