什么是SQLite

SQLite是一款非常轻量级的关系数据库系统,支持多数SQL92标准。SQLite在使用前不需要安装设置,不需要进程来启动、停止或配置,而其他大多数SQL数据库引擎是作为一个单独的服务器进程,被程序使用某种内部进程通信(典型的是TCP/IP),完成发送请求到服务器和接收查询结果的工作,SQLite不采用这种工作方式。使用SQLite时,访问数据库的程序直接从磁盘上的数据库文件读写,没有中间的服务器进程。使用SQLite一般只需要带上一个dll,就可以使用它的全部功能。

SQLite的主要应用场景有作为手机应用的数据库以及小型桌面软件的数据库。

安装使用SQLite

  sqlite的官方下载地址为http://www.sqlite.org/download.html,上面提供了多种版本的sqlite,我选择下载名称为sqlite-shell-win32-x86-3080500.zip 的版本。下载后就直接解压到磁盘上,可以看到解压后只有sqlite3.exe这个文件。

接下来需要将sqlite加入到path环境变量中(加入环境变量是为了更加方便地使用sqlite),右键我的电脑-属性-高级系统设置-环境变量,在系统变量中找到Path,将解压的文件夹目录加入到后面(注意是文件夹目录,例如我本机的目录 E:\Tools\sqlite)。打开cmd,输入sqlite3,如果弹出以下消息,就表示成功了。

sqlite常用操作

1. 新建一个数据库文件

>命令行进入到要创建db文件的文件夹位置

>使用命令创建数据库文件: sqlite3 所要创建的db文件名称

>使用命令查看已附加的数据库文件: .databases

2. 打开已建立的数据库文件

>命令行进入到要打开的db文件的文件夹位置

>使用命令行打开已建立的db文件: sqlite3 文件名称(注意:假如文件名称不存在,则会新建一个新的db文件)

3. 查看帮助命令

>命令行直接输入sqlite3,进去到sqlite3命令行界面

>输入.help 查看常用命令

使用sqlite管理工具

shell脚本虽然提供了很强大的功能,但是使用起来还是不够方便,幸运的是,sqlite有很多开源而且优秀的DBMS!

这里我将使用一款叫做SQLiteSPY的软件,官网地址为http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index,这个软件是绿色免安装版,解压直接运行就可以了。

可以看到,SQLiteSpy的界面布局和SQLServer很相近,操作起来很方便,这里就不在继续详细介绍了。(要知道的一点就是单纯使用这个软件也可以创建和使用sqlite数据库,不需要与上面提到的shell工具关联)

C#使用System.Data.SQLite.dll访问数据库

SQLite提供了用于C#调用的dll,下载地址为http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki,注意根据.NET FRAMEWORK版本下载对应的组件。在项目中只要引入System.Data.SQLite.dll这个组件,就可以实现数据库操作了。由于SQLite.dll实现了ADO.NET的接口,所以熟悉ADO.NET的人上手SQLite.dll也是非常快的。DEMO数据库表的结构为:

CREATE TABLE hero
(
hero_id INT NOT NULL PRIMARY KEY,
hero_name NVARCHAR(10) NOT NULL
);

比较需要注意到一点是数据库连接字符串,SQLite使用的连接字符串比较简单,只要写上数据库文件的引用路径就可以了。DEMO是一个控制台应用程序,增删查改的实例代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Common;
using System.Data.SQLite; namespace ConsoleApp
{
class Program
{
static readonly string DB_PATH = "Data Source=E:/database/sqlite/arena.db"; static void Select()
{
using (SQLiteConnection con = new SQLiteConnection(DB_PATH))
{
con.Open();
string sqlStr = @"SELECT *
FROM hero";
using(SQLiteCommand cmd = new SQLiteCommand(sqlStr,con))
{
using (SQLiteDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
Console.WriteLine(dr["hero_id"].ToString() + dr["hero_name"]);
}
}
}
}
} static void Insert()
{
using (SQLiteConnection con = new SQLiteConnection(DB_PATH))
{
con.Open();
string sqlStr = @"INSERT INTO hero
VALUES
(
1,
'萨满'
)";
using(SQLiteCommand cmd = new SQLiteCommand(sqlStr,con))
{
cmd.ExecuteNonQuery();
}
}
} static void Update()
{
using (SQLiteConnection con = new SQLiteConnection(DB_PATH))
{
con.Open();
string sqlStr = @"UPDATE hero
SET hero_name = '盗贼'
WHERE hero_id = 1";
using (SQLiteCommand cmd = new SQLiteCommand(sqlStr, con))
{
cmd.ExecuteNonQuery();
}
}
} static void Delete()
{
using (SQLiteConnection con = new SQLiteConnection(DB_PATH))
{
con.Open();
string sqlStr = @"DELETE FROM hero";
using (SQLiteCommand cmd = new SQLiteCommand(sqlStr, con))
{
cmd.ExecuteNonQuery();
}
}
} static void Main(string[] args)
{
Insert();
Select();
Update();
Select();
Delete();
}
}
}

SQLite使用入门的更多相关文章

  1. SQLite数据库入门教程

    SQLite数据库入门教程 SQLite 是一个开源的嵌入式关系数据库,实现自包容.零配置.支持事务的SQL数据库引擎. 其特点是高度便携.使用方便.结构紧凑.高效.可靠. 与其他数据库管理系统不同, ...

  2. [数据库]Sqlite使用入门

    官网的文档结构十分恶劣,大概翻了一下,提供入门指引. 0. sqlite的安装 根据自身情况,在官网下载32位/64位的dll文件以及sqlite-tools-win32-x86-3240000.zi ...

  3. php读取sqlite数据库入门实例

    php读取sqlite数据库的例子,php编程中操作sqlite入门实例.原文参考:http://www.jbxue.com/article/php/22383.html在使用SQLite前,要确保p ...

  4. NuGet程序包安装SQLite后完全抽离出SQLite之入门介绍及注意事项,你真的懂了吗?

    前言 近几天的几篇文章讲的内容非前面内容如系列的讲解,这几天文章都是我在项目中遇到的问题以及重新学习的知识,所以和大家分享一下,关于SQLite的文章多如牛毛,但是有些大多已经过时,为什么说过时,之前 ...

  5. Android Sqlite 实例入门

    通过一个简单的例子来学习Sqlite,学生选课系统,一开始的需求是学生可以选课,选课完成后可以查询到已经选择的课. 首先设计三个表,学生,课程,选课.学生表存储学生的信息,课程表存储课程的信息,选课表 ...

  6. SQLite简易入门

    本文内容来源:https://www.dataquest.io/mission/129/introduction-to-sql 本文所用数据来源:https://github.com/fivethir ...

  7. C#操作Sqlite快速入门及相关工具收集

    Sqlite不需要安装即可使用.Sqlite是不是那个System.Data.SQLite.DLL临时创建了数据库引擎? 1.新建一个WinForm项目,引用System.Data.SQLite.DL ...

  8. SQLite XXTea加密学习

    这几天优化数据库读写,移植了xxtea加密到最新的数据库sqlite 3.12.2里,一些好文章放在这里.移植后,数据库读写性能异常优秀! 这几天又发现,数据库还是发生了无法写入情况,数据库崩溃掉了. ...

  9. SQLite遇到的关于x64、x86问题

    初次使用SQLite遇到了莫名其妙的问题: 未能加载文件或程序集“System.Data.SQLite, Version=1.0.92.0, Culture=neutral, PublicKeyTok ...

随机推荐

  1. Django 必会面试题总结

    1 列举Http请求中常见的请求方式 HTTP请求的方法: HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式   注意: 1)方法名称是 ...

  2. SessionCacheTest03.testLoad Unrooted Tests initializationError

    这个错误主要是没有加载@Test这个标签,就是把其转化为一个juit测试的类.增加之后就没有问题了,当然还有很多人说是自己的Juit的版本问题,那就改下版本,还有说是没有加载两个类包,为了完整我就把包 ...

  3. Spring 配置 事务的几种方式

    Spring配置文件中关于事务配置总是由三个组成部分,DataSource.TransactionManager和代理机制这三部分,无论是那种配置方法,一般变化的只是代理机制这块! 首先我创建了两个类 ...

  4. 我的成长比价系列:java web开发过程中遇到的错误一:sql语句换行错误

    字符串换行导致的错误,确切的说是马虎的错误,自己在编写简单的servlet项目时,在StudentDao.java 中的  查询语句:String  sql= "SELECT Type,fl ...

  5. Android-Java卖票案例-推荐此方式Runnable

    上一篇博客 Android-卖票案例static-不推荐此方式,讲解了卖票案例是 private static int ticket = 10;,static静态的这种方式来解决卖票多卖30张的问题, ...

  6. Docker load与Docker import

    docker load与docker import   首先,想要清楚的了解docker load与docker import命令的区别,就必须了解镜像与容器的区别: 镜像:用来启动容器的只读模板,是 ...

  7. 检测Linux服务器端口是否开通

    现如今云服务器已经是大势所趋,国内比较著名的云服务器厂商有阿里.腾讯,国外有aws,尽管有的公司目前为止还是使用的物理机,但是无论你是使用的云服务器还是物理机,在运行服务时都必不可少的需要监听到指定的 ...

  8. jQuery中的AJAX的使用

    1.运用ajax()方法,比其它如load().get().post()全局性函数它更多地关注实现过程中的细节:首先要了解其参数列表: url: 要求为String类型的参数,(默认为当前页地址)发送 ...

  9. Linux C++ - IP地址转换函数

    1. 函数用途:数字网络序本地序转换 适用类型:IP地址uint32_t类型.端口号uint16_t类型 #include<netinet/in.h> extern uint32_t nt ...

  10. LinkServer--访问远程数据表三种方式

    在TSQL中访问远程数据库有三种方式:1.OPENROWSET2.OPENDATASOURCE3.LinkServer 在使用openrowset/opendatasource前搜先要启用Ad Hoc ...