SQLite使用入门

什么是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();
        }
    }
}
时间: 2024-12-18 06:37:43

SQLite使用入门的相关文章

php读取sqlite数据库入门实例

php读取sqlite数据库的例子,php编程中操作sqlite入门实例.原文参考:http://www.jbxue.com/article/php/22383.html在使用SQLite前,要确保php.ini中已经启用sqlite和pdo配置 打开PHP.INI文件,打下以下扩展:extension=php_pdo.dll extension=php_pdo_sqlite.dllextension=php_sqlite.dllsqlite_open命令是打开一个数据库文件. 如果没有文件则创

SQlite数据库入门

要学好SQLite,首先要先了解他的优缺点,可以干什么,才更有兴趣学下去,网络上翻了一下资料大概了解到(随便翻的资料,自己总结,可能有错误的地方) 1-他是一个轻量级的,貌似只要带上一个动态库,就可以用sql的大多数命令来操作一个数据(库),而不用安装复杂如oracle之类的服务器端和客户端,动态库的大小好像是487k; 2-免安装,绿色~带上她的动态库,即可完成数据库的功能(貌似跟access的mdb查不多??); 3-单一文件,所有数据和格式都包含在一个文件中,我们不用去管他到底里面复杂得怎

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

前言 近几天的几篇文章讲的内容非前面内容如系列的讲解,这几天文章都是我在项目中遇到的问题以及重新学习的知识,所以和大家分享一下,关于SQLite的文章多如牛毛,但是有些大多已经过时,为什么说过时,之前都是在SQLite官网中下载dll或者exe来实现,现如今我们可以直接安装SQLite程序包,又方便了我们,同时作者对于SQLite也没用过,这也是项目需要才去学习SQLite的使用,欢迎和大家一起探讨. 安装SQLite 通过NUGet来安装SQlite程序包,如下: 此时自然而然在包中会有如下S

SQLite简易入门

本文内容来源:https://www.dataquest.io/mission/129/introduction-to-sql 本文所用数据来源:https://github.com/fivethirtyeight/data/tree/master/college-names 摘要:主要简介了SQLite的一些简易操作(增删改查) 原始数据展示(数据库facts存储了如下的这张表,主要字段描述: code - 国家代码,name - 国家名称, area - 国土面积, created_at -

Android SQLite快速入门教程

SQLite是Android平台软件开发中会经常用到的数据库产品,作为一款轻型数据库,SQLite的设计目标就是是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够.下面我们一起来看看针对Android平台的SQlite 3的使用. 以下概念都是在Android平台的SQlite限制下的理解:  数据库基础概念 SQlite 通过文件来保存数据库,一个文件就是一个数据库. 数据库里又包含数个表格: 每个表格里面包含了多个记录: 每个记

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

Sqlite不需要安装即可使用.Sqlite是不是那个System.Data.SQLite.DLL临时创建了数据库引擎? 1.新建一个WinForm项目,引用System.Data.SQLite.DLL.界面如下1.1  SQLiteConnection.CreateFile("D:/Data.db3");这样就可以创建一个数据库文件,名称随意.封装成一个函数 //创建一个数据库文件,保存在当前目录下HyData文件夹下 //CreateDB("HyData.db3"

SQLite XXTea加密学习

这几天优化数据库读写,移植了xxtea加密到最新的数据库sqlite 3.12.2里,一些好文章放在这里.移植后,数据库读写性能异常优秀! 这几天又发现,数据库还是发生了无法写入情况,数据库崩溃掉了.所以,估计想兼容以前数据库是很困难的了.. 十分推荐他的博客:SQLite学习笔记(十)&&加密    Sqlite学习笔记(一)&&编译安装 sqlite3.6.18加密模块change(讨论) sqlite3 加解密 SQLITE3 加密总结 sqlite3+使用总结 SQ

Android-adb 常用命令 和 sqlite

Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB概述 Android Debug Bridge,Android调试桥接器,简称adb,是用于管理模拟器或真机状态的万能工具,采用了客户端-服务器模型,包括三个部分: 1.客户端部分,运行在开发用的电脑上,可以在命令行中运行adb命令来调用该客户端,像ADB插件和DDMS这样的Android工具也可以调用adb客户端. 2.服务端部分,是运行在开发用电脑上的后

SQLite 使用教程2 语法

http://www.runoob.com/sqlite/sqlite-syntax.html SQLite 语法 SQLite 是遵循一套独特的称为语法的规则和准则.本教程列出了所有基本的 SQLite 语法,向您提供了一个 SQLite 快速入门. 大小写敏感性 有个重要的点值得注意,SQLite 是不区分大小写的,但也有一些命令是大小写敏感的,比如 GLOB 和 glob 在 SQLite 的语句中有不同的含义. 注释 SQLite 注释是附加的注释,可以在 SQLite 代码中添加注释以