[转]SQLite内存数据库
http://www.cnblogs.com/liuyong/archive/2010/09/14/1826152.html
SQLite 介绍
一. SQLite 是实现了SQL 92标准的一个大子集的嵌入式数据库.其以在一个库中组合了数据库引擎和接口,能将所有数据存储于单个文件中而著名.我觉得SQLite的功能一定程度上居于MySQL 和PostgreSQL之间.尽管如此,在性能上面,SQLite常常快2-3倍 (甚至更多).这利益于其高度调整了的内部架构,因为它除去了服务器端到客户端和客户端到服务器端的通信。
二. 而令人印象深刻的特点是你可将你的整个数据库系统放在其中.利用非常高效的内存组织,SQLite只需在很小的内存中维护其很小的尺寸,远远比其它任何数据库系统都小.这些特点使得其成为在需要高效地应用数据库的任务中一个非常方便的工具.
SQLite 优势
一 . 除了速度和效率,SQLite还有其它好多的优势使得其能成为许多任务中一个理想的解决方案.因为SQLite的数据库都是简单文件,因此无须一个管理队伍花时间来构造复杂的权限结构来保护用户的数据库.因为权限通过文件系统自动进行.这也同时意味着(数据库空间的大小只与环境有关,与本身无关)无段特殊的规则来了解用户磁盘空间.用户可以从创建他们想要的任意多的数据库和对其对这些数据库的绝对控制权而得到好处.
二 . 数据库就是一个文件的事实使用SQLite可以轻易地在服务器间移动.SQLite也除去了需要大量内存和其它系统资源的伺候进程.即使当数据库在大量地使用时也是如此.
创建内存数据库
1.由于业务的需要,我使用SQLite 内存数据库制作一个缓存,IIS 停止内存数据库的数据全部丢失,不知道SQLite 是否可以做分布式的内存数据管理。
2.添加using System.Data.SQLite 引用,程序集请到这里http://sqlite.phxsoftware.com/ 下载
3.创建内存数据库 , Data Source=:memory:;Version=3; 这个连接字符串折腾了很久, 当然这里也可以使用文件来存储数据,只需要修改 Data Source=:memory: 为 Data Source= Cache.db 就ok !当然这个表需要在Global 里面创建
conn.Open();
IDbCommand dbcmd = conn.CreateCommand();
//创建内存表
string sql = "CREATE TABLE [AvTable] ( [ID] INTEGER PRIMARY KEY NOT NULL,[CityPair] VARCHAR(6) NULL,[FlightNo] VARCHAR(50) NULL,[FlightDate] VARCHAR(10) NULL,[CacheTime] VARCHAR(2000) NULL,[AVNote] VARCHAR(2000) NULL)";
dbcmd.CommandText = sql;
dbcmd.Connection = conn;
dbcmd.ExecuteNonQuery();
SQLiteConn = conn;
全局属性,打开数据库连接后创建好表后赋值给这个属性,以后操作数据一致使用这个连接。
使用SQL 语句操作表如下, sql 是代表sql 语句
IDbCommand dbcmd = MemoryDatabse.SQLiteConn.CreateCommand();
dbcmd.CommandText = sql;
dbcmd.Connection = MemoryDatabse.SQLiteConn;
int count = dbcmd.ExecuteNonQuery();
string sql = "Update AVTable Set CityPair='" + av.CityPair + "',CacheTime='" + DateTime.Now.ToString() + "',AVNote='" + av.AVNote + "' Where FlightNo='" + av.FlightNo + "' And FlightDate='" + av.FlightDate + "'";
IDbCommand dbcmd = MemoryDatabse.SQLiteConn.CreateCommand();
dbcmd.CommandText = sql;
dbcmd.Connection = MemoryDatabse.SQLiteConn;
int count = dbcmd.ExecuteNonQuery();
SQLite 的查询语法 和 SQL SERVER 有一些区别 。
提取 avcache表 11-20 的数据 。
Select * From avcache Limit 9 Offset 10; 以上语句表示从avcache 表获取数据,跳过10行,取9行 。
另外一种写法, 从10 开始提取 提取9条数据 。
select * from avcache limit10,9
语法
sql = "select * from avcache where "+条件+" order by "+排序+" limit "+要显示多少条记录+" offset "+跳过多少条记录;
例子
select * from avcache limit 15 offset 20 意思是说: 从avcache 表跳过20条记录选出15条记录
由于最近工作需要开始学习SQLite ,写的难免有些粗糙的地方,希望大家指正,提供更好的方法!
转载于:https://www.cnblogs.com/yelaiju/archive/2010/10/19/1855873.html
[转]SQLite内存数据库相关推荐
- ASP.NET Core 集成测试中结合 WebApplicationFactory 使用 SQLite 内存数据库
SQLite 内存数据库(in-memory database)的连接字符串是 Data Source=:memory: ,它的特点是数据库连接一关闭,数据库就会被删除.而使用 services. ...
- Qt Sqlite内存数据库和文件数据库交互
基础概念: 1.内存数据库标识":memory:": 2.[]中内容表示可选: 3.采用QSqlDatabase实现Sqlite的内存数据库和文件数据库交互. 一.将文件数据库加载 ...
- SQLite+python
文章目录 SQLite 嵌入式数据库引擎 SQLite 支持的使用场景 灵活的数据类型 数据库操作 连接数据库 创建表 插入数据 删除数据 查询数据 数据库函数 排序 筛选 统计 其他操作 行对象 批 ...
- 【牛角书】什么时候使用SQLite?SQLite的优缺点分析
一.SQLite简介 SQLite 是一个功能强大的嵌入式关系数据库管理系统,采用紧凑的C库,由 D. Richard Hipp开发.它提供对 SQL92 的一个大子集.多个表和索引.事务.视图.触发 ...
- SQLite的使用场景
上次针对SQLite进行了扫盲,之后有同学在评论里问俺:如何在项目中使用它?今天咱来聊一下这个话题. ★如何权衡? 当你在权衡某个场合是否应该使用SQLite时,(在技术层面)至少要考虑如下几点: ◇ ...
- Sqlite大批量导入数据提高效率的几种方式
前言 SQLite数据库由于其简单.灵活.轻量.开源,已经被越来越多的被应用到中小型应用中.甚至有人说,SQLite完全可以用来取代c语言中的文件读写操作.因此我最近编写有关遥感数据处理的程序的时候, ...
- Sqlite进阶之--附加数据库关联查询以及Pragma的相关使用
数据库连接 基本的 Data Source=c:\mydb.db;Version=3; 此类库不支持版本 2. 内存数据库 Data Source=:memory:;Version=3;New=Tru ...
- java redirect 跨域_碰到了跨域问题, Redirect is not allowed for a preflight request
liubx: 后端配置: @Configuration public class CorsConfigure implements WebMvcConfigurer { @Override publi ...
- Abp v0.18.0 新版本: MVC Module 启动模板
0.18.0将于近期发布, 本文内容针对于0.18.0版本. MVC模块启动模板 可用此模板开发基于模块开发最佳实践和约定的可复用 应用程序模块 . 它同样适用于开发微服务. 如何开始? 你可以使用A ...
- 基于Domain Driven Design&Clean Architecture原则分层的新启动模板
本文的内容将在0.18.0中发布. Abp中文网将同步更新框架.敬请期待... MVC应用程序启动模板 介绍 MVC应用程序启动模板是基于领域驱动设计(DDD)分层(或根据偏好分层)的应用程序结构. ...
最新文章
- CI 如何获取get请求过来的数据
- 网工路由基础(1)静态路由
- 患者是否应该主动关注医疗知识
- P1319 压缩技术(python3实现)
- python array函数_Python bytearray() 函数
- css元素居中实现方法
- 运行 ROS-Academy-for-Beginners
- java出栈序列合法性_pat--7-11 出栈序列的合法性(25 分)
- linux 下配置邮件发送功能
- 智能机器人助力智慧城市建设
- html动画如何延迟,css3animation延迟
- 论文阅读: Inertia Tensor Properties in Robot Dynamics Identification: A Linear Matrix Inequality Approac
- 小驼峰大驼峰的写法规范
- office2016首要事项
- 中国大学Mooc浙大翁恺老师《零基础学Java语言》编程作业
- 一位 70 后程序员的 24 个职场感悟
- 2018-2019-2 网络对抗技 20165328 Exp7: 网络欺诈防范
- 通过EFI安装Ubantu+Win7双系统教程
- 好东西下载Download
- matlab纹理柱状图程序
热门文章
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_06-freemarker基础-遍历map数据...
- 小战Java笔记_SE_Identifier(标识符)
- flask使用配置文件
- 十九、CSS如何引入字体
- dockerfile_nginx+PHP+mongo数据库_完美搭建
- ShellExecute的各种用法 [转帖于 2009-05-020 21:15]
- java什么是构造方法
- maven没有servlet(创建servlet后报错)
- java字符串类型和时间类型的转换
- Appium+python自动化(十一)- 元素定位秘籍助你打通任督二脉 - 下卷(超详解)...