SQLite常用命令
SQLite3 数据库
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2018年已经有18个年头,SQLite最新的版本 SQLite3 已经发布。
常用命令
日期表达式返回当前系统日期和时间值,这些表达式将被用于各种数据操作。
SELECT CURRENT_TIMESTAMP;
调度框架,可以了解下,为自动批量运行做做准备!
--数据导出--
.header on
.mode csv
.once D:/sqlite/company.csv
SELECT * FROM company;
------
-- 查看
.system D:/sqlite/company.csv
--数据导入--
.mode csv
.import D:/sqlite/community.csv community
.tables
select * from community;
sqlite3 查看表结构
如果想列出该数据库中的所有表,可:
.table
如果想查看这些表的结构:
select * from sqlite_master where type="table";
默认情况下,不会出现红框中的表头,需要之前设置,命令为:
.header on
如果只想查看具体一张表的表结构,比如查看emperors表,命令为:
select * from sqlite_master where type="table" and name="emperors";
另外,也可以这样:
sqlite> .schema emperors
CREATE TABLE emperors( id integer primary key autoincrement, name text,dynasty text,start_year text);
sqlite3自增key设定(创建自增字段)
比如,我们设计一个元记录表:
drop table test;
create table test (
[tkid] integer PRIMARY KEY autoincrement, -- 设置主键
[tktype] int default 0,
[tableid] varchar (50),
[createdate] datetime default (datetime('now', 'localtime')) -- 时间
);
要始终得到在整个表中唯一的键,在INTEGER PRIMARY KEY的声明之前加关键词AUTOINCREMENT.
sqlite有没有把字符串转成double型,整型的函数
转换表达式,该表达式的语法规则如下:
CAST(expr AS target_type)
该表达式会将参数expr转换为target_type类型
具体使用可以查一下CAST的范例
select cast(3 as double)/cast(5 as double);
select cast(3 as numeric)/cast(5 as double);
SQLite清空表并将自增列归零
SQL标准中有TRUNCATE TABLE语句,用来清空表的所有内容。但SQLite不支持这个语句。
在SQLite中直接使用“DELETE FROM TableName”就可以了。
通常在清空表的时候,还需要把自增列归零。在SQLite中定义自增列的方法如下:
CREATE TABLE TableName ( id INTEGER PRIMARY KEY AUTOINCREMENT, ... );
如果想把某个自增列的序号归零,只需要修改 sqlite_sequence 表就可以了。
UPDATE sqlite_sequence SET seq = 0 WHERE name = 'TableName';
或
DELETE FROM sqlite_sequence WHERE name = 'TableName';
要想将所有表的自增列都归零,直接清空sqlite_sequence表就可以了:
DELETE FROM sqlite_sequence;
解决sqlite删除记录后数据库文件大小不变
https://www.cnblogs.com/liaocheng/p/6182976.html
# compress sqlite3 database [data.db] R
pathDB <- 'data.db'
oSql <- "vacuum"
dbSendQuery(pathDB, oSql)
SQLite中的时间日期函数小结
SQLite包含了如下时间/日期函数:
datetime().......................产生日期和时间
date()...........................产生日期
time()...........................产生时间
strftime().......................对以上三个函数产生的日期和时间进行格式化
datetime()的用法是:datetime(日期/时间,修正符,修正符...)
date()和time()的语法与datetime()相同。
在时间/日期函数里可以使用如下格式的字符串作为参数:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
其中now是产生现在的时间。
strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串。
strftime()的语法是strftime(格式, 日期/时间, 修正符, 修正符, ...)
它可以用以下的符号对日期和时间进行格式化:
%d 月份, 01-31
%f 小数形式的秒,SS.SSS
%H 小时, 00-23
%j 算出某一天是该年的第几天,001-366
%m 月份,00-12
%M 分钟, 00-59
%s 从1970年1月1日到现在的秒数
%S 秒, 00-59
%w 星期, 0-6 (0是星期天)
%W 算出某一天属于该年的第几周, 01-53
%Y 年, YYYY
%% 百分号
strftime()的用法举例如下:例11.
select strftime('%Y.%m.%d %H:%M:%S','now','localtime');
结果:2006.10.17 21:41:09
sqlite 字符串连接
select path||'%' from t_category where depth = 0 and type = 0
之前我一直用mssql字符串都是用+直接拼接,不过在sqlite中不行。得用||
用'||'拼接字符串
数字相加
SELECT 'A'+'B'
结果为0
select "A"+"1" 结果为1
select "A"+1 结果为1
select 2+1 结果为3
=在“+”运算中,SQLite将字符串非数字串都当作0处理了
操作符 英文描述 中文描述
|| String Concatenation 字符串拼接
* Arithmetic Multiply 算术乘
/ Arithmetic Divide 算术除
% Arithmetic Modulus 算术取模
+ Arithmetic Add 算术加
– Arithmetic Subtract 算术减
<< Bitwise Right shift 按位向右移位
>> Bitwise Left shift 按位向左移位
& Logical And 逻辑与
| Logical Or 逻辑或
< Relational Less than 小于关系
<= Relational Less than or equal to 小于等于关系
> Relational Greater than 大于关系
>= Relational Greater than or equal to 大于等于关系
= Relational Equal to 等于关系
== Relational Equal to 等于关系
<> Relational Not equal to 不等于关系
!= Relational Not equal to 不等于关系
IN Logical In 包含逻辑
AND Logical And 并且逻辑
OR Logical Or 或者逻辑
LIKE Relational String matching 匹配关系
GLOB Relational Filename matching 文件名匹配关系
参考网址
sqlite常用函数网址
http://tool.oschina.net/apidocs/apidoc?api=sqlite
http://www.sqlite.org/lang_corefunc.html
SQLite下载安装
Sqlite于Windows、Linux 和 Mac OS X 在安装过程
sqlite 可视化管理工具相关
http://www.navicat.com.cn/products/navicat-for-sqlite
http://blog.csdn.net/shellching/article/details/7979969
http://www.dawnfly.cn/article-1-357.html
R连接sqlite数据库相关
Building precursors to data science
SUBSETTING AND AGGREGATING GDELT USING DPLYR AND SQLITE
python连接sqlite数据库相关 ?
©哈尔滨商业大学 银河统计工作室
银河统计工作室成员由在校统计、计算机部分师生和企业数据数据分析师组成,维护和开发银河统计网和银河统计博客(技术文档)。专注于数据挖掘技术研究和运用,探索统计学、应用数学和IT技术有机结合,尝试大数据条件下新型统计学教学模式。