`
winxpxt
  • 浏览: 28364 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
社区版块
存档分类

MSSQL 数据库语句居然区分大小写

 
阅读更多

一直以来我们都认为数据库语句是不区分大小写,其实这是错误的认识,之所以不区分是因为数据库语言不区分大小写。这里我们以mssql2005中自带的AdventureWorksDW数据库为例。

执行以下语句


SELECT databasepropertyex('AdventureWorksDW','collation')
go
select top 1 * from Dimaccount

运行结果:

这里的Dimaccount表名应该是DimAccount(表名大小写问题),然后执行以下语句:

alter database AdventureWorksDW  COLLATE  SQL_Latin1_General_CP1_CS_AS
go
select top 1 * from Dimaccount
运行结果:

运行select top 1 * from DimAccount一切正常

所以说sql语句不区分大小写这种说法是不对,是否区分主要看数据库COLLATE 属性是否区分大小。

_CI_AI   不区分大小写、不区分重音、不区分假名类型、不区分宽度      
_CI_AI_WS   不区分大小写、不区分重音、不区分假名类型、区分宽度      
_CI_AI_KS   不区分大小写、不区分重音、区分假名类型、不区分宽度      
_CI_AI_KS_WS   不区分大小写、不区分重音、区分假名类型、区分宽度      
_CI_AS   不区分大小写、区分重音、不区分假名类型、不区分宽度      
_CI_AS_WS   不区分大小写、区分重音、   不区分假名类型、区分宽度      
_CI_AS_KS   不区分大小写、区分重音、区分假名类型、不区分宽度      
_CI_AS_KS_WS   不区分大小写、区分重音、区分假名类型、区分宽度      
_CS_AI   区分大小写、不区分重音、   不区分假名类型、不区分宽度      
_CS_AI_WS   区分大小写、不区分重音、不区分假名类型、区分宽度      
_CS_AI_KS   区分大小写、不区分重音、区分假名类型、不区分宽度      
_CS_AI_KS_WS   区分大小写、不区分重音、区分假名类型、区分宽度      
_CS_AS   区分大小写、区分重音、不区分假名类型、不区分宽度      
_CS_AS_WS   区分大小写、区分重音、不区分假名类型、区分宽度      
_CS_AS_KS   区分大小写、区分重音、区分假名类型、不区分宽度      
_CS_AS_KS_WS   区分大小写、区分重音、区分假名类型、区分宽度

0
3
分享到:
评论

相关推荐

    数据库区分大小写的设置

    通过对SQL Server和MySQL中区分大小写的设置进行深入了解,我们可以更好地根据实际需求调整数据库的行为。无论是创建表时指定字段属性、查询时动态控制还是更改现有表的设置,这些方法都为我们提供了灵活的手段来...

    MySQL的SQL语句大小写不敏感问题解决方案

    在 Linux 下,数据库名、表名、列名、别名的大小写规则是严格区分的,而在 Windows 下则不区分大小写。同时,在查询字符串时,MySQL 是大小写不敏感的,这也会导致大小写问题的产生。 在实际应用中,这个问题可能会...

    PostgreSQL数据库对象名大小写敏感的解决方法

    `UPPER()`可以将字符串转换为大写,而`ILIKE`则用于不区分大小写的字符串比较。 ##### 示例查询语句 ```sql -- 使用UPPER()函数 SELECT * FROM "TUser" WHERE UPPER("Name") LIKE '%TONY%'; -- 使用ILIKE操作符 ...

    MySql查询不区分大小写解决方案(两种)

    在MySQL数据库中,查询操作默认情况下是不区分大小写的,这意味着如果你在查询条件中使用了不同的大小写字母,比如"aaa"和"Aaa",它们会被视为相同,从而可能导致你期望的精确匹配失败。这对于一些特定场景,比如...

    mysql大小写敏感

    MySQL 在 Linux 下默认情况下是严格区分表名和数据库名的大小写,而在 Windows 下则不区分大小写。 在 Linux 下,MySQL 的默认设置是区分表名的大小写,不区分列名的大小写。可以通过添加 lower_case_table_names=...

    MySQL数据库大小写敏感的问题

    `lower_case_table_names`参数的值为0表示区分大小写,1表示不区分大小写。当设置为1时,数据库和表名会被自动转换为小写,从而避免因大小写不匹配产生的问题。 在MySQL中,列名和列别名通常在所有情况下都是忽略大...

    mysql基础-不设置区分大小写

    总的来说,通过调整`lower_case_table_names`配置,我们可以根据项目需求让MySQL在处理数据库和表名时变得不区分大小写,但这并不意味着在编写SQL语句时可以忽略大小写规则。了解并正确使用这些配置可以帮助我们更...

    MySQL表名不区分大小写的设置方法

    此外,尽管设置为1可以使MySQL在逻辑上不区分大小写,但为了保持一致性,建议在定义表名和编写SQL语句时始终使用小写,避免因大小写问题引起不必要的困扰。 在开发过程中,特别是涉及跨平台的应用,了解并适当地...

    详解MySQL查询时区分字符串中字母大小写的方法

    MySQL默认的行为是不区分字符串中的字母大小写,这可能会在某些场景下引起困扰,比如在需要严格区分大小写的数据库操作中。以下是对这一主题的详细解释。 首先,字符集是用于表示和存储文本数据的编码方式,如UTF-8...

    数据库建表快捷转换大小写.rar

    3. **SQL语句中的大小写**:在编写SQL语句时,虽然数据库系统可能不区分大小写,但推荐始终使用大写关键字(如`SELECT`, `FROM`, `WHERE`等),而将表名和列名设置为小写或统一的命名约定,以提高代码的可读性。...

    MySql下实现查询表名不区分大小写

    在Linux系统中,默认情况下,MySQL是严格区分大小写的,这与Windows环境下的行为形成鲜明对比,后者默认不区分大小写。本文将深入探讨如何在Linux下通过修改MySQL配置,使查询操作中表名的大小写变得不敏感。 ### ...

    MySQL中玩转字母大小写问题

    如果未来可能将此数据库移植到一个不区分大小写的环境中,如Windows系统下,那么这两个表将被视为同一个表,从而可能导致数据丢失或混淆的问题。 - 为了避免这类问题,建议采用一致的命名约定,如统一使用小写字母...

    MySQL数据库应用与开发实训报告.doc

    在数据库管理中,可以改变数据库的字符集和校对规则,例如将数据库字符集更改为gb2312,使其支持简体中文且不区分大小写。此外,还可以通过相关SQL语句查询数据库的结构信息,了解其内部构成。 接下来是【表及数据...

    MySQL数据库:数据库的管理SQL语句.pptx

    MySQL支持多种字符集,如`utf8`(Unicode)和`latin1`(西欧字符集),常见的校对规则有`utf8_general_ci`(大小写不敏感)和`utf8_bin`(区分大小写)。 了解并熟练掌握这些基本的数据库管理SQL语句对于MySQL...

    黑马程序员 数据库MYSQL.docx

    黑马程序员 MySQL 数据库知识点大全 1.1 数据库概述 * 数据库是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库...* MySQL 数据库的 SQL 语句不区分大小写,建议使用大写

    mysql表名忽略大小写配置方法详解

    在Linux系统中,默认情况下MySQL是区分大小写的,而在Windows系统中则通常是不区分大小写的。对于开发者来说,保持一致性是至关重要的,特别是在跨平台的应用中。本文将详细介绍如何在MySQL中配置表名忽略大小写,...

    MySQL数据库查询中的like问题.pdf

    这是因为 MySQL 数据库的SQL语句中不区分大小写字母,同时MySQL数据库的设计主要是对单字节英语、德语等西文的单字节数据提供支持,对双字节数据提供的支持不够。 例如,在执行以下查询语句时,会出现多余数据的...

    mysql数据库优化(全)

    - 查询缓冲区分大小写。例如,`SELECT * from TABLE1`与`SELECT * FROM TABLE1`被视为不同的查询。 - 查询缓冲不自动处理空格,建议减少SQL语句中的空格使用,特别是在开头和结尾处。 - 对于需要实时查询的数据...

Global site tag (gtag.js) - Google Analytics