SQLite一款轻型的数据库使用


SQLite

概述

      SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2021年已经接近有21个年头,SQLite也迎来了一个版本 SQLite 3已经发布。


SQLite对于其他数据库有什么优势

1、不需要配置,

2、不需要安装和管理不需要一个单独的服务器进程或操作的系统(无服务器的)

3、一个完整的SQLite数据库存储在一个单一的跨平台的磁盘文件上

4、SQLite是非常小的,轻量级的数据库,完全配置时小于400KiB,省略可选功能配置时小于250KiB

5、SQLite是一个自给自足的数据库,这也就意味着不需要任何外部的依赖SQLite事务是完全兼容ACID的,允许从多个进程或线程安全访问

6、SQLite支持SQL92(SQL2)标准的大多数查询语言的功能SQLite使用ANSI-C编写的,并提供了简单和易于使用的APISQLite可在UINX(Linux,Max OS-X,Android,iOS)和Windows(Win32,WinCE,WinRT)中运行

SQLite的局限性:

在SQLite中,SQL92不支持的特性如下所示:RIGHT OUTER JOIN: 只实现了LEFT OUTER JOINFULL OUTER JOIN:    

只实现了LEFT OUTER JOINALTER TABLE:            

支持RENAME TABLE和ALTER TABLE的ADD COLUMN variants命令,                                    

 不支持DROP COLUMN、ALTER COLUMN、ADD CONSTRAINT Trigger支持:              

支持FOR EACH ROW触发器,但不支持FOR EACH STATEMENT触发器VIEWS:                        

在SQLite中,视图是只读的,不能在视图中执行DELETE、INSERT或UPDATE语句GRANT 和 REVOKE:可以应用的唯一的访问权限是底层操作系统的正常文件访问权限

重要的关键字

SQLite Distinct 关键字

SQLite 的 DISTINCT 关键字与 SELECT 语句一起使用,来消除所有重复的记录,并只获取唯一一次记录。

有可能出现一种情况,在一个表中有多个重复的记录。当提取这样的记录时,DISTINCT 关键字就显得特别有意义,它只获取唯一一次记录,而不是获取重复记录。

语法

用于消除重复记录的 DISTINCT 关键字的基本语法如下:

SELECT DISTINCT column1, column2,.....columnN

FROM table_name

WHERE [condition]

实例

假设 COMPANY 表有以下记录:

ID          NAME        AGE        ADDRESS    SALARY----------  ----------  ----------  ----------  ----------1          Paul        32          California  20000.02          Allen      25          Texas      15000.03          Teddy      23          Norway      20000.04          Mark        25          Rich-Mond  65000.05          David      27          Texas      85000.06          Kim        22          South-Hall  45000.07          James      24          Houston    10000.08          Paul        24          Houston    20000.09          James      44          Norway      5000.010          James      45          Texas      5000.0

首先,让我们来看看下面的 SELECT 查询,它将返回重复的工资记录:

sqlite> SELECT name FROM COMPANY;

这将产生以下结果:

NAME----------PaulAllenTeddyMarkDavidKimJamesPaulJamesJames

现在,让我们在上述的 SELECT 查询中使用 DISTINCT 关键字:

sqlite> SELECT DISTINCT name FROM COMPANY;

这将产生以下结果,没有任何重复的条目:

NAME----------PaulAllenTeddyMarkDavidKimJames

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容