SQLite是一个框架,它定义了一个面向交易的SQL数据库系统,它是独立的,不需要部署。SQLite的代码库是主流,这意味着它可以用于每个意图,个人或专业。SQLite也许是世界上使用最广泛的数据库,包括不计其数的应用程序和一些高级的倡议。
SQLite是一个用于集成设备的SQL数据库系统。SQLite不会像许多其他数据库系统那样包含一个独立的服务器组件。SQLite将数据写入常规的数据库文件中。一个数据库文件由整个SQL数据库组成,包括许多表、索引、启动和列。我们可以很容易地在32位和64位操作系统中复制数据库,因为数据库文件类型是多维的。由于这些属性,SQLite是一个广泛使用的统计文件系统。
SQLite中的 "DISTINCT "术语可以评估 "SELECT "命令的数据集并删除所有重复的值,确保检索到的条目来自 "SELECT "查询的有效集合。当决定一条记录是否重复时,SQLite的 "DISTINCT "术语只分析 "SELECT "命令中提供的一个列和数据。在SQLite "SELECT "查询中,当我们为一个单列声明 "DISTINCT "时,"DISTINCT "查询将只检索该定义列的唯一结果。当我们可以在SQLite "SELECT "命令中对多个列应用 "DISTINCT "查询时,"DISTINCT "可以使用这些列的组合来评估重复的数据。在SQLite中,NULL变量被当作是冗余变量。因此,如果我们在一个有NULL项的列上使用 "DISTINCT "查询,这将只保留一个包含NULL数据的单行。
实例
在不同例子的帮助下,我们将发现如何使用SQLite DISTINCT术语,通过SELECT查询使用SQLite DISTINCT,以及在几列上使用SQLite SELECT unique,从一个特定的表中获取唯一值。
必须安装任何编译器来运行这些查询。我们在这里安装了BD Browser for SQLite软件。首先,我们从上下文菜单中选择了 "新数据库 "选项,建立了一个新数据库。它将被放置在SQLite数据库文件文件夹中。我们运行查询,形成一个新的数据库。然后,使用专门的查询,我们将构建一个表。
创建表
在这里,我们将创建 "汽车 "表并指定其中的数据。表 "Car "包含列 "Id"、"Name"、"Model"、"Color "和 "Price"。列 "Id "有一个整数数据类型,"Name "和 "Color "有一个文本数据类型,"Model "有一个字符数据类型,"Price "有一个数字数据类型。
1 2 3 4 5 6 7 8 9 10 | CREATE TABLECar( IdINTEGER PRIMARY KEY, Name TEXTNOT NULL, ModelCHAR NOT NULL, Color TEXTNOT NULL, PriceNUMERIC ) 。 |

下面的输出显示 "CREATE "的查询已经成功执行。

插入数据
现在,我们想把数据插入表 "Car "中,所以我们执行 "INSERT "查询。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | INSERT INTOCar(Id,CompanyName,Model,Color,Price) VALUES (1,'Tesla', 'Cybertruck', 'Gray',' 39999'), (2,'Mazda', 'Mazda CX-9', 'White,Gray,Black','34160'), (3,'Toyota', 'Corolla Cross', 'black,blue','61214'), (4,'本田', '雅阁', '红色,白色','54999'), (5,'捷豹', 'I-Pace', '绿色,黑色,白色','55400'), (6,'Mitsubishi', 'Outlander', 'yellow,gray','35500'), (7,'Volvo', 'XC40', 'silver,black','62000'), (8,'Lexus', 'GX', '紫色','45000') 。 |

我们成功地在表中插入了数据,包括不同汽车的ID、公司名称、型号、颜色和价格。

使用 "SELECT "查询
我们可以通过使用 "SELECT "查询来检索表的全部数据。
1 | >> SELECT * FROMCar |

运行前面的查询后,我们可以得到12辆汽车的所有数据。

对一个列使用 "SELECT DISTINCT "查询
SQLite中的 "DISTINCT "术语与 "SELECT "查询结合使用,可以删除所有重复的条目,只检索出不同的值。也许,在某些情况下,一个表有几个重复的条目。在检索这些数据时,获取不同的项目而不是重复的数据更有意义。
1 | >> SELECT DISTINCTPriceFROMCar |

在表 "Car "中,有12辆汽车的数据。但是,当我们对列 "Price "应用 "DISTINCT "和 "SELECT "查询时,我们可以在输出中获得这些汽车的唯一价格。

在多个列上使用 "SELECT DISTINCT "查询
我们可以在一个以上的列上应用 "DISTINCT "命令。在这里,我们想删除表中 "公司名称 "和 "价格 "两列的重复值。因此,我们利用 "DISTINCT"。
1 | >> SELECT DISTINCTCompanyName,PriceFROMCar |

执行查询后,结果显示 "价格 "的唯一值和 "公司名称 "的唯一名称。

在这种情况下,我们对表 "Car "中的列 "CompanyName "和 "Price "采用了 "DISTINCT "查询。但是我们在查询中使用 "WHERE "子句指定 "CompanyName"。
1 | >> SELECT DISTINCTCompanyName,PriceFROMCarWHERECompanyName='Honda'。 |

输出结果如下图所示。

在这里,我们利用 "SELECT DISTINCT "查询和 "WHERE "子句。在这个查询中,我们在 "WHERE "子句中指定了条件,表明汽车的价格必须小于50000。
1 | >> SELECT DISTINCTCompanyName,PriceFROMCarWHEREPrice<50000 |

该查询返回四条记录。在 "CompanyName "和 "Price "列中有几条重复的记录。我们借助 "DISTINCT "语句删除这些重复的值。

使用 "SELECT DISTINCT "和 "BETWEEN "句子
"DISTINCT "子句就应用在 "SELECT "字样之后。然后,我们在这个例子中一起使用 "DISTINCT "和 "BETWEEN "子句。BETWEEN "子句显示的条件是汽车的价格将在20000和50000之间。
1 | >> SELECT DISTINCTCompanyName,color,PriceFROMCarWHEREPriceBETWEEN 20000 AND 50000 |

结果显示了那些价格在20000到50000之间的汽车的 "公司名称 "和 "颜色"。

总结
在这篇文章中,我们已经探讨了如何使用SQLite的 "SELECT DISTINCT "语句来删除数据集中的重复条目。在SELECT查询中,"DISTINCT "命令是一个可选的功能。如果在 "DISTINCT "语句中指定了单一表达式,查询就会提供表达式的不同值。每当 "DISTINCT "语句包含多个表达式时,查询将为提到的表达式提供一个特定的集合。SQLite中的 "DISTINCT "命令不会避免NULL值。因此,如果我们在SQL查询中使用 "DISTINCT "命令,NULL将作为一个独立元素出现在结果中。