Koçbey Forum Sayfası
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Veritabanı Nesneleriyle İlgili Komutlar

Aşağa gitmek

Veritabanı Nesneleriyle İlgili Komutlar Empty Veritabanı Nesneleriyle İlgili Komutlar

Mesaj  Mehmet Çarş. Haz. 04, 2008 11:48 am

CREATE TABLE
Tablo oluşturma komutunu anlatırken bir örnekle başlayalım.
CREATE table tbl_ogr
(OgrNum NUMBER(11) NOT NULL,
Ad VARCHAR2(15),
Soyad VARCHAR2(15),
Dogyer NUMBER(2),
CONSTRAINT cst_OgrNum PRIMARY KEY(OgrNum)
CONSTRAINT cst_dogyer FOREING key(dogyer) REFERENCES il(ilkod))
Bu komut “tbl_ogr” adında bir tablo oluşturuyor.

Tablonun dört alanı var. Bunlardan biri özel anahtar(Primary Key) olarak tanımlanmış. Bu alanın değeri boş olamaz ve tabloda aynı iki değer bulunamaz. Bir tablo ile başka bir tablo arasında ilişki kurulacaksa bu ana tabloda PRIMARY KEY tanımıyla, diğer tabloda FOREIGN KEY tanımıyla yapılır. Yani doğum yeri alanı için buradaki tablomuz ana tablo değil. Çünkü aynı yerde doğmuş kişİlerin kaydı tablomuzda olabilir. Böylece aynı il kodu birden fazla kayıtta yer alabilir. Ilişki kurulan diğer tablonun adını yukarıdan çıkarabiliriz. Bu tablo “il” isminde. Her il bu tabloda kayıtlı ve her birinin bir kodu var. Bu tabloda bir ilin kaydı iki sütunda yer alamaz. Bu yüzden “ilkodu” alanı “il” tablosu için PRIMARY KEY olarak tanımlanmış.

PRIMARY KEY, NOT NULL gibi bildirimler kısıtlamalar olarak tanımlanır. Bir tabloda farklı şekilde kısıtlamalar yapılabilir. Kısıtlama için kullanılan bildirimler 5 adettir.
NOT NULL : Bu kısıtlamanın konulduğu bir alanın mutlaka bir değeri olmak zorundadır.
UNIQUE : Bu kısıtlamanın konulduğu bir alan bir değerden sadece bir adet içerebilir. Bu kısıtlamaya sahip alan NOT NULL ile tanımlanmadıysa NULL değer alabilir.
PRIMARY : Bu kısıtlama bu alanın özel anahtar olmasını sağlar. Bu alan boş geçilemez ve yine tablo içerisinde bir değer iki kayıtta bulunamaz.
FOREIGN KEY : Bu kısıtlama başka bir tablonun PRIMARY KEY olan alanıyla ilişki kurmak için gerekir.
CHECK : Bu kısıtlama ile birlikte bir şart kullanılır. Tabloya kayıt girilirken değerlerin bu şarta uyması beklenir.

ALTER TABLE
Daha önceden oluşturulmuş bir tablonun yapısını değiştirmek için ALTER TABLE komutu kullanılır.
ALTER TABLE tablo_adı
ADD | MODIFY | DROP (<sütun ismi> veri tipi <sütun kısıtlaması&gt;)
ENABLE ifade1
DISABLE ifade2ALTER komutuyla tablolara yeni bir alan ve kısıtlama eklenebilir, var olan alan ve kısıtlamaların durumu değiştirilebilir veya tablodan kısıtlamalar düşürülebilir. Fakat ALTER komutuyla var olan sütunlar düşürülemez.
Bir alanın değeri büyültülebilir, fakat küçültülemez.
ALTER TABLE tbl_ogr
ADD CONSTRAINT cst_Bolum
FOREIGN KEY(Bolum)
REFERENCES usr_gazi. tbl_bol(BolKod);
Yukarıdaki örnekte tbl_ogr adlı tablonun yapısı değiştiriliyor. Bir başka kullanıcının bir tablosu ile ilişki kuruluyor.
ALTER TABLE tbl_ders
MODIFY dersad varchar2(40);
Bu örnekte de tbl_ders tablosunun bir alanının uzunluğu değiştiriliyor.

DROP TABLE
Daha önceden oluşturulmuş bir tablonun düşürülmesi için kullanılan komuttur. Kullanımı:
DROP TABLE <tablo_ismi> [CASCADE CONSTRAINTS]
Köşeli parantez içerisindeki tanım kullanılırsa master-detay ilişkili tablolarda master tablo düşürülünce detay tabloların da otomatik olarak düşürülmesi sağlanır. Eğer bu seçenek kullanılmazsa diğer tablolarla ilişkisi bulunan bir tablo silinemez. Ancak bu ilişkiler kaldırıldıktan sonra tablo silinebilir.
DROP TABLE tbl_ogr CASCADE CONSTRAINT

CREATE VIEW
Görüntü oluşturmak için bir SELECT cümlesi kullanmak gerekir. Bir görüntü bir ya da daha fazla tablodan oluşturulabileceği gibi, bir başka görüntüden de oluşturulabilir. Aşağıdaki örnekte üç farklı kullanıcının aynı yapıdaki tabloları birleştirilip bir görüntü oluşturuluyor.
CREATE VIEW vi_ogr;
AS SELECT * from usr_esef. tbl_ogr UNION ALLT
SELECT * FROM usr_tef. tbl_ogr UNION ALL;
SELECT * FROM usr_gef. tbl_ogr;

CREATE TABLESPACE
Tablo uzayı kullanıcılara ait olan nesnelerin veritabanında mantıksal olarak tutulduğu yere denmektedir. Bir tablo uzayı oluştururken, bu tablo uzayının verİlerinin hangi veri dosyasına konulacağı ve bu dosyanın dizini ile büyüklüğü bildirilmelidir.
CREATE TABLESPACE tbs_esef
DATAFILE ‘c:\orasql\tbs_esef. dat’ SIZE 10M
DEFAULT STORAGE (INITIAL 10K NEXT 50K
MINEXTENTS 1 MAXEXTENTS 999) ONLINE;
SIZE bildirisi veri dosyasının diskte kaplayacağı yeri belirler. Burada 10M, 5K gibi değerler girilebilir.
INITIAL bildirisi tablo uzayı oluşturulduğunda, ik alacağı genişleme’nin büyüklüğünü belirler. Next tablo uzayı oluşturulduktan sonra alacağı genişlemelerin büyüklüğünü belirler.
MINEXTENTS tablo uzayı oluşturulduğunda ilk olarak alacağı minimum genişleme sayısının belirtildiği bölümdür.
MAXEXTENTS bir tablo uzayının ilk olarak aldığı genişleme de dahil olmak üzere alabileceği maksimum genişleme sayısının belirtildiği bölümdür.

CREATE USER
Kullanıcı veritabanı nesnelerinin sahibidir. Kullanıcılar, nesneleri oluşturur, kullanır ve silerler. Oracle veritabanı ilk kurulduğunda standart olarak üç kullanıcı tanımlanır. Bunlardan bir SYS kullanıcısıdır. SYS kullanıcısı veri sözlüğünün sahibi olan kullanıcıdır. Tüm nesneleri oluşturma hakkına sahiptir ve diğer bütün kullanıcların nesnelerine erişebilir. SYS kullanıcısının ilk şifresi “change_on_install” olarak belirlenmiştir. Ikinci kullanıcı SYSTEM kullanıcısıdır. SYSTEM kullanıcısı veri sözlüğünü kullanma hakkına sahiptir. Önemli nesneleri oluşturma hakkına da sahiptir. Ilk şifresi “manager” olarak belirlenmiştir. Diğer kullanıcıların nesnelerine erişme hakkına da sahiptir. Üçüncü kullanıcı SCOTT kullanıcısıdır. SCOTT kullanıcısı veritabanına başlangıçta yüklenen demo tabloların sahibidir. Bu kullanıcının nesneleri kullanılarak SQL denemeleri yapılabilir.

“CREATE USER” komutunu SYS ve SYSTEM kullanıcıları standart olarak kullanabilir. Bu hak diğer kullanıcılara da verilebilir. Her kullanıcının nesnelerini tutmak için bir tablo uzayı oluşturmak sistemin performansı açısından gerklidir. Kullanıcı oluşturulurken bu tablo uzayı o kullanıcıya atanır.
CREATE USER usr_esef
IDENTIFIED BY esef
DEFAULT TABLESPACE tbs_esef
QUOTA UNLIMITED ON tbs_esef
Yukarıdaki örnekte usr_esef adında bir kullanıcı oluşturuluyor. Kullanıcının şifresi IDENTIFIED BY ile “esef” olarak bildiriliyor. Kullanıcının kendi nesnelerini oluşturacağı tablo uzayı için ise “tbs_esef” tablo uzayı bildiriliyor. Kullanıcının bu tablo uzayındaki tüm alanı kullanabileceği QUOTA UNLIMITED ile belirleniyor.
CREATE ROLE
CREATE ROLECREATE ROLE tabloma_bak
GRANT SELECT ON tbl_ogr TO tabloma_bak
Yukarıdaki örnekte tabloma_bak adında bir rol oluşturuluyor. Daha sonra bu role tbl_ogr tablosu üzerinde listeleme işlemi yapma hakkı veriliyor. Böylece bu rolün atandığı kullanıcı tbl_ogr tablosu üzerinde “SELECT” komutunu çalıştırabilecek.
CREATE INDEX
Daha öncede bahsedildiği gibi indeks tablodaki kayıtlara daha hızlı erişim için kullanılan nesnelerdir. Bir indeks oluşturabilmek için “CREATE ANY INDEX” sistem hakkına sahip olmak gerekir. Indeks bir tablonun bir alanı üzerinde tanımlanabileceği gibi birden fazla alan üzerinde de tanımlanabilir.
CREATE INDEX indeks1 ON tbl_ogr(ogrnum, ad);

CREATE SEQUENCE
Sıra, sıralı olarak artan alanlar için veritabanında tutulan nesnedir. Örneğin birden başlayan ve birer birer artan bir sıra yaratmak için:
CREATE SEQUENCE sira1 START WITH 1 INCREMENT BY 1

CREATE ROLLBACK SEGMENT
Geri alma parçaları SELECT, INSERT, DELETE, UPDATE gibi komutlarla yapılan işlemlerin gerektiğinde geri alınabilmesi için veritabanında ayrılan alanlara denir. “tbsp_esef” tablo uzayını kullanan, kayıt parametrelerinden ilk parçanın büyüklüğü 10M, sonraki genişlemelerin büyüklüğü 1M, minimum genişleme sayısı 2, maksimum genişleme sayısı 121 ve ortalama değeri 30M olan ve ismi “rol_seg” olan bir geri alma parçası şöyle oluşturulabilir:

CREATE ROLLBACK SEGMENT rol_seg
TABLESPCE “tbsp_esef”
STORAGE( INITIAL EXT 1M
INEXTENTS 2
MAXEXTENTS 121
OPTIMAL 30M)
GRANT
GRANT DELETE ON tbl_ogr TO usr_gef;
Yukarıdaki örnekte usr_gef kullanıcısına tbl_ogr tablosunda silme yapma yetkisi verilir.

REVOKE
Sistem ya da nesne haklarının kullanıcılardan veya rollerden geri alınması için kullanılan komuttur.
REVOKE DELETE ON tbl_ogrFROM usr_gef;
Yukarıdaki örnekte usr_gef kullanıcısından tbl_ogr tablosunda silme yapma yetkisi geri alınır.
** Veritabanı nesnelerinin yönetilmesiyle ilgili daha bir çok veri tanımlama dili komutu vardır. Bir nesneyi oluşturmak için “CREATE”, silmek için “DROP”, değiştirmek için “ALTER” komutlarının kullanıldığının bilinmesi diğer komutlar için bir temel teşkil edecektir. Komutlar içerisinde kullanılan parametreler Oracle yardım dokümanlarında ayrıntılı olarak verilmektedir.


Veritabanı Nesneleriyle İlgili Komutlar Banner
Mehmet
Mehmet

Mesaj Sayısı : 120
Kayıt tarihi : 20/05/08

http://www.kocbey.com

Sayfa başına dön Aşağa gitmek

Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz