ALTER TABLE table-name ADD COLUMN column-name column-type
例如在student表中添加一列名为name,类型为varchar:
alter table student add column name varchar;
alter table student drop column name // 该行在SQlite中不能用,SQlite不支持drop
详见:SQlite在已创建的表中删除一列
ALTER TABLE table-name ADD COLUMN column-name column-type 例如在student表中添加一列名为name,类型为varchar:alter table student add column name varchar;
使用
SQLite
编程的快速介绍............................................................. 5
下载代码 .......................................................................... 5
创建
一个新数据库 .................................................................. 5
使用
SQLite
编写程序 .............................................................. 5
SQLite
适用的范围 ..................................................................... 7
SQLite
最佳试用场合................................................................ 7
哪些场合适合使用其他的关系型数据库管理系统(RDBMS) ............................... 9
SQLite
第三版总览(简介).............................................................. 10
命名上的变化 ..................................................................... 10
新的文件格式 ..................................................................... 10
弱类型和BLOB技术支持 ............................................................ 11
支持UTF-8和UTF-16............................................................... 11
用户定义的分类排序 ............................................................... 12
64字节的行编号................................................................... 12
改良的并发性 ..................................................................... 13
致谢 ............................................................................. 13
SQLite
第三版中的数据类型............................................................ 14
1.存储类别 ....................................................................... 14
2.
列
之间的亲和性 ................................................................. 14
3.比较表达式 ..................................................................... 16
4.运算符 ......................................................................... 17
5.分类,排序混合挑选 ........................................................... 17
6.其它亲和性模式 ................................................................. 17
7.用户定义的校对顺序 ............................................................. 18
SQLite
不支持的 SQL 特性............................................................. 20
SQLite
的体系结构简介 ................................................................ 21
简介 ............................................................................. 21
接口程序 ......................................................................... 21
Tokenizer ........................................................................ 21
Parser ........................................................................... 22
代码发生器 ....................................................................... 22
虚拟机器 ......................................................................... 22
B-树 ............................................................................. 23
页面高速缓存 ..................................................................... 23
OS 接口程序 ...................................................................... 23
Utilities ........................................................................ 23
测试代码 ......................................................................... 23
SQLite
与其他数据库的速度比较 ........................................................ 24
执行程序总结 ..................................................................... 24
测试环境 ......................................................................... 24
测试1:1000 INSERTs............................................................... 25
测试2:在事务处理程序中的 25000 INSERTs........................................... 25
测试3:在编入索引表格中的25000 INSERTs ........................................... 26
测试4:没有索引的 100 SELECTs..................................................... 26
测试5:在一个字符串比较上的100 SELECTs ........................................... 27
2 / 123
测试6:
创建
索引................................................................... 27
测试7:没有索引的5000 SELECTs .................................................... 27
测试8:没有索引的1000 UPDATEs .................................................... 28
测试9:有索引的25000 UPDATEs ..................................................... 28
测试10:有索引的25000 text UPDATEs ............................................... 28
测试11:来源于SELECT的INSERTs ................................................... 29
测试12:没有索引的DELETE ......................................................... 29
测试13:有索引的DELETE ........................................................... 29
测试14:一个大 DELETE之后的一个大INSERT.......................................... 30
测试15:一个大的DELETE及许多小INSERTs ........................................... 30
测试16:DROP TABLE................................................................ 30
SQLite
中的空处理与其它数据库引擎比较 .............................................. 31
SQLite
数据库的速度比较(wiki)........................................................ 34
Test 1: 1000 INSERTs ............................................................. 36
Test 2: 25000 INSERTs in a transaction ........................................... 36
Test 3: 25000 INSERTs into an indexed table ...................................... 37
Test 4: 100 SELECTs without an index ............................................. 37
Test 5: 100 SELECTs on a string comparison ....................................... 38
Test 6: INNER JOIN without an index .............................................. 38
Test 7: Creating an index ........................................................ 38
Test 8: 5000 SELECTs with an index ............................................... 39
Test 9: 1000 UPDATEs without an index ............................................ 39
Test 10: 25000 UPDATEs with an index ............................................. 39
Test 11: 25000 text UPDATEs with an index ........................................ 40
Test 12: INSERTs from a SELECT ................................................... 40
Test 13: INNER JOIN with index on one side ....................................... 41
Test 14: INNER JOIN on text field with index one side ......................... 41
Test 15: 100 SELECTs with subqueries. Subquery is using an index ................. 41
Test 16: DELETE without an index ................................................. 42
Test 17: DELETE with an index .................................................... 42
Test 18: A big INSERT after a DELETE ......................................... 42
Test 19: A big DELETE followed by many small INSERTs ............................. 42
Test 20: DROP TABLE .............................................................. 43
附加文件...................................................................... 43
SQLite
在Windows中的性能调试 ........................................................ 44
直接使用
SQLite
................................................................... 44
2:Indexes 和数据库结构是非常重要的。 ............................................ 44
3:页面规模也很重要 .............................................................. 45
4:成群的索引 .................................................................... 45
5:作为读这篇文章的收获,这里有个不智能的事情需要提醒你。 ........................ 46
SQLite
中如何用触发器执行取消和重做逻辑 .............................................. 47
SQLite
3 C/C++
开发
接口简介(API函数) ............................................... 55
1.0 总览 ......................................................................... 55
2.0 C/C++ 接口 ................................................................... 55
如何在VS 2003下编译
SQLite
.......................................................... 61
下载 ............................................................................. 61
创建
一个 DLL 工程 ................................................................ 61
3 / 123
把
SQLite
的源文件添加到工程当中去 ............................................... 61
Make a .DEF file ................................................................. 61
如何编译
SQLITE
.EXE 命令行程序 ................................................... 62
SQLite
常见问题解答 .................................................................. 64
Frequently Asked Questions ....................................................... 64
(1)如何建立自动增长字段? ......................................................... 64
(2)
SQLite
支持何种数据类型?...................................................... 65
(3)
SQLite
允许向一个integer型字段中
插入
字符串!.................................. 65
(4)为什么
SQLite
不允许在同一个表不同的两行上使用0和0.0作主键? ................. 65
(5)多个应用程序或一个应用程序的多个实例可以同时访问同一个数据库文件吗? .......... 65
(6)
SQLite
线程安全吗?............................................................ 66
(7)在
SQLite
数据库中如何
列
出所有的表和索引? ..................................... 66
(8)
SQLite
数据库有已知的大小限制吗?.............................................. 67
(9)在
SQLite
中,VARCHAR字段最长是多少?.......................................... 67
(10)
SQLite
支持二进制大对象吗?................................................... 67
(11)在
SQLite
中,如何在一个表上添加或删除
一列
? .................................. 68
(12)我在数据库中删除了很多数据,但数据库文件没有变小,是Bug吗? ................. 68
(13)我可以在商业产品中使用
SQLite
而不需支付许可费用吗? .......................... 68
(14)如何在字符串中使用单引号(')? ................................................ 68
(15)
SQLITE
_SCHEMA error是什么错误?为什么会出现该错误?.......................... 69
(16)为什么 ROUND(9.95,1) 返回 9.9 而不是 10.0? 9.95不应该圆整 (四舍五入)吗?... 70
SQLite
的原子提交原理 ................................................................ 71
1.0 简介 ......................................................................... 71
2.0 硬件设定 ..................................................................... 71
3.0 单个文件提交 ................................................................. 73
3.1 实始状态.................................................................. 73
3.2 申请一个共享锁............................................................ 73
3.3 从数据库里面读取信息...................................................... 74
3.4 申请一个Reserved Lock .................................................... 74
3.5 生成一个回滚日志文件...................................................... 75
3.6 修改用户进程中的数据页.................................................... 76
3.7 刷新回滚日志文件到存储设备中.............................................. 76
3.8 获得一个独享锁............................................................ 77
3.9 将变更写入到数据库文件中.................................................. 78
3.10 刷新变更到存储........................................................... 78
3.11 删除回滚日志文件......................................................... 79
3.12 释放锁................................................................... 80
4.0 回滚 ......................................................................... 81
4.1出事了,!!! ......................................................... 81
4.2 Hot Rollback Journals..................................................... 81
4.3 取得数据库的一个独享锁.................................................... 82
4.4 回滚没有完成的变更........................................................ 83
4.5 删除hot日志文件.......................................................... 83
4.6 如果一切正常,没有什么未完成的写操作...................................... 84
5.0 多文件提交 ................................................................... 84
5.1 每个数据库文件单独拥有日志............................................ 85
5.2 主日志文件................................................................ 85
4 / 123
5.3 更新回滚日志文件头........................................................ 86
5.4 修改数据库文件............................................................ 86
5.5 删除主日志文件............................................................ 87
5.6 清除回滚日志.............................................................. 87
6.0原子操作的一些实现细节........................................................ 88
6.1 总是记录整个扇区.......................................................... 88
6.2 写日志文件时垃圾的处理.................................................... 88
6.3 提交前缓存溢出............................................................ 89
7.0 优化 ......................................................................... 89
7.1 在事务间保存缓.......................................................... 90
7.2 独享访问模式.............................................................. 90
7.3 不必将空闲页写进日志...................................................... 90
7.4 单页更新及扇区原子写...................................................... 91
7.5 Filesystems With Safe Append Semantics.................................... 91
8.0 原子提交行为测试 ............................................................. 91
9.0 会导致完蛋的事情 ............................................................. 92
9.1 缺乏文件锁实现............................................................ 92
9.2 不完整的磁盘刷新.......................................................... 92
9.3 文件部分地删除............................................................ 93
9.4 写入到文件中的垃圾........................................................ 93
9.5 删除掉或更名了“hot”日志文件............................................. 93
10.0 总结及未来的路 .............................................................. 93
SQLite
的查询优化 .................................................................... 95
一、影响查询性能的因素: ......................................................... 95
二、几个查询优化的转换 ........................................................... 95
三、 几种查询语句的处理(复合查询) .............................................. 95
四、子查询扁平化 ................................................................. 96
五、连接查询 ..................................................................... 98
六、索引 ......................................................................... 99
SQLITE
3 使用总结.................................................................... 102
前序: .......................................................................... 102
一、版本 ........................................................................ 102
二、基本编译 .................................................................... 102
三、
SQLITE
操作入门.............................................................. 103
(1)基本流程................................................................ 103
(2)SQL语句操作 ............................................................ 104
(2)操作二进制.............................................................. 108
(4)事务处理................................................................ 109
四、给数据库加密 ................................................................ 109
五、后记 ........................................................................ 122
之前两篇文章,介绍了命令行和图形化的方式进行数据库的
创建
和表的
创建
,相当于
创建
了一个框架,还没有具体数据,本篇就来介绍如何将数据添加到数据库的
表中
,以及如何查看
表中
的数据。
同样,本篇继续使用命令行和图形化两种方式进行操作。
DB Brower方式 数据
插入
首先是图形化的方式进行数据
插入
。
打开之前
创建
的test4.db数据库,准备向SCORE
表中
插入
数据:
将窗口切换到“浏览数据”,进行数据的编辑。
点击
插入
数据的图标,依次输出几条数据。注意id这一项在点击
插入
数据时,是自动填充的,这是因为之前在
创建
1.建立C:\
sqlite
目录,将解压的文件放入此文件夹中;
文件
列
表:2017-02-13 23:26 450,048 sqldiff.exe
2017-02-13 23:27 4,963
sqlite
3.def
2017-02-13 23:27 845,402
sqlite
3.dll
2017-02-13 23:27 701,952
sqlite
3.exe
2017-02-13 23:27 1,974,784
sqlite
3_analyzer.exe
2015-04-18 10:02 95,137
sqlite
3命令方式操作大全.docx
2.添加系统环境变量, 在Path变量值后面添加 C:\
sqlite
;(英文分号不要忘记了)
3.命令行环境下即可运行
sqlite
3,运行后出现
sqlite
> 提示符
压缩包中内含:
SQLite
3命令操作大全(
学习
好助手!)
如:
创建
表: create table 表名(元素名 类型,…);
删除表: drop table 表名;
插入
数据: insert into 表名 values(, , ,) ;
创建
索引: create [unique] index 索引名on 表名(col….);
删除索引: drop index 索引名(索引是不可更改的,想更改必须删除重新建)
删除数据: delete from 表名;
更新数据: update 表名 set 字段=’修改后的内容’ where 条件;
增加一个
列
: Alter table 表名 add column 字段 数据类型;
选择查询: select 字段(以”,”隔开) from 表名 where 条件;
日期和时间: Select datetime('now')
日期: select date('now');
时间: select time('now');
总数:select count(*) from table1;
求和:select sum(field1) from table1;
平均:select avg(field1) from table1;
最大:select max(field1) from table1;
最小:select min(field1) from table1;
排序:select 字段 from table1 order by 字段(desc或asc) ;(降序或升序)
分组:select 字段 from table1 group by 字段,字段… ;
限制输出:select 字段 from table1 limit x offset y;
= select?字段?from?table1 limit y , x;
......
readwrite
sqlite
SQLite
数据库是一种简单,功能强大的验证,查询和存储相关数据帧的方法,尤其是与R
SQLite
软件包一起使用时。 但是,当前的解决方案不能保留(或检查)元数据,记录更改或提供特别有用的错误消息。
readwrite
sqlite
是默认情况下的R包
保留(并随后检查)以下元数据
逻辑,日期和hms
列
的类
因子和有序因子的水平
POSIXct
列
的时区
单位栏的单位
sfc
列
的投影
sf对象的sf
列
表
创建
以及数据
插入
或删除
提供信息错误消息,如果
NOT NULL
列
包含缺失值
输入数据中的PRIMARY KEY
列
值不是唯一的
readwrite
sqlite
还允许用户
数据帧的写入环境(或命名
列
表)(用于填充数据库)
在写入之前删除现有数据(和元数据)(对转换现有数据库很有用)
替换会导致唯一或主键冲突的现有数据(用于更新
sqlite
中是不支持删除
列
操作的,所以网上alter table table_name drop column col_name这个语句在
sqlite
中是无效的,而替代的方法可以如下:
1.根据原表
创建
一张新表
2.删除原表
3.将新表重名为旧表的名称
示例例子如下
1.
创建
一张旧表Student,包含id(主码),name, tel
create table student (
SQLite
是一种轻量级的关系型数据库管理系统,它可以在移动设备上存储和管理数据。在
Android
应用中,
SQLite
是一个非常常见的数据库,它被广泛用于存储应用程序的信息。
要
创建
一个表来存储应用信息,首先需要定义表的结构,即
表中
包含哪些
列
和每
一列
的数据类型。例如,可以
创建
一个名为“app_info”的表,它包含以下
列
:
- id: 应用的唯一标识符,使用INTEGER类型存储
- name: 应用的名称,使用TEXT类型存储
- version: 应用的版本号,使用TEXT类型存储
- description: 应用的描述信息,使用TEXT类型存储
- icon:应用的图标,使用BLOB类型存储
可以使用CREATE TABLE语句
创建
上述表格:
CREATE TABLE app_info(
id INTEGER PRIMARY KEY,
name TEXT,
version TEXT,
description TEXT,
icon BLOB
这将
创建
一个名为“app_info”的表,并定义上述
列
及其相应的数据类型。利用上述语句,应用程序可以向
表中
插入
数据、更新数据、删除数据、查询数据等等操作,以便达到存储和管理应用程序信息的目的。
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
Java中如何把两个数组合并为一个
清秋愁上愁: