Apa perbedaan antara CHARACTER VARYING dan VARCHAR di PostgreSQL?

115

John menggunakan CHARACTER VARYINGdi tempat-tempat yang saya gunakanVARCHAR . Saya seorang pemula, sedangkan dia adalah seorang ahli. Ini menunjukkan kepada saya bahwa ada sesuatu yang tidak saya ketahui.

Apa perbedaan antara CHARACTER VARYING dan VARCHAR di PostgreSQL?

Léo Léopold Hertz 준영
sumber

Jawaban:

129

Varying adalah alias untuk varchar, jadi tidak ada perbedaan, lihat dokumentasi :)

Notasi varchar (n) dan char (n) adalah alias untuk karakter yang bervariasi (n) dan karakter (n). karakter tanpa penentu panjang sama dengan karakter (1). Jika variasi karakter digunakan tanpa penentu panjang, tipe menerima string dalam berbagai ukuran. Yang terakhir adalah ekstensi PostgreSQL.

Charles Ma
sumber
9
Sebaliknya: varchar adalah alias untuk variasi. Bukan untuk menjadi sombong, tapi itu ada di kutipan Anda.
zerzevul
2
@zerzevul Orang mungkin tidak setuju dengan dokumentasi dan setuju dengan Charles di sini, mengingat itu varchar(n) , dll. adalah standar ANSI dan sintaks ini khusus untuk PostgreSQL.
BobRodes
4

Satu-satunya perbedaan adalah CHARACTER VARYING lebih ramah manusia daripada VARCHAR

inor
sumber
1
@joop Saya belum memiliki hak istimewa untuk diekspos ke COBOL tetapi saya telah terkena bahasa Inggris dan saya pikir "VARCH ARe apa?" :-)
Inor
8
Selain saya pikir itu membingungkan programmer top;) Mereka terbiasa varchar
manocha_ak
3

Keduanya adalah hal yang sama tetapi banyak dari database tidak menyediakan berbagai karakter yang terutama disediakan oleh postgreSQL. Jadi untuk multi database seperti Oracle Postgre dan DB2 ada baiknya menggunakan Varchar

Daya Shanker
sumber
2

Jawaban singkatnya: tidak ada perbedaan.

Jawaban panjangnya: CHARACTER VARYINGadalah nama tipe resmi dari standar ANSI SQL, yang harus didukung oleh semua database yang sesuai. VARCHARadalah alias yang lebih pendek yang juga didukung oleh semua database modern. Saya lebih suka VARCHARkarena lebih pendek dan karena nama yang lebih panjang terasa berlebihan. Namun, alat postgres menyukai pg_dumpdan \dakan mengeluarkan character varying.

Gordon Hopper
sumber