How to do IF NOT EXISTS in SQLite】的更多相关文章

http://stackoverflow.com/questions/531035/how-to-do-if-not-exists-in-sqlite How about this? INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES 'ANI Received' (Untested as I don't have SQLite... however this link is quite descriptive.) Additionall…
Option 1: You can afford deleting the row In other words, you don't have foreign key, or if you have them, your SQLite engine is configured so that there no are integrity exceptions. The way to go is INSERT OR REPLACE. If you are trying to insert/upd…
引子: 1. Sqlite在Windows.Linux 和 Mac OS X 上的安装过程 2.嵌入式数据库的安装.建库.建表.更新表结构以及数据导入导出等等具体过程记录 个字段IPHONE和LOGIN_DATE,例如以下所看到的: DROP TABLE IF EXISTS COMPANY; CREATE TABLE COMPANY( ID INT NOT NULL, NAME VARCHAR(20), AGE INT, ADDRESS VARCHAR(20), SALARY DECIMAL(7…
目录 SQLite子句(二) 1. GROUP BY子句 2. HAVING子句 3. LIMIT 子句 4. IF EXISTS 和 IF NOT EXISTS 子句 SQLite子句(二) 1. GROUP BY子句 GROUP BY子句与SELECT语句一起使用,对数据进行分组. 位置:放在WHERE子句后,放在ORDER BY子句之前. -- 语法 SELECT * FROM table_name WHERE [condition] GROUP BY column1,, column2,…
话不多说先来看看表结构: 显而易见 Pid 存放的 Person 的 id :下面重点(奇葩需求!!!!) 我需要向表一(Person)里插入几条数据(...)这时候不会对表二做任何操作. 需求:查询表一(Person)条件是表二(Person_Visison)里有没有表一(Person)的 id 如果有则不返回 结果集,没有则返回. 上代码:                       (注:这是我封好的js主要看SQL语句) select('SELECT * FROM Person WHER…
INSERT or replace INTO [main].[RecordInfo]([WorkID],[bArtificialAttendance],[fThreshold],[Attendance_Time],[PicPath]) ' AND [Attendance_Time] = '2015-11-25 11:59:08.000');…
一.SQLite保存数据介绍 将数据库保存在数据库对于重复或者结构化数据(比如契约信息)而言是理想之选.SQL数据库的主要原则之一是架构:数据库如何组织正式声明.架构体现于用于创建数据库的SQL语句.它有助于创建伴随类,即契约类,其以一种系统性.自记录的方式明确指定架构布局. 契约类是用于定义URL.表格和列名称的常数的容器.契约类允许跨同一软件包中的所有其他类使用相同的常数.可以在一个位置更改列名称并使其在整个代码中传播.组织契约类的一种良好方法是将对于整个数据库而言是全局性的定义放入类的根级…
在mono for android中使用dapper或petapoco,很简单,新建android 类库项目,直接把原来的文件复制过来,对Connection连接报错部分进行注释和修改就可以运行了.(用可移植类库PCL项目也可以的.) 如果需要源码可以联系我.10元收费哈.. 以下内容包括 1.在安卓中创建sqlite数据库; 2.检查数据库是否存在; 3.返回数据库路径; 4.插入数据(前置知识,dapper的使用方法或petapoco的); 5.查询数据; 本人小菜鸟一枚,以下代码写得很烂,…
本示例代码的关键是利用.net库自带的DbProviderFactory来生产数据库操作对象. 从下图中,可以看到其的多个核心方法,这些方法将在我们的超级DBHelper中使用. 仔细研究,你会发现每个数据库的官方支持dll都有一个Instance对象,这个对象都是继承了DbProviderFactory了. 因此利用这点,我们就可以实现兼容多种数据的超级DBHelper了. 以下为示例代码,仅供参考学习,代码只是我的ORM框架中的一个片段(其中暂时支持了SQLSERVER.MySQL.SQLI…
问题 我们在生产环境中使用SQLite时中发现建表报“table xxx already exists”错误,但DB文件中并没有该表.后面才发现这个是SQLite在实现过程中的一个bug,而这个bug与数据字典的一致性相关,下面这篇文章主要讨论SQLite的缓存机制,以及缓存一致性实现的策略,希望对大家了解SQLite缓存机制有一定的帮助. 缓存 SQLite中缓存主要包括两方面,数据字典缓存和数据页缓存.SQLite本身是一个文件数据库,所有的数据都在一个DB文件中,文件以块(page)的形式…
创建数据库语句 -(void)creatData { sqlite3 *sqlite = nil; NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/data.file" ]; //打开数据库 int result  = sqlite3_open([filePath  UTF8String], &sqlite); if (result !=SQLITE_OK) {…
之前我们讲了如何将数据存储在文件中,那么除了这种方式呢,就是我们常见的大家都知道的将数据存储在数据库当中了. 将数据存储在数据库中的优势: 1)存储在数据库中的数据更加方便操作,比如增.删.改.查等 2)可以实现事务的回滚,比如银行转账等 3)方便维护,可读性高 4)资源占用少,性能高 5)-- SQLite数据库在我们日常生活中随处不见了,比如我们的手机~现在市场上的手机都是用SQLite数据库作为数据的存储的. 以及我们常看见的智能家居,也是用SQLite数据库去记录数据的.以及我们经常用到…
关于CoreData和SQLite多线程访问时的线程安全问题 数据库读取操作一般都是多线程访问的.在对数据进行读取时,我们要保证其当前状态不能被修改,即读取时加锁,否则就会出现数据错误混乱.IOS中常用的两种数据持久化存储方式:CoreData和SQLite,两者都需要设置线程安全,在这里以FMDB来解释对SQLite的线程安全访问. 一:FMDB的线程安全:(以读取图片为例) 1.没有线程安全的执行方式: //************** 数据库保存图片 ******************/…
前言: 之前学习了数据存储的NSUserDefaults,归档和解档,沙盒文件存储,但是对于数据量比较大,需要频繁查询,删除,更新等操作的时候无论从效率上还是性能上,上述三种明显不能满足我们的日常开发需要了.这个时候我们必须借助数据库,做为Android开发的都知道采用的是一种轻量级数据库Sqlite.其实它广泛用于包括浏览器.IOS,Android以及一些便携需求的小型web应用系统.它具备占用资源低,处理速度快等优点.接下来我们具体认识一下. 我们在项目开发中需要引入libsqlite3.d…
对于iOS工程师有一道常考的面试题,即iOS数据存储的方式 标答如下: Plist(NSArray\NSDictionary) Preference (偏好设置\NSUserDefaults) NSCoding(NSKeyed Archiver\NSkeyedUnarchiver) SQLite3 Core Data 今天就跟大家分享一下,SQLite3的基础知识 什么是SQLite SQLite 是一款轻型的嵌入式关系型数据库, 它速度要强于Mysql,PostgreSQL,而且占用资源少,在…
在SQLite中,主要有两种表类型,带rowid的表和不带rowid的表.我们利用create table 建一张表,默认都会有一个隐含名字为rowid的主键,暂且称带rowid的表为普通表.如果建表时指定 WITHOUT ROWID属性,那么建的表就是不带rowid的表.那么这两种表有什么区别?这篇文章主要讨论这两种表的存储实现,以及它们的优缺点和适用的应用场景. 1.rowid是什么? SQLite中rowid是一个隐身存储的列,8个字节存储,它有两个别名 _ROWID_ 和 OID,类型定…
Android自带sqlite数据库,因此常见操作应该都掌握.包括数据库的创建/升级以及增删改查. 1.创建数据库 public class MyDatabaseHelper extends SQLiteOpenHelper { public static final String CREATE_BOOK = "create table book (" + "id integer primary key autoincrement, " + "author…
部分来源于网络 SQLite 删除重复行 需求:现存在一张表tender_to_detailedlist,然后里面的列tender_id和detailedlist_id具有相同的数据且不确定相同数据的数量,现需要删除里面的重复数据(如果有两条就任意删除一条),具体语句如下: delete from tender_to_detailedlist where rowid not in( select min(rowid) from tender_to_detailedlist group by te…
前言 事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复等等.在数据库中使用事务可以保证数据的统一和完整性,同时也可以提高效率.假设需要在一张表内一次插入20个人的名字才算是操作成功,那么在不使用事务的情况下,如果插入过程中出现异常或者在插入过程中出现一些其他数据库操作的话,就很有可能影响了操作的完整性.所以事务可以很好地解决这样的情况,首先事务是可以把启动事务过程中的所有操作视为事务的过程.等到所有过程执行完毕后,我们可以根据操作是否成功来决定事务是否进行提…
前言 使用过程根据函数大致分为如下几个过程: sqlite3_open() sqlite3_prepare() sqlite3_step() sqlite3_column() sqlite3_finalize() sqlite3_close() 这几个过程是概念上的说法,而不完全是程序运行的过程,如sqlite3_column()表示的是对查询获得一行里面的数据的列的各个操作统称,实际上在sqlite中并不存在这个函数. 1.sqlite3_open() 该函数用来打开数据库.在操作数据库之前,…
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SQLite; using System.Data.Common; using System.IO; namespace Sqlite…
SQLite的应用 一.简单说明 1.在iOS中使用SQLite3,首先要添加库文件 libsqlite3.dylib 2.导入主头文件 #import <sqlite3.h> 二.具体说明 1.sqlite3_open (1)作用:把一个文件名称传递给他,它会自动检测这个文件是否存在,如果不存在的话,会自动创建相应的文件(这里为数据库文件,刚创建为空). (2)参数:它的第一个参数为文件的名称(需转换为C语言的),第二个参数是数据库的实例,sqlite3 *db:  说明:sqlite3是一…
一.SQL语句 如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句 1.什么是SQL SQL(structured query language):结构化查询语言 SQL 是一种对关系型数据库中的数据进行定义和操作的语言 SQL语言简洁,语法简单,好学好用 2.什么是SQL语句 使用SQL语言编写出来的句子\代码,就是SQL语句 在程序运行过程中,要想操作(增删改查,CRUD)数据库中的数据,必须使用SQL语句 3.SQL语句的特点 不区分大小写(比如数据库认为user和UsEr…
本文转载自http://blog.sina.com.cn/s/blog_641cf27f01016pm5.html 按照国内一HTML5先行者的例子仿写了一个用HTML5 API来操作本地SQLite数据库的例子,感觉这个功能蛮好玩的,但是还不够强大,尤其浏览器支持力度不够:HTML代码:1. <!DOCTYPE html>2. <head>3. <meta charset="UTF-8">4. <title>使用HTML5本地数据库DE…
SQLite 的官网 http://addons.mozillan.org/firefox/addon/sqlite-manager/ http://www.sqlite.org sqlite3 *sqlite = nil; NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/data.file" ]; //打开数据库 int result  = sqlite3_open(…
1. sqlite是轻量型.关系型管理系统,是嵌入式的,占用资源低.可移植性强,比mySql处理速度快,现在主流的版本是sqlite3 2. sqlite中的数据类型有TEXT(字符串,采用UTF-8,UTF-16编码).(REAL)浮点型.(INTEGER)有符号的整型.(BLOB)大二进制数据,能存放任何二进制数据.还有其他几个不常用的( (VARCHAR.CHAR.CLOB)会转化成TEXT的类型    (FLOAT DOUBLE)转化成REAL类型   (NUMERIC)转化成INTEG…
1.最近研究了下利用SQLite为db文件简单的加密和解密 private static SQLiteConnection GetConnection() { SQLiteConnection conn; ].Value; string dbFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), ConfigCode.CLIENT_DATA_PATH); str…
1.SQLite 数据库 SQLite 是一种轻型的嵌入式数据库,安卓和 iOS 开发使用的都是 SQLite 数据库.它占用资源非常低,在嵌入式设备中,可能需要几百 K 的内存数据就够了.他的处理速度比 Mysql.PostgreSQL 这两款著名的数据库都要快.数据库的存储和 Excel 很像,以表(table)为单位.表由多个字段(列.属性.column)组成,表里面的每一行数据称为记录.数据库操作包含打开数据库.创建表,表的增.删.改.查. SQL(Structured Query La…
一鼓作气,今天继续学习了sqlite数据库在Xcode上的一些操作,主要是通过用oc代码进行salite表格的创建,删除,修改:以及对现有的表格数据进行增,删,改,查.虽然有点累,但是收获不小,感觉很充实,继续加油! //把数据库sqlite3导入到工程(在Bulider Phrase 中的Linker中点击➕号,查找sqlite3文件,选择再添加即可) //打开数据库 //提供C的字符串,c串时我们要打开数据库的完整路径和文件名 NSString *path=NSHomeDirectory()…
Android开发涉及到的数据库采用的是轻量级的SQLite3,而在实际开发中,在存储一些简单的数据,使用SharedPreferences就足够了,只有在存储数据结构稍微复杂的时候,才会使用数据库来存储.而数据库表的设计往往不是一开始就非常完美,可能在应用版本开发迭代中,表的结构也需要调整,这时候就涉及到数据库升级的问题了. 数据库升级 数据库升级,主要有以下这几种情况: 增加表 删除表 修改表  增加表字段 删除表字段 增加表和删除表问题不大,因为它们都没有涉及到数据的迁移问题,增加表只是在…