İSİM¶
CREATE DOMAIN - yeni bir veri alanı tanımlar
KULLANIM¶
CREATE DOMAIN isim [AS] veri_türü
[ DEFAULT ifade ]
[ kısıt [ ... ] ]
burada kısıt:
[ CONSTRAINT kısıt_ismi ]
{ NOT NULL | NULL | CHECK (ifade) }
AÇIKLAMA¶
CREATE DOMAIN yeni bir veri alanı tanımlar. Yeni veri
alanını tanımlayan kullanıcı o veri
alanının sahibi olur.
Eğer bir şema ismi belirtilmişse (
CREATE DOMAIN
myschema.mydomain ... gibi) veri alanı bu şema içinde
oluşturulur. Aksi takdirde geçerli olan şemada
oluşturulur. Veri alanının ismi şemanın mevcut veri
alanları ve veri türleri arasında eşsiz
olmalıdır.
Veri alanları bakım kolaylığı bakımından
tablolar arasında ortak alanları tek bir yerle soyutlamak için
yararlıdır. Örneğin eposta adresi sütunu
çeşitli tablolarda hepsi aynı özelliklerle
kullanılabilir. Bir veri alanı tanımlayıp her tablonun
kısıtlarını ayrı ayrı ayarlamaktan
kurtulabilirsiniz.
PARAMETRELER¶
- isim
- Oluşturulacak veri alanının ismi (şema
nitelemeli olabilir).
- veri_türü
- Veri alanının veri türü; dizi
belirteçleri içerebilir.
- DEFAULT ifade
- Veri alanının kullanıldığı
sütunlar için bir öntanımlı değer belirtir.
Değer herhangi bir ifade olabilir (altsorgulara izin verilmez).
Öntanımlı ifadenin veri türü, veri
alanının veri türü ile aynı olmalıdır.
Bir öntanımlı değer belirtilmezse, NULL
öntanımlı olur.
Öntanımlı ifade, sütun için değer
belirtilmeyen veri girme işlemlerinde kullanılacaktır. Bir
sütun için bir öntanımlı değer zaten varsa,
veri alanının öntanımlısı değil, bu
öntanımlı kullanılır. Ancak, bir sütunun
veri türünün öntanımlısı değil,
veri alanının öntanımlısı
kullanılır.
- CONSTRAINT kısıt_ismi
- Bir kısıtın isteğe bağlı
ismi. Belirtilmezse, sistem bir isim üretecektir.
- NOT NULL
- Veri alanı değerinin NULL
olamayacağını belirtir.
- NULL
- Veri alanı değerinin NULL olabileceğini
belirtir. Bu öntanımlıdır.
Bu sözcük standartdışı SQL veritabanları ile
uyumluluk için vardır. Yeni uygulamalarda kullanılmasa daha
iyi olur.
- CHECK (ifade)
- Doğruluk kısıtlarını ya da veri
alanı değerlerinin sağlaması gereken
sınamaları belirtmek için kullanılır. Her
kısıt bir mantıksal sonuç üreten bir ifade
olmalıdır. Sınanacak değeri belirtmek için isim
olarak VALUE kullanılmalıdır.
Şimdilik, CHECK ifadeleri altsorgular içerememekte ve ifade
içinde VALUE dışında değişken
belirtilememektedir.
ÖRNEKLER¶
Bu örnekte us_postal_code veri alanı oluşturulmakta ve bu alan
bir tablo tanımında kullanılmaktadır. Değerin
geçerli bir US posta kodu olup olmadığı bir düzenli
ifade ile sınanmaktadır.
CREATE DOMAIN us_postal_code AS TEXT
CHECK(
VALUE ~ '^\d{5}$'
OR VALUE ~ '^\d{5}-\d{4}$'
);
CREATE TABLE us_snail_addy (
address_id SERIAL NOT NULL PRIMARY KEY
, street1 TEXT NOT NULL
, street2 TEXT
, street3 TEXT
, city TEXT NOT NULL
, postal us_postal_code NOT NULL
);
UYUMLULUK¶
CREATE DOMAIN SQL standardıyla uyumludur.
İLGİLİ BELGELER¶
ALTER DOMAIN [
alter_domain(7)],
DROP DOMAIN [
drop_domain(7)].
ÇEVİREN¶
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>,
Nisan 2005