Thursday, March 17, 2011

Data Collation

Collation adalah seperangkat aturan untuk menyimpan, menyortir, dan membandingkan data teks.Collation mempengaruhi operasi database yang paling. Collation dapat mempengaruhi hasil query,kemampuan untuk data impor dan ekspor, serta cadangan dan mengembalikan operasi .

Collation Sebuah mendefinisikan pola bit yang mewakili setiap karakter dalam data set.
Biasanya, nama collation dimulai dengan mengatur bahasa atau karakter, misalnya Latin1_, Thai100_, Arabic100_. Kolasi juga mendefinisikan aturan berikut tentang perbandingan data dan pengurutan:
  • Case sensitivity : pilihan ini mendefinisikan jika perbandingan atau semacam ini terjadi sensitif. Misalnya, perbandingan case sensitive 'Mobil' = 'mobil'. akan menghasilkan dengan benar, Bila diurutkan, 'mobil' akan selalu datang sebelum 'Mobil'.
  • Accent sensitivity: Opsi ini mendefinisikan jika perbandingan itu aksen sensitif. Sebagai contoh, dalam sebuah perbandingan aksen sensitif 'Valentine' tidak akan sama dengan 'Valentine'.
  • Kanatype sensitivity : Opsi ini mendefinisikan jika perbandingan sensitif terhadap jenis karakter kana Jepang digunakan. Dua jenis karakter kana yang tersedia: Hiragana dan Katakana. Ketika sebuah perbandingan kana-insensitive, SQL Server akan mempertimbangkan Hiragana setara dan karakter Katakana yang setara untuk kepentingan pengurutan.
  • Width sensitivity : Opsi ini mendefinisikan jika dibandingkan memperlakukan karakter digambarkan sebagai sebuah byte tunggal sebagai setara dengan karakter yang sama direpresentasikan sebagai byte ganda.
CREATE DATABASE ExampleDB2
COLLATE Latin1_General_CS_AS
GO
USE ExampleDB2
GO
CREATE TABLE TeamMembers
(MemberID int PRIMARY KEY IDENTITY,
MemberName nvarchar(50) COLLATE Latin1_General_CI_AI)
GO
INSERT TeamMembers(MemberName)
VALUES
(N'Valentine'),
(N'Peter'),
(N'Matthéw'),
(N'valentine'),
(N'Matthew')
GO


SELECT * FROM TeamMembers ORDER BY MemberName
-- Results:
-- MemberID MemberName
-- ----------- --------------------------------------------------
-- 3 Matthéw
-- 5 Matthew
-- 2 Peter
-- 1 Valentine
-- 4 valentine

SELECT * FROM TeamMembers ORDER BY MemberName COLLATE Latin1_General_CS_AS
-- Results:
-- MemberID MemberName
----------- --------------------------------------------------
-- 5 Matthew
-- 3 Matthéw
-- 2 Peter
-- 4 valentine
-- 1 Valentine

SELECT * FROM TeamMembers WHERE MemberName = 'Matthew'
-- Results:
-- MemberID MemberName
-- ----------- --------------------------------------------------
-- 3 Matthéw
-- 5 Matthew





No comments:

Post a Comment