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 教程

易百--SQLite教程

Introduction to SQLite

SQLite3命令操作大全

sqlite3使用入门

SQLite学习手册(目录)


sqlite常用函数网址

http://tool.oschina.net/apidocs/apidoc?api=sqlite

http://www.sqlite.org/lang_corefunc.html

日期函数 Sqlite3 函数


SQLite下载安装

SQLite Download Page

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://sqlitebrowser.org/

http://www.dawnfly.cn/article-1-357.html

sqlitestudio下载

SQLite Studio的使用

pawelsalawa/sqlitestudio


linux下sqlite3的使用

Linux sqlite3基本命令

SQLite 自定义函数

SQLite 加入自定义函数

zhuanlan.zhihu.com/p

zhuanlan.zhihu.com/p


R连接sqlite数据库相关

《R语言数据分析》——1.4 从数据库中导入数据

R/connect.R

Building precursors to data science

load-sqlite-all

exampleSQLite

r-dbi/RSQLite

SQL databases-sqlite and R

rstudio-SQLite

SQL translation sqlite

SUBSETTING AND AGGREGATING GDELT USING DPLYR AND SQLITE


python连接sqlite数据库相关 ?


posted @ 2018-04-20 14:15  银河统计  阅读(919)  评论(0编辑  收藏  举报