SQL點滴34 SQL中的大小寫

2021-09-09 01:18:59 字數 1300 閱讀 7678

原文:sql點滴34—sql中的大小寫

預設情況下,sql server不區分大小寫,如果資料表test的tname列中有資料「abcd」和「abcd」, 如果使用查詢語句:select * from test  where  tname  like 'a%',則查詢的結果會把上面的兩條記錄都查詢出來,這一點上和oracle有區別.

可以通過設定排序規使其區分大小寫,可以分別在建立資料庫、修改資料庫、建立表的字元型列(char\varchar\nchar

\nvarchar等)時指定排序規則來實現。如

create database test  collate  chinese_prc_cs_as   --這樣建立的資料庫中區分大小寫

alter database test  collate  chinese_prc_cs_as   --修改後的資料庫中區分大小寫

create table test(tid int primary key,tname varchar(20) collate chines_prc_cs_as) --這樣建立的tname列在使用select 語句時就可以區分大小寫了。

1.在建立資料庫時,指定要區分大小寫,或者後期再做更改也可以

alter database dbname collate chinese_prc_cs_as

2.在建立表時,指定要區分大小寫,或者後期再做更改也可以

alter table tbname collate chinese_prc_cs_as

3.如果只是想使用一次,不想修改整個表或整個資料庫。

3.1可以在使用時,將查詢或使用到的字段,轉成二進位制形式進行比較就可以了(大小寫的二進位制形式肯定是不一樣的~)

3.2可以在查詢或使用時,指名使用 簡體中文做為資料庫的查詢規則。 指定sql server的排序規則 chinese_prc指的是中國大陸地區,如果是台灣地區則為chinese_taiwan ci指定不區分大小寫,如果要在查詢時區分輸入的大小寫則改為cs as指定區分重音,同樣如果不需要區分重音,則改為ai collate可以針對整個資料庫更改排序規則,也可以單獨修改某乙個表或者某乙個欄位的排序規則,指定排序規則很有用,比如使用者管理表,需要驗證輸入的使用者名稱和密碼的正確性,一般是要區分大小寫的。

使用collate:

select * from 表 where 字段='king' collate chinese_prc_cs_as

或者 轉換為varbinary

select * from 表 where convert(varbinary(1000),字段)=convert(varbinary(1000),'king')

SQL點滴34 SQL中的大小寫

原文 sql點滴34 sql中的大小寫 預設情況下,sql server不區分大小寫,如果資料表test的tname列中有資料 abcd 和 abcd 如果使用查詢語句 select from test where tname like a 則查詢的結果會把上面的兩條記錄都查詢出來,這一點上和ora...

SQL點滴34 SQL中的大小寫

預設情況下,sql server不區分大小寫,如果資料表test的tname列中有資料 abcd 和 abcd 如果使用查詢語句 select from test where tname like a 則查詢的結果會把上面的兩條記錄都查詢出來,這一點上和oracle有區別.可以通過設定排序規使其區分...

SQL區分大小寫

排序規則 alter datebase alter datebase 資料庫 chinese prc bin alter table tb alter column colname nvarchar 100 collate chinese prc ci as 不區分大小寫 alter table t...