前面几篇文章已经快速了解了SQLite的基本用法以及简单的Pyhton与C语言的API函数的使用。本篇再来全面介绍下SQLite的基本语法与数据类型。
1 SQLite 基本语法
1.1 SQLite注释
单行注释以两个连续的横杠: “复制–” 开始
多行注释则与C风格的:“复制/* */”一致
复制sqlite>.help — 这是一个简单的注释 sqlite>.help /* 这也是一个简单的注释 */1.2 SQLite大小写
SQLite是不区分大小写,比如select语句中,既可以使用大写的SELECT,也可以用小写的select。
但有例外:复制GLOB和复制glob在SQLite语句中有不同的含义。
1.3 SQLite语句/命令
SQLite 语句以关键字开始,以分号 复制; 结束
关键字,也称SQLite命令,如:SELECT,INSERT,UPDATE,DELETE,ALTER,DROP等,具体分类如下:
1.3.1 DDL – 数据定义语言
数据操作语言,即数据的增、删、改数据库在的数据表
命令 描述 CREATE/create 创建一个新的表,一个表的视图,或者数据库中的其他对象 ALTER/alter 修改数据库中的某个已有的数据库对象,比如一个表 DROP/drop 删除整个表,或者表的视图,或者数据库中的其他对象1.3.2 DML – 数据操作语言
数据操作语言,即对数据表中的数据进行增、删、改操作
命令 描述 INSERT/insert 创建一条记录 DELETE/delete 删除记录 UPDATE/update 修改记录1.3.3 DQL – 数据查询语言
数据操作语言,即对数据表中的数据进行查操作
命令 描述 SELECT/select 从一个或多个表中检索某些记录总结一下:
2 SQLite数据类型
SQLite存储类
SQLite 中的每一列,每个变量和表达式都有相关的数据类型,每个存储在 SQLite 数据库中的值都具有以下存储类之一:
存储类 描述 NULL 值是一个 NULL 值。 INTEGER 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。 REAL 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。 TEXT 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。 BLOB 值是一个 blob 数据,完全根据它的输入存储。SQLite 的存储类稍微比数据类型更普遍。
比如INTEGER存储类,包含 6 种不同的不同长度的整数数据类型,但只要INTEGER值被从磁盘读出进内存处理,就被转换成最一般的数据类型(8-字节有符号整形)。
对于BLOB数据,它表示二进制大对象,一般用来保存图片,视频等,另外还有CLOB,表示字符大对象,能够存放大量基于字符的数据。
Boolean 数据类型
SQLite 没有单独的 Boolean 存储类,它使用INTEGER作为存储类型,布尔值被存储为整数 0(false)和 1(true)。
Date 与 Time 数据类型
SQLite 没有一个单独的用于存储日期和/或时间的存储类,但内置的sqlite日期和时间函数能够将日期和时间以TEXT,REAL或INTEGER形式存放数能够将日期和时间以TEXT,REAL或INTEGER形式存放。
存储类 日期格式 TEXT 格式为 “YYYY-MM-DD HH:MM:SS.SSS” 的日期。 REAL 从公元前 4714 年 11 月 24 日格林尼治时间的正午开始算起的天数。 INTEGER 从 1970-01-01 00:00:00 UTC 算起的秒数。内置的日期和时间函数包括:
函数 含义 date(timestring, modifier, modifier, …) 以 YYYY-MM-DD 格式返回日期 time(timestring, modifier, modifier, …) 以 HH:MM:SS 格式返回时间 datetime(timestring, modifier, modifier, …) 以 YYYY-MM-DD HH:MM:SS 格式返回 julianday(timestring, modifier, modifier, …) 这将返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数 strftime(format, timestring, modifier, modifier, …) 这将根据第一个参数指定的格式字符串返回格式化的日期第一个参数(timestring):时间字符串
后面的参数(modifier):修饰符
strftime() 函数可以把格式字符串format作为其第一个参数
前四个个函数也可以转换成strftime函数:
复制date(…) strftime(%Y-%m-%d, …) time(…) strftime(%H:%M:%S, …) datetime(…) strftime(%Y-%m-%d %H:%M:%S, …) julianday(…) strftime(%J, …)strftime中的格式包括:
复制– 格式 格式说明 — %d 天数,例如:01-31中某一个天 — %f 带小数部分(SS.SSS格式)的秒 — %H 小时,例如: 00-23中某一个小时 — %j 一年中的第几天,001-366 — %J 儒略日数,DDDD.DDDD — %m 月,00-12中某一具体月份 — %M 分,00-59 — %s 从 1970-01-01 算起的秒数 — %S 秒,00-59 — %w 一周中的第几天,0-6 (0 is Sunday) — %W 一年中的第几周,01-53 — %Y 年,YYYY — %% % symbol通过SQLite语句,可以简单测试一些日期格式(打印当前的时间):
end
审核编辑:汤梓红免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:玩转SQLite7:基本语法与数据类型 https://www.yhzz.com.cn/a/7320.html