1.SQLite不支持关键字AUTO_INCREMENT 1)AUTO_INCREMENT不生效的问题 SQL语句: CREATE TABLE todo (     id INTEGER AUTO_INCREMENT,     title TEXT,     PRIMARY KEY (id) ); 问题描述:按照上述SQL语句创建表todo,用INSERT INTO todo (title) VALUES ('xxx')插入记录,但查询该记录后得到的id为NULL(即Python中的None)…
  SQLite 简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加. 这里是详细的答案: 从 SQLite 的 2.3.4 版本开始,如果你将一个表中的一个字段声明为 INTEGER PRIMARY KEY,那么无论你何时向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大值大 1 的整数:如果表为空,那么将被更换为 1.比如,假设你有这样的一张数据表: CREATE TABLE t1(            a INTE…
http://stackoverflow.com/questions/8519936/sqlite-autoincrement-primary-key-questions I'm not sure whether you're actually using SQLite according to the syntax of your example. If you are, you may be interested in SQLite FAQ #1: How do I create an AU…
按照正常的SQL语句,创建一个数据表,并设置主键是这样的语句: ), EventType )) 但使用这种办法,在SQLite中创建的的数据表,如果使用Insert语句插入记录,如下语句: INSERT INTO Sample VALUES(null, '2013-12-26', 'hello.txt', 'Remove') 那么在实际添加的记录中,主键EventId对应的值不是一个自增的整数,而是一个null值. 经查询得知,在SQLite数据库中,使用int数据类型无法将该主键设置为自增,只…
这篇文章主要介绍了SQLite3中自增主键相关知识总结,清零的方法.INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用等,需要的朋友可以参考下 一.SQLite清空表并将自增列归零 undefined SQL标准中有TRUNCATE TABLE语句,用来清空表的所有内容.但SQLite不支持这个语句.在SQLite中直接使用 DELETE FROM TableName 就可以了.对于大多数DBMS来说,用DELETE不如用TRUNCATE 速度快,因为TRUNC…
原文:http://www.cnblogs.com/peida/archive/2008/11/29/1343832.html Sqlite中INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用     在用sqlite设计表时,突然想到一个问题,就是我设计的表中,每个表都有一个自己的整形id值作为主键,其实可以不指定这么一个id值,sqlite内部本来就会为每个表加上一个 rowid,这个rowid可以当成一个隐含的字段使用,但是由sqlite引擎来维护的,在3…
根据mongodb官方文档介绍,如果在插入(insert)操作时,没有指定主键id,那么它会自动给插入行自动附上一个主键id.看起来不错,但是详细看看,就会发现这个id值有点复杂. 如下图: mongdb把这个id称为ObjectId. 所以,如果我们想创建跟mysql的那种自动递增的主键,应该怎么操作呢? 如下图,就是我们想实现的效果图: 创建自动递增主键 利用mogodb命令行 /*part 1: 创建计数器表*/ db.counters.insert({_id: "userid"…
虽然android提供了sql查询的封装方法,但是理解起来还是麻烦,所以我这里用sql语句来完成工作. 首先是建立一个类,继承SQLiteOpenHelper 这里面会建立一个数据库,并且初始化一个表.当然你可以建立多个数据库,等以后再自行建立表也可以 DatabaseHelper.java package com.kale.sql; import android.content.Context; import android.database.sqlite.SQLiteDatabase; im…
== 菜鸟级选手试验在EF6中使用Sqlite,零EF基础,少量Sqlite基础.经过断断续续的很长时间 - _ -! >>连接 1. 安装 使用目前最新版本EF6.1,Sqlite1.0.93.0.直接NuGet安装: 2. 配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <?xml version="1.0" encoding=&qu…
要使用索引对数据库的数据操作进行优化,那必须明确几个问题:1.什么是索引2.索引的原理3.索引的优缺点4.什么时候需要使用索引,如何使用围绕这几个问题,来探究索引在数据库操作中所起到的作用. 1.数据库索引简介 回忆一下小时候查字典的步骤,索引和字典目录的概念是一致的.字典目录可以让我们不用翻整本字典就找到我们需要的内容页数,然后翻到那一页就可以.索引也是一样,索引是对记录按照多个字段进行排序的一种展现.对表中的某个字段建立索引会创建另一种数据结构,其中保存着字段的值,每个值还包括指向与它相关记…
在进行多个表联合查询的时候,使用索引可以显著的提高速度,刚才用SQLite做了一下测试. 建立三个表: create table t1 (id integer primary key,num integer not null,word1 text not null,word2 text not null);create table t2 (id integer primary key,num integer not null,word1 text not null,word2 text not…
1.bitmap保存到SQLite 中 数据格式:Blob db.execSQL("Create table " + TABLE_NAME + "( _id INTEGER PRIMARY KEY AUTOINCREMENT,USER_AGE INTEGER,USER_NAME TEXT,BITMAP_VALUES BLOB );"); 2.bitmap 变为 Blob ContentValues values = new ContentValues(); fina…
1.bitmap保存到SQLite 中 数据格式: db.execSQL("Create table express ( _id INTEGER PRIMARY KEY AUTOINCREMENT,express_no varchar(100),express_name TEXT,express_img BLOB );"); 2.bitmap 变为 Blob ContentValues values = new ContentValues(); final ByteArrayOutpu…
出处: 网络 1)Sqlite不支持聚集索引,android默认需要一个_id字段,这保证了你插入的数据会按“_id”的整数顺序插入,这个integer类型的主键就会扮演和聚集索引一样的角色.所以不要再在对于声明为:INTEGER PRIMARY KEY的主键上创建索引. 2)很多对索引不熟悉的朋友在表中创建了索引,却发现没有生效,其实这大多数和我接下来讲的有关.对于where子句中出现的列要想索引生效,会有一些限制,这就和前导列有关.所谓前导列,就是在创建复合索引语句的第一列或者连续的多列.比…
在最近的项目中使用ActiveReports报表设计器设计一个报表模板时,遇到一个多级分类的难题:需要将某个部门所有销售及下属部门的销售金额汇总,因为下属级别的层次不确定,所以靠拼接子查询的方式显然是不能满足要求,经过一番实验,利用了CTE(Common Table Expression)很轻松解决了这个问题! 举例:有如下的部门表 以及员工表 如果想查询所有西北区的员工(包含西北.西安.兰州),如下图所示: 如何用CTE的方式实现呢? Talk is cheap. Show me the co…
一.查看版本信息: #sqlite3 -version 二.sqlite3常用命令 1.当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识: 2.输出帮助信息: sqlite>.help 3.查看数据库文件信息命令(注意命令前带字符'.'): sqlite>.database 4.退出sqlite终端命令: sqlite>.quit 或 sqlite>.exit 列出当前显示格式的配置:sqlite>.show 6.显示数…
1. 概述 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n).char(n).decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型. SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么.例如:可以在Int…
一.sqlite中不能使用日期进行相减,执行结果无效 例如:SELECT count(*) as cnt FROM DayBanalces WHERE (date(ofDay)- date('2013-04-26 00:00:00'))=0          × 正确:   SELECT count(*) as cnt FROM DayBanalces WHERE (date(ofDay) = date('2013-04-26 00:00:00')) 二.sqlite中 0 与0.0的差别 首先…
1.主要核心类,Sqlite编程要继承SQLiteOpenHelper import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class MySQLiteOpen…
1. 创建数据如果不往数据库里面添加任何的表,这个数据库等于没有建立,不会在硬盘上产生任何文件,如果数据库已经存在,则会打开这个数据库. 2. 如何通过sqlite3.dll与sqlite3.def生成sqlite3.lib文件LIB /DEF:sqlite3.def /machine:IX86 3. sqlite3_open打开一个数据库时,如果数据库不存在就会新生成一个数据库文件.如果接着执行其他查询语句就会失败,比如sqlite3_prepare,编程中出现明明指定了数据库而且里面也有数据…
<pre name="code" class="java">import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; /** * 默认就在数据库里创建4张表 * * */ public class DBOpen…
一切都是基于数据,而对数据的管理都离不开数据库.最近学到数据库的简单操作,所以写下这篇文章,总结一下学习到的知识.浅陋之处,多多见谅. 补充一下:一直弄不清SQL Server,Mysql ,以及Oracle的关系.SQL Server是微软的,因为微软系统的市场占有额,所以这款软件在市场上也占用很大份额,而Mysql是一款开源免费的数据库,我们知道关系型数据库最开始是IBM的一个实验室提出的理论,但是当时并没有被IBM公司重视,被Oracle的创始人劳伦斯·埃里森重视,发展壮大起来.但是Ora…
项目的Github地址:https://github.com/ggrcwxh/LastTime 采用基于git的多人协作开发模式 软件采用mvc设计模式,前端这么艺术的事我不太懂,交给斌豪同学去头疼了.第一轮先实现查询通话记录返回对应号码上一次的通话时间. 真机测试下的效果图:显示称呼和上一次通话距离现在的时间,单位小时 API接口: 首先需要创建一个LastTimeDatabaseHelper的对象来创建数据库,建议创建在mainActivity下,创建建议格式如下,传入参数为全局Contex…
在使用SQLite时,要注意:在SQLite中的Integer类型,对应在C#中需要使用long类型或者Int64 在使用SQLite时,要注意:在SQLite中存放的日期类型必须是如此:yyyy-MM-dd HH:mm:ss 不能加毫秒,而且只能用“-”间隔. 在使用SQLite时,要注意:在SQLite中存放的Bool类型只能使用数字,不能使用'true'或'false'否则无法转换到C#中.读取会出错.…
在資料庫的技術中,一個資料庫(Database)表示應用程式儲存與管理資料的單位,應用程式可能需要儲存很多不同的資料,例如一個購物網站的資 料庫,就需要儲存與管理會員.商品和訂單資料.每一種在資料庫中的資料稱為表格(Table),例如會員表格可以儲存所有的會員資料. SQLite 資料庫的架構也跟一般資料庫的概念類似,所以應用程式需要先建立好需要的資料庫與表格後,才可以執行儲存與管理資料的工作.建立表格是在Android應 用程式中,唯一需要使用SQL執行的工作.其它執行資料庫管理與查詢的工作,…
1.ListView介绍 解决大量的相似的数据显示问题 采用了MVC模式: M: model (数据模型) V:  view  (显示的视图) C: controller 控制器 入门案例: acitivity_main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools&…
SQLite中的SELECT子句使用别名 开发者可以使用AS关键字为指定的列名提供一个新的别名,其语法形式如下 SELECT column_name AS Alias [,…] 例如,下面的SQL语句为Name列设置了一个别名StudentName. SELECT id,Name AS StudentName FROM Students 运行程序,执行效果如图3.4所示.   图3.4  定义别名…
SQLite中SELECT基本形式 每个数据库通常都包含多个表,而每个表又包含多条数据.要获取数据库中的数据,就需要SQL语言提供的查询语句SELECT.本章将讲解和SELECT语句相关的内容,其中包括SELECT基本形式.表达式.连接.分组.排序和去重.获取子集.子查询以及联合查询等. 3.1  SELECT基本形式 本节将讲解SELECT语句的基本形式,其中包括基本完整形式.SELECT子句.FROM子句以及WHERE子句等 3.1.1  基本形式 以下是SELECT语法的基本完整形式: S…
一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字段的删除过程中需不需要对数据进行备份 ''' 二.路由基础 ''' # url中含有四个参数 # url(regex, view, kwargs=None, name=None) # 正则路径 视图函数地址 默认关键字参数(了解) 路由别名 # r'index' 只要请求中含有index都可以匹配成…
在sqlite中可以使用ALTER TABLE语法对表结构进行修改,从官方的文档说明中,语法如下图: 从图中可以看出,ALTER TABLE仅仅支持表名重命名,添加字段,却没有删除字段的方法.那么该如何实现,当然了首先search 一下,群众们给出的一个解决方案就是将数据备份到一张临时表,删除原始表,然后新建一张剔除了需要删除字段的表,将临时表 数据导入到新表中,然后将新表rename为原始表名.ok,就是这个思路,虽然导入导出很浪费时间,尤其实在包含大量数据及索 引的时候,尤其要注意.但是也没…