本文介绍创建一个简单的数据库,并能够在需要的时间和地点快速使用它们。SQLite 在世界范围内的许多设备中使用。

什么是SQLite?

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,不需要在系统中配置。

安装

下面在Centos8中安装SQLite:

[root@localhost ~]# yum -y install sqlite

使用下面命令运行sqlite吧:

[root@localhost ~]# sqlite3
SQLite version 3.26.0 2018-12-01 12:34:55
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

sqlite> 提示符的意思是 SQLite 正在运行并准备好执行任何操作。现在,通过键入 ^D 或 .exit 退出。

示例:假设一个钱币收藏家。数据库将被称为 numismatists.db,数据表被称为coins。有很多方法使用 SQLite。我们将从一个文本文件开始。因此,打开文本编辑器并编辑 numismatist.sql 添加以下内容:

[root@localhost ~]# vim numismatists.db

复制一下内容到numismatists.db文件中:

/** numismatist.sql    Beginner's database*/PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;Create Table coins(
denomination TEXT,
value  FLOAT,
comments TEXT
);Insert into coins values(
'Quarter',
30.35,
'Gift from Grandpa'
);COMMIT;

创建表和创建数据的格式和Mysql类似:

创建表格的格式:create table tablename (....);

创建记录的格式:insert into tablename values(..., ..., ...);

接下来,告诉 SQLite 使用我们刚刚创建的文件中的命令创建我们的数据库。

[root@localhost ~]# cat numismatists.sql | sqlite3 numismatists.db

使用以下命令测试它是否有效,来查看coins表的内容:

[root@localhost ~]# sqlite3 numismatists.db 'select * from coins'
Quarter|30.35|Gift from Grandpa

所有这些操作都可以在 SQLite 内部完成,输入sqlite3进入sqlite控制台:

[root@localhost ~]# sqlite3 numismatists.db
SQLite version 3.26.0 2018-12-01 12:34:55
Enter ".help" for usage hints.
sqlite> select * from coins;
Quarter|30.35|Gift from Grandpa
sqlite>

可以看到查询到的内容了。

sqlite控制台中基本命令:

  • .q 退出控制台
  • .database 列出数据库
  • .table 列出表

如何使用数据库

现在我们有了最基本数据库,我们可以探索随着这个数据库规模的增长会发生什么。数据库通常很大,不是吗?那么我们如何在数据库中输入无数行进行测试呢?没有人会这样做!简单,方法如下(如果您使用 bash),只需使用此脚本:

[root@localhost ~]# vim sqlite.sh
#!/bin/bash
function my_insert() {echo "insert into coins values('$1', $2, 'From Grandpa');"
}
i=1.25        # establish minimum coin value
for a in `seq 1 10000` ; donew_val=`echo "$i + $RANDOM / 1000" | bc`my_insert "Quarter-$a" $new_val >> big_add-list#printf "Processing %i\n" $a # modulo 100 == 0 would be betterecho "Processing $a"
done

现在,将新数据合并到现有数据库中:

[root@localhost ~]# cat big_add-list | sqlite3 numismatists.db

可以看到已经导入1166条记录了。因为我没有让脚本生成10000条记录。

总结

在本文中,我们看到创建数据库是一项非常简单的任务。与 SQLite 结合使用时,任何人都可以大大简化通常由数据库处理的任务。

SQLite 基本命令使用方式相关推荐

  1. SQLite的事务处理方式

    SQLite把每一条SQL语句解释为一个事务,这就是事务处理自动提交模式:也可以通过begin...commit语句实现对多条SQL语句的包裹,也就是多条SQL语句在一个事务中进行处理,这就是用户提交 ...

  2. Sqlite大批量导入数据提高效率的几种方式

    前言 SQLite数据库由于其简单.灵活.轻量.开源,已经被越来越多的被应用到中小型应用中.甚至有人说,SQLite完全可以用来取代c语言中的文件读写操作.因此我最近编写有关遥感数据处理的程序的时候, ...

  3. spring 配置sqlite的方式

    sqlite作为一种嵌入式数据库越来越受欢迎,特别是在小型的项目中,下面介绍两种spring配置sqlite数据库的方式 第一种:配置在tomcat目录下 1.在tomcat根目录下创建dbs文件夹, ...

  4. Qt操作SQLite数据库的三种方式

    Qt访问Sqlite数据库的三种方式(即使用三种类库去访问),分别为QSqlQuery.QSqlQueryModel.QSqlTableModel,对于这三种类库,可看为一个比一个上层,也就是封装的更 ...

  5. Xamarin SQLite教程数据库访问与生成

    Xamarin SQLite教程数据库访问与生成 在本教程中,我们将讲解如何开发SQLite相关的App.在编写程序前,首先需要做一些准备工作,如了解Xamarin数据库访问方式,添加引用,构建使用库 ...

  6. SQLite学习手册(在线备份)

    一.常用备份: 下面的方法是比较简单且常用的SQLite数据库备份方式,见如下步骤:     1). 使用SQLite API或Shell工具在源数据库文件上加共享锁.     2). 使用Shell ...

  7. 如何使用SQLite

    前些时候看到兴趣小组里有人问"Android上SQLite的最佳实践"是什么,好奇地搜了一下,确实没有一个好一点的指导文档,平时的使用也只是简单的拷贝code,并没有深入的研究过. ...

  8. cocos2d-x 3.0rc2中读取sqlite文件

    cocos2d-x 3.0rc2中读取sqlite文件的方式,在Android中直接读取软件内的会失败.须要复制到可写的路径下 sqlite3* dbFile = NULL;std::string p ...

  9. Sqlite学习笔记(五)SQLite封锁机制

    概述 SQLite虽然是一个轻量的嵌入式数据库,但这并不影响它支持事务.所谓支持事务,即需要在并发环境下,保持事务的ACID特性.事务的原子性,隔离性都需要通过并发控制来保证.那么Sqlite的并发控 ...

最新文章

  1. 对人脑而言,阅读计算机代码和阅读语言有何不同?
  2. Leetcode 122. 买卖股票的最佳时机 II 解题思路及C++实现
  3. 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to
  4. CSS基础----元素分类
  5. 文件那些事儿之一(初稿)
  6. 《Android进阶之光》— Android 书籍
  7. Canvas坐标轴中的Y轴距离是X轴的两倍
  8. 计算机考研复试面试问题总结——数据结构篇(含答案)
  9. 思科CISCO ASA 5521 防火墙 Ipsec 配置详解
  10. Linux服务器查看任务计划,Linux的任务计划
  11. PS怎样删除文字成为背景颜色
  12. 计算机桌面时间设置,电脑时间校准,教您怎么校正电脑时间
  13. android 优秀框架整理
  14. 骆昊python100天 github_GitHub - MingZhao2019/Python-100-Days: Python - 100天从新手到大师
  15. gmail 邮箱附件大小 突破10M
  16. 关于审查元素与查看网页源码的区别
  17. 服务器遇到一个意外的情况,阻止它完成请求
  18. 如何在.config文件自定义配置节
  19. 特斯拉Autopilot软件重写
  20. 【转】STL之父访谈录

热门文章

  1. Git 高级用法,喜欢就拿去用!
  2. pycharm中的terminal解释器和project 解释器不统一问题
  3. 复习计算机网络day2
  4. 1996 年 3 月. IEEE 成立了 802.3z 工作组开始制定 1000Mb/s 标准。下列千兆以太网中不属于该标准的是(19)【答案】C
  5. 技能 | Python处理图像10大经典库(附下载地址)
  6. 实战:使用 OpenCV 的自动驾驶汽车车道检测(附代码)
  7. 链表问题4——反转双向链表
  8. go 方法接受者 是指针类型和非指针类型的 区别
  9. 一起学微软Power BI系列-使用技巧(3)Power BI安卓手机版安装与体验
  10. 阿里云面向企业效率的云上产品全解析——云呼叫中心