大部分数据库在进行字符串比较的时候,对大小写是不敏感的。
但是,在SQLite中,对大小写是敏感的。
假设表Test的结构和值如下:
_id |
name
|
1 |
ABCDE |
2 |
abcde |
3 |
ABCde |
4 |
abCDE |
5 |
aaaaa |
6 |
bbbbb |
执行下面的SQL语句:
select * from test where name = 'Abcde';
结果是没有查询到任何记录。
明显地,SQLite在进行字符串比较的时候,默认对大小写是敏感的。
那么SQLite怎么区分大小写查询呢,以下是三种解决方案:
方案一:使用大小写转换函数LOWER、UPPER
1.select * from test where LOWER(name) = 'abcde';
2.select * from test where LOWER(name) = LOWER('ABCDE');
3.select * from test where LOWER(name) = LOWER('Abcde');
4.select * from test where LOWER(name) = LOWER('ABCde');
....
(1).select * from test where UPPER(name) = 'ABCDE';
(2).select * from test where UPPER(name) = UPPER('ABCDE');
(3).select * from test where UPPER(name) = UPPER('Abcde');
(4).select * from test where UPPER(name) = UPPER('ABCde');
.....
查询到的记录都如下:
1 |
ABCDE |
2 |
abcde |
3 |
ABCde |
4 |
abCDE |
方案二:在进行比较时强制声明不区分大小写
select * from test where name = 'ABCDE' COLLATE NOCASE;
查询到的记录如下:
1 |
ABCDE |
2 |
abcde |
3 |
ABCde |
4 |
abCDE |
方案三:创建表时声明该字段不区分大小写
create table test (_id Integer,name Text COLLATE NOCASE );
如果在任何情况下都不需要对大小写敏感,方案三是最好的解决方案;
如果只是少量查询对大小写不敏感,可以用方案二。
而方案一由于用到了函数,可能有额外的性能消耗,不推荐使用
分享到:
相关推荐
例如,SQLite.Net-PCL库可以通过设置特定的连接字符串参数来启用数据库加密。 3. **API使用** 在WinForm应用中,可以使用SQLite的C# API来执行加密操作。首先,需要创建一个带密码的SQLite连接字符串,如:"Data ...
sqllite3 hibernate 方言sqllite3 hibernate 方言sqllite3 hibernate 方言sqllite3 hibernate 方言sqllite3 hibernate 方言sqllite3 hibernate 方言
- **SqlLite**: 对表名和列名不区分大小写,遵循实际使用的语句格式。 #### 二、视图支持 - **Sqlserver**、**Oracle**、**MySql**、**PostgreSql** 和 **SqlLite** 均支持视图功能。视图可以被视为一种虚拟表,...
SQLLite-Official NuGet Packages .NET下使用的SQLLite-Official NuGet Packages 版本:3.8.2
"SQLlite简单教程" SQLlite是一个小巧、快速、可靠、功能强大且开源的关系型数据库管理系统。它是一个自给自足的、无服务器的、零配置的、支持 Transactions 的SQL数据库引擎。下面是SQLlite简单教程的知识点总结:...
sqllite增删改 。
sqlliteexpert 手机版数据库。
sqllite 数据库 jar包 java c#sqllite驱动
在Delphi中,这通常涉及到创建一个`TSQLite3Connection`对象,配置其连接字符串,然后打开连接。连接字符串可以包含数据库的路径、访问模式等信息。 文件名为"SQLLite应用实例"的部分,可能包含了如何在实际项目中...
windows 64位sqllite,客户端连接工具,能够满足基本使用要求。
SQLite是一个开源免费的数据库,一般用于嵌入系统或者小规模的应用软件开发中,你可以像使用Access一样使用它,你可以免费用于任何应用,包括商业应用,另外,它还支持各种平台和开发工具,这点是某些数据库(比如...
全国大学sqllite数据库文件
SQLite 是一个轻量级的数据库管理系统,常用于嵌入式系统和移动应用中,因为它不需要独立的服务器进程,且数据库文件可以直接在文件系统中存储。SQLite 支持 SQL 标准,提供了丰富的数据类型和事务处理功能。...
64位的SQLlite驱动安装程序,自己在64位机子上已经试过
标签“Delphi SQLLite”进一步强调了这个主题是关于Delphi开发环境和SQLite数据库的结合。通过这样的组合,开发者可以构建高效、可靠的数据库驱动应用程序,而无需依赖大型数据库服务器,特别适合于桌面应用和嵌入式...
例如,如果web.config文件中配置了多个连接字符串,每个连接字符串都有不同的providerName,那么在代码中可以根据providerName的值来决定使用哪个连接字符串,从而执行对应的数据库脚本。 总之,web.config中的连接...
sqllite.dll 程序集 用到sqllite 小型数据库时
。net操作sqllite的帮助类,非常全面基本能用到的方法都有了,需要的可以下载下来拷贝到程序中哦、
SQLLite 数据库一般应用到嵌入式系统中, 开发或者调试时,可以把数据库文件导出来, 然后通过此软件查看。解压后在windows上安装提示默认安装即可。使用时可以创建数据库文件或者用现有的文件打开, 增删改查功能均...
SQLLite sample demostrate how to utilize SQLLite database in C#, including table creation, data insert/delete/updat, dynamic loading data an display in the form