PostgreSQL'de KARAKTER DEĞİŞİKLİĞİ ve VARCHAR arasındaki fark nedir?


115

John kullandığım CHARACTER VARYINGyerlerde kullanıyor VARCHAR. O bir uzman olmasına rağmen ben bir acemiyim. Bu bana bilmediğim bir şey olduğunu gösteriyor.

PostgreSQL'de KARAKTER DEĞİŞİKLİĞİ ve VARCHAR arasındaki fark nedir?

Yanıtlar:


129

Varying, varchar için bir takma addır, bu nedenle hiçbir fark yoktur, belgelere bakın :)

Varchar (n) ve char (n) gösterimleri, sırasıyla karakter değişen (n) ve karakter (n) için takma adlardır. uzunluk belirticisi olmayan karakter (1) karakterine eşdeğerdir. Uzunluk belirticisi olmadan karakter çeşitliliği kullanılırsa, tür herhangi bir boyuttaki dizeyi kabul eder. İkincisi bir PostgreSQL uzantısıdır.


9
Bu tam tersi: varchar, çeşitlilik için bir takma addır. Bilgiçlik taslamak istemem, ama tam da sözünüzde var.
zerzevul

2
@zerzevul Biri, dokümantasyona katılmayabilir ve burada Charles ile aynı fikirde olabilir varchar(n), v.b. ANSI standartlarıdır ve bu sözdizimi PostgreSQL'e özgüdür.
BobRodes


4

Tek fark, CHARACTER VARYING'in VARCHAR'dan daha insan dostu olmasıdır.


1
@joop COBOL'e maruz kalma ayrıcalığına sahip değildim ama İngilizceye maruz kaldım ve "VARCH ARe what?" :-)
inor

8
Üstelik üst düzey programcıların
kafasını

3

Her ikisi de aynı şeydir, ancak veritabanlarının çoğu, esas olarak postgreSQL'in sağladığı değişken karakterleri sağlamamaktadır. Dolayısıyla, Oracle Postgre ve DB2 gibi çoklu veritabanı için Varchar'ı kullanmak iyidir


2

Kısa cevap: hiçbir fark yok.

Uzun cevap: CHARACTER VARYINGTüm uyumlu veritabanlarının desteklemesi gereken ANSI SQL standardının resmi tür adıdır. VARCHARtüm modern veritabanlarının da desteklediği daha kısa bir takma addır. Daha VARCHARkısa olduğu ve uzun adı bilgiçlik tasladığı için tercih ederim . Ancak, postgres araçları beğenir pg_dumpve \dçıktı verir character varying.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.