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/
功能非常强大, 如果上述两款不能满足, 就试试这个吧, 当然也可以自己试着做一个, 也没有那么难.
来源: https://www.cnblogs.com/ZaraNet/p/10188893.html