Sql Komutlarından İndex Oluşturma Ve Faydaları, Myadminde Gösterimi
Index Oluşturmanın Amacı
Bir index, veri tabanı ortamında bir tablo ya da bir view gibi bir nesnedir ve ilişkili olarak kullanıldığı tablo ya da view’deki satırların, indexleme alanı (key field (anahtar alan)) olarak kullanılan kolondaki verilere göre sıralanmış biçimde işleme sokulmasını (listeleme ya da arama işlemi) sağlar.
Index Yaratma
CREATE INDEX index adı
ON tabloadı (kolonadı 1,kolonadı 2,....,kolonadı n );
Indexleme artan (ascending) ya da azalan (decending) şeklinde olabilir. Artan, alfabetik olarak A’dan Z’ye nümerik olarak küçükten büyüğe şeklindedir. Azalan ise bunun tersidir. Hiçbir özel sözcük kullanılmazsa indexleme artan sayılır ya da alan adının yanında bir boşluktan sonra ASC sözcüğü kullanılırsa bu alana göre artan sıralama yapılacak demektir.
Tek bir alana göre artan sırada indexleme
CREATE INDEX pers_maas
ON Personel (maas);
Index created 127 Rows
127 satırlık personel tablosu ile ilişkili olarak maas alanına index anahtarı olarak kullanılan pers_maas adlı index oluşturulmuştur. Bu durumda
SELECT *
FROM Personel;
şeklindeki listeleme komutu sonucunda, personel tablosundaki tüm personel, maaşlarına göre sıralı olarak listelenecektir.
Tek bir alana göre azalan sırada indexleme
CREATE INDEX pers_maas
ON Personel (maas DESC);
Birden fazla alana göre indexleme
İşletmedeki personelin öncelikle adlarına göre, aynı ad da olanların soyadlarına göre, hem adı hem soyadı aynı olanların maaşlarına göre sıralanmış olarak listelenmesi istenirse aşağıdaki komut kullanılmalıdır:
CREATE INDEX p_ad_soy_m
ON Personel (ad,soyad,maas);
Bu durumda;
SELECT *
FROM Personel;
komutu sonucunda, aşağıdaki şekilde sıralanmış tablo görüntülenecektir.
sicil ad soyad maas
11117 Ahmet Caner 15000000 .......
247 Ahmet Deniz 27000000 .......
645 Ahmet Zoran 12000000 .......
3871 Ali Cenker 26000000 .......
15372 Ali Cenker 34000000 .......
4246 Ali Cenker 65000000 .......
16656 Ali Şener 12000000 .......
7216 Beril Arkan 18000000 .......
....... ....... ....... .......
Burada, kolayca görüleceği gibi personel öncelikle adı alanına göre sıralanmış (Ahmet, Ali, Beril) aynı ada sahip olanlar soyadlarına göre sıralanmış (Ahmet ismindeki kişilerin soyadları olan Caner, Deniz, Zoran sıralaması gibi), hem ad hem de soyadları aynı olanların sıralanmasında ise maas alanı dikkate alınmıştır.
Index komutu;
CREATE INDEX p_ad_soy_m
ON Personel (ad,soyad,maas DESC);
şeklinde yazılsa idi, tablodaki değerler
sicil ad soyad maas
11117 Ahmet Caner 15000000 .......
247 Ahmet Deniz 27000000 .......
645 Ahmet Zoran 12000000 .......
3871 Ali Cenker 65000000 .......
15372 Ali Cenker 34000000 .......
4246 Ali Cenker 26000000 .......
16656 Ali Şener 12000000 .......
7216 Beril Arkan 18000000 .......
....... ....... ....... .......
•
•
DROP INDEX F0001D0001TBLYANSIT._WA_SYS_ORAN_03C67B1A