PostgreSQL veritabanı notları

PostgreSQL veritabanında çeşitli SQL işlemlerine basit bir Öğrenci veritabanı üzerinden örnekler:

PgAdmin III SQL editöründe aşağıdaki komutları sırasıyla çalıştıralım

1- Veritabanı oluşturma

create database ogrencidb

2 – Tablo Oluşturma
CREATE TABLE ogrenci (
ogrno int,
isim VARCHAR,
soyisim VARCHAR,
girisyili int,
dogumtarihi DATE,
dogumyeri VARCHAR,
PRIMARY KEY(ogrno));


3- Tabloya veri aktarma

1. Yöntem: Dosyadan verileri okuyup tabloya aktarma

      Aşağıdaki verileri C’de

ogr.txt

      adında bir dosyaya kopyalayın:


1 Ali Demir 2007 1994-11-29 Elazig
2 Veli Bakir 2008 1990-01-29 Malatya
3 Cumali Tunc 2009 1991-11-01 Sivas
4 Ayse Bulut 2007 1989-12-11 Istanbul
5 Fatma Kaya 2008 1991-03-23 Kirikkale

Daha sonra şu SQL komutunu çalıştırın:
COPY ogrenci FROM 'C:/ogr.txt';

2.Yöntem: SQL komutları ile veri doldurma

      Her bir veri satırı için SQL editöründe aşağıdaki gibi bir komut çalıştırmak gerekir:


INSERT INTO ogrenci VALUES (1,'Ali','Demir',2007,'1994-11-29','Elazig');
INSERT INTO ogrenci VALUES (2,'Veli','Bakir',2008,'1990-01-29','Malatya');
INSERT INTO ogrenci VALUES (3,'Cumali','Tunc',2009,'1991-11-01','Sivas');

Burada dikkat edilecek nokta, VARCHAR ve DATE tipindeki veriler tek tırnak içerisinde yazılırlar.

4- Verileri sorgulama

 

  • Tablodaki tüm verileri sorgulama:
    select * from ogrenci
  • Adı Ali olan öğrencileri bul:
    select * from ogrenci where isim='Ali'
  • Adı Ali ve giriş yılı 2007 olan öğrencileri listele:
    select * from ogrenci where isim='Ali' and girisyili=2007
  • Tüm öğrencilerin sadece ad ve soyadlarını listele
    select isim, soyisim from ogrenci
  • Öğrencilerin yaşını bulma:
    Öğrencilerin gün olarak yaşını bulabilmek için şu andaki tarihten doğum tarihlerini çıkarmamız gerekir. PostgreSQL şu anki zamanı NOW terimi ile veriyor. Buna göre öğrencilerin yaşlarını now-dogumtarihi ifadesi ile bulabiliriz. Ancak yaşlarını sonuç tablosunda görebilmek için sorgu sonuçlarına yeni bir sanal sütün eklememiz gerekir. Bunu da As anahtar kelimesi ile yapıyoruz:select isim, soyisim, ('now'-dogumtarihi)as yas from ogrenci

    Bu sorguda öğrenci tablosundan isim, soyisim sütünlarını ayrıca öğrenci yaşlarının hesaplanıp bize yas adında bir sütün olarak verilmesini istiyoruz. Sorguyu çalıştırdığımızda isim, soyisim ve öğrencilerin yaşlarının olduğu bir tablo geliyor.

  • Belirli bir yaştan büyük öğrencilerin listelenmesi

 

Önceki örnekte öğrencilerin yaşlarını gün olarak bulmuştuk, yıl olarak yaş hesaplamak için gün sonucunu 365’e bölebiliriz. Buna göre mesela öğrencilerin tüm bilgilerini ve yaşlarını şu şekilde listeleyebiliriz:

select *, ('now'-dogumtarihi)/365 as yas from ogrenci

18 yaşından büyük olan öğrencileri sorgulamak için de yine aynı şekilde:

select * from ogrenci where ('now'-dogumtarihi)/365>18 yazabiliriz

Bu yazı Veritabanı kategorisine gönderilmiş ve , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir