易语言外部数据库sqlite3教程
===========================================================
第一部分 sqlite基础
-----------------------------------------------------------
1、什么是sqliet
SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite 源代码不受版权限制。
SQLite与其他SQL数据库不同,SQLite没有单独的服务器进程。 它直接读取和写入普通磁盘文件。 具有多个表,索引,触发器和视图的完整SQL数据库包含在单个磁盘文件中。
-----------------------------------------------------------
2、为什么要用 SQLite?
不需要一个单独的服务器进程或操作的系统(无服务器的)。
SQLite 不需要配置,这意味着不需要安装或管理。
一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。
SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。
SQLite 是自给自足的,这意味着不需要任何外部的依赖。
SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。
SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。
SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。
-
----------------------------------------------------------
3、常用易语言单机的、免费、轻量级数据库比较
易语言自带数据库易数据库可以说不能称为数据库,它只是“表”,而且还是单张表,所以直接PASS掉。
大部分人会用access,其实Access数据库本身有很多的问题:性能不行;数据不安全,用户可以直接用Access打开数据库文件进行数据修改,即使加密后都可以直接破解;Access的数据量一大,文件本身的体积就异常庞大等因素。
SQLite是一个小型的C程序库,实现了独立的,可嵌入的,零配置的SQL数据库引擎。
SQLite就是Access理想的替代品。
-----------------------------------------------------------
4、sqlite3数据类型
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 种不同的不同长度的整数数据类型。
SQLite 亲和(Affinity)类型(近似)
SQLite支持列的亲和类型概念。任何列仍然可以存储任何类型的数据,当数据插入时,该字段的数据将会优先采用亲缘类型作为该值的存储方式。SQLite目前的版本支持以下五种亲缘类型:
亲和类型 | 描述 |
TEXT | 数值型数据在被插入之前,需要先被转换为文本格式,之后再插入到目标字段中。此列可使用存储类为NULL,TEXT或BLOB来存储所有数据。 |
NUMERIC (数字、数值 | 当文本数据被插入到亲缘性为NUMERIC的字段中时,如果转换操作不会导致数据信息丢失以及完全可逆,那么SQLite就会将该文本数据转换为INTEGER或REAL类型的数据,如果转换失败,SQLite仍会以TEXT方式存储该数据。对于NULL或BLOB类型的新数据,SQLite将不做任何转换,直接以NULL或BLOB的方式存储该数据。需要额外说明的是,对于浮点格式的常量文本,如"30000.0",如果该值可以转换为INTEGER同时又不会丢失数值信息,那么SQLite就会将其转换为INTEGER的存储方式。此列可包含使用所有五个存储类的值。也就是可以存上面所列的五种类型。 |
INTEGER 整数型 | 对于亲缘类型为INTEGER的字段,其规则等同于NUMERIC,唯一差别是在执行CAST表达式时。它的行为与带有转换表达式异常的具有数字近似的列相同。 |
REAL | 其规则基本等同于NUMERIC,唯一的差别是不会将"30000.0"这样的文本数据转换为INTEGER存储方式。它的行为类似于具有数字近似的列(除了它将整数值强制以浮点表示) |
NONE | 不做任何的转换,直接以该数据所属的数据类型进行存储。 具有近似性NONE的列不会将一个存储类转为另一个存储类型 |
SQLite近似和类型名称
以下是可以在创建SQLite表时使用的各种数据类型名称的列表。
数据类型 | 相应的近似类型 |
INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 | INTEGER |
CHARACTER(20) VARCHAR(255) VARYING CHARACTER(255) NCHAR(55) NATIVE CHARACTER(70) NVARCHAR(100) TEXT CLOB | TEXT |
BLOB - 未指定数据类型 | NONE |
REAL DOUBLE DOUBLE PRECISION FLOAT | REAL |
NUMERIC DECIMAL(10,5) BOOLEAN DATE DATETIME | NUMERIC |
日期和时间数据类型
在SQLite中,没有单独的类型来存储日期和时间。 但是可以将日期和时间存储为TEXT,REAL或INTEGER值。
存储类 | 日期格式 |
TEXT | 它以“yyyy-mm-dd hh:mm:ss.sss” 格式指定日期 |
REAL | 它规定了从公元前4714年11月24日在格林威治中午以后的天数。 |
INTEGER | 它指定从1970-01-01 00:00:00 utc开始的秒数。 |
附:易语言基本数据类型
基本数据类型有6种:数值型、逻辑型、日期时间型、文本型、字节集型、子程序指针型。
基本数据类型有6种:数值型、逻辑型、日期时间型、文本型、字节集型、子程序指针型。
数值型又包括:字节型、短整数型、整数型、长整数型、小数型、双精度小数型。
-----------------------------------------------------------
5、sqlite命令大全
SQLite命令与SQL命令类似。 有三种类型的SQLite命令:
DDL数据定义语言
数据定义语言中主要有三个命令:
• CREATE建表,数据库中的表或其他对象的视图。
• ALTER:此命令用于修改现有的数据库对象,如表。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论