轻量级数据库Sqlite的使用
SqLite是什么?
SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。
就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。
为什么要用 SQLite?
不需要一个单独的服务器进程或操作的系统(无服务器的)。
SQLite 不需要配置,这意味着不需要安装或管理。
一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。
SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。
SQLite 是自给自足的,这意味着不需要任何外部的依赖。
SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。
SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。
SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。
在Windows上安装SQLite
请访问 SQLite 下载页面,从 Windows 区下载预编译的二进制文件。
您需要下载 sqlite-tools-win32-*.zip 和 sqlite-dll-win32-*.zip 压缩文件。
创建文件夹 F:\sqlite,并在此文件夹下解压上面两个压缩文件,将得到 以上sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件
添加 C:\sqlite 到 PATH 环境变量,最后在命令提示符下,使用 sqlite3 命令,将显示如下结果
如果出现以上结果,环境也就没有什么问题了,当然我这里的环境变量是F盘必须要切到这里。
如需获取可用的点命令的清单,可以在任何时候输入 ".help"。例如:
sqlite>.help
让我们尝试使用 .show 命令,来查看 SQLite 命令提示符的默认设置。
sqlite>.show
echo: off
explain: off
headers: off
mode: column
nullvalue: ""
output: stdout
separator: "|"
width:
sqlite>
特别注意 键入这些命令的时候不要有空格,否则无法运行
在Sqlite中有一种概念叫做动态数据,即Sqlite使用者专业术语叫做亲和数据,也就是说,你传入的数据和字段的格式不匹配会自动进行转换,这里就不进行列举了。可以在SQLite官方查看,基本上和别的数据库差距不大。
创建数据库
命令:DbName.db;直接即可,有可能你会遇到的问题如下:
创建数据库时报错:syntax error,这个错是因为你创建目录里已经有数据库了,那你怎么能在数据库里再创建数据库呢,你可以直接在你的sqlite环境变量中目录 创建一个文件夹 进去之后 再直接该命令就没事了。

如果你想查看该文件夹中有那些数据库你可以通过.databases命令来查看。
您可以使用 SQLite .quit 命令退出 sqlite 提示符
创建表
SQLite 的 CREATE TABLE 语句用于在任何给定的数据库创建一个新表。创建基本表,涉及到命名表、定义列及每一列的数据类型。

删除表
语法如下:
DROP TABLE database_name.table_name;
还有一些增删改查的操作这里就不说了,简单的创建库和表就说完了 我们在程序中演示进行CRUD操作。
在.NET Core中使用Sqlite数据库
新建一个.net Core控制台项目

二、在“程序包管理器控制台”下输入:
install-package Microsoft.EntityFrameworkCore.Sqlite.Core
install-package SQLitePCLRaw.bundle_green
三.编码
using System;
using Microsoft.Data.Sqlite;
using System.Data; namespace ConsoApp
{
class Program
{
static void Main(string[] args)
{
string connString = "Data Source=C:\\Users\\MACHENIKE\\Desktop\\Db\\demo.db";
string insertsql = @"insert into company values('冀中能源',1);";
string selectsql = "select * from company";
try
{
using (SqliteConnection conn = new SqliteConnection(connString))
{
conn.Open();
SqliteCommand cmd = new SqliteCommand(insertsql, conn);
cmd.ExecuteNonQuery();
cmd.CommandText = selectsql;
SqliteDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Console.WriteLine("UserId:{0}\tUserName:{1}", dr[0], dr[1]);
}
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}

Dump命令
现在我们的数据库有一定的数据了,我们想要进行备份,可以使用这个命令。

打开之后内容如下,就是我们刚才所操作的。
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE company(
name text not null
,id int primary key
);
INSERT INTO company VALUES('1','冀中能源');
INSERT INTO company VALUES('冀中能源',1);
COMMIT;
那么当你没有数据库了 只有了sql文件 你可以再进行回档。
$sqlite3 testDB.db < testDB.sql
免费的Sqlite可视化工具
市面上有很多收费的sqlite的可视化工具,还有免费的,推荐这个 SQLiteExpert 个人免费 要安装 地址:http://www.sqliteexpert.com/
功能非常强大,如果上述两款不能满足,就试试这个吧,当然也可以自己试着做一个,也没有那么难。
轻量级数据库Sqlite的使用的更多相关文章
- (转)轻量级数据库 SQLite
SQLite Expert – Personal Edition SQLite Expert 提供两个版本,分别是个人版和专业版.其中个人版是免费的,提供了大多数基本的管理功能. SQLite Exp ...
- 轻量级数据库sqlite的编译
sqlite是很多客户端程序所使用的一种轻量级数据库,但是目前没有lib文件,只有源码和dll文件,我们可以利用VS工具生成lib,然后在应用程序中使用. (1)下载地址 http://www.sql ...
- 轻量级数据库sqlite的接口说明
原文地址:http://www.cnblogs.com/kfqcome/archive/2011/06/27/2136999.html 一.使用流程 要使用sqlite,需要从sqlite官网下载到三 ...
- IOS中使用轻量级数据库
IOS中使用轻量级数据库 目录 概述 IOS中的轻量级数据库 sqlite的方法 数据库的实用操作 第三方类库 FMDatabase 概述 IOS中的轻量级数据库 sqlite的方法 sqlite3 ...
- Python信息采集器使用轻量级关系型数据库SQLite
1,引言Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.SQLite作为后端数据库,可以搭配Python建网站,或者为python网络爬虫存储数据.SQLite还在其它 ...
- 桌面轻量级数据库的选择:Access、SQLite、自己编写?
1. Access我们做小项目的时候特别是小的MIS系统一般也都要用数据库来保存数据.经观察大部分的小系统都是用Access数据库,有的系统为了掩盖数据库的类型,把数据文件后缀名改了,其实只要改回到m ...
- python 学习笔记6(数据库 sqlite)
26. SQLite 轻量级的关系型数据库 SQLite是python自带的数据库,可以搭配python存储数据,开发网站等. 标准库中的 sqlite3 提供该数据库的接口. 1. 基本语法如下 c ...
- 无需部署的轻量级数据库—SQLLite,使用Demo
当有程序需要保存轻量数据,而又烦躁序列化到本地的不便,轻量级数据库—SQLLite是一个很好的选择,只需引用System.Data.SQLite.DLL,无需部署数据库,便可像拥有数据库一样保存数据, ...
- [深入浅出iOS库]之数据库 sqlite
一,sqlite 简介 前面写了一篇博文讲如何在 C# 中使用 ADO 访问各种数据库,在移动开发和嵌入式领域也有一个轻量级的开源关系型数据库-sqlite.它的特点是零配置(无需服务器),单磁盘文件 ...
随机推荐
- 过滤emoji表情符
1.使用正则匹配 public function remove_emoji($text){ return preg_replace('/([0-9|#][\x{20E3}])|[\x{ ...
- FreeRTOS数据结构(一)--链表和链表项
结构体定义 /*链表结构体*/ typedef struct xLIST { listFIRST_LIST_INTEGRITY_CHECK_VALUE /*用于链表完整性检查*/ configLIST ...
- Elasticsearch笔记四之配置参数与核心概念
在es根目录下有一个config目录,在此目录下有两个文件分别是elasticsearch.yml和logging.yml. logging.yml是日志文件,es也是使用log4j来记录日志的,我在 ...
- Stackoverflow 最受关注的 10 个 Java 问题
Stack Overflow 是一个大型的编程知识库.在 Stack Overflow 中已经有数以百万计的问题,并且很多答案有着很高的质量.这就是为什么 Stack Overflow 的答案经常位于 ...
- 「CodeChef Dec13 REALSET」 Petya and Sequence 循环卷积
题目大意: 传送门 T组询问. 每组给一个数组,询问该数组是否循环移位线性无关,输出YES或NO. 题解: LCA冬令营有讲……然而当时…… 并不知道如何计算一个数组是否循环移位线性无关……网上也没有 ...
- 常用典型的sql语句
1.两张表,怎么把一张表中的数据插入到另一张表中? 1,insert into table_a select * from table_b 2,insert into table_a(field_a1 ...
- 对抗明文口令泄露 —— Web 前端慢 Hash
(更新:https://www.cnblogs.com/index-html/p/frontend_kdf.html ) 0x00 前言 天下武功,唯快不破.但在密码学中则不同.算法越快,越容易破. ...
- 【JVM虚拟机】(7)---深入理解Class中-属性集合
#[JVM虚拟机](7)---深入理解Class中-属性集合 之前有关class文件已经写了两篇博客: 1.[JVM虚拟机](5)---深入理解JVM-Class中常量池 2.[JVM虚拟机](6)- ...
- 从git仓库导入idea的gradle项目无法添加依赖包问题
引言 之前将项目导入到git仓库,后来同事从git仓库将项目导入到本地,发现无法导入依赖包. 解决方法 这个勾idea是默认勾上的,意思是idea将默认使用本地离线工作模式,使用的是本地仓库,每次依赖 ...
- 【3y】从零单排学Redis【青铜】
前言 只有光头才能变强 最近在学Redis,我相信只要是接触过Java开发的都会听过Redis这么一个技术.面试也是非常高频的一个知识点,之前一直都是处于了解阶段.秋招过后这段时间是没有什么压力的,所 ...
