27 Ocak 2019 Pazar

Sütun Tipleri - Text - Variable Length Standart Olmayan Sütun Tipi

Giriş
PostgreSQL'de metin saklamak için şu tipler kullanılabilir.
- char(n)
- varchar(n)
- varchar
- text

- Bu yazıyla ilgili olarak Sütun Tipleri - varchar yazısına da bakabilirsiniz.
- text tipi standart SQL tipi değildir.

Altta Kullanılan Tip
Açıklaması şöyle
Regardless of whether we choose char, varchar or text , the underlying structure PostgreSQL uses is varlena
varlena için açıklama şöyle
Note: There is no performance difference among these three types, apart from increased storage space when using the blank-padded type and a few extra CPU cycles to check the length when storing into a length-constrained column. While character(n) it has performance advantages in some other database systems, PostgreSQL has no such advantage.  In fact, character(n) it is usually the slowest of the three because of its additional storage costs. In most situations text or character varying should be used instead.

1. Fixed Length Alanlar
char(n) ve varchar(n) belirtilen uzunluğu geçemezler yani fixed length kabul edilirler. char(n) belirtilen uzunluktan daha kısa değerleri blank karakter ile doldurur yani padler.  Fixed Length Alanlar mümkünse tercih edilmemeli. Açıklaması şöyle
A common mistake is to choose a restrictive data type that doesn’t scale in the future. For example: A column containing some string can be of 3 types in PostgreSQL - varchar(n), character(n), text. When choosing the former two, you are restricted to the number of characters you can use. Choosing text type for data is usually harmless and is scalable to accommodate more characters in the future. And if need be, you can add check constraints to restrict data input.
2. Variable Length Alanlar
varchar ve text ise bir uzunluğa sahip değildirler yani variable length kabul edilirler. Açıklaması şöyle.
If you do not specify the n integer for the varchar data type, it behaves like the text data type. The performance of the varchar (without n) and text are the same.
text'in tercih edilmesinin sebebi isminin daha ayırd edici olması. Açıklaması şöyle.
text – for me a winner – over (n) data types because it lacks their problems, and over varchar – because it has distinct name

3. En Büyük Text Alanı
Açıklaması şöyle.
In any case, the longest possible character string that can be stored is about 1 GB.
Örnek
Şöyle yaparız.
CREATE TABLE category
(
  name text NOT NULL,
  ...
)
Örnek
Şöyle yaparız.
create table mytable (
    id INTEGER PRIMARY KEY,
    data TEXT
);
INSERT INTO mytable VALUES
    (0, 'a'),
    (1, 'b'),
    (2, 'c'),
    (3, 'd'),
    (4, 'e'),
    (5, 'f'),
    (6, 'g'),
    (7, 'h'),
    (8, 'i'),
    (9, 'j');

Hiç yorum yok:

Yorum Gönder