Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)



Benzer belgeler
Veri Tabanı Hafta Dersi

Mysql Veritabanı Komutları

SQL Komutları (2) Uzm. Murat YAZICI

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

YAPISAL SORGULAMA DİLİ (SQL)

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

ACCESS PLATFORMUNDA SQL

SQL Kod ile Tablo Oluşturma

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

BMB202. Veritabanı Yönetimi Ders 6. SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

VERİTABANI Veritabanı Yönetimi

Bölüm 4: DDL Veri Tanımlama Dili

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

VERİTABANI. SQL (Structured Query Language)

Oracle da kullanılan veri tipleri:

SQL NEDİR?... 4 Transact-SQL... 4 SQL Veri İşleme Dili (Data Manipulation Language-DML)... 4 SQL Veri Tanımlama Dili (Data Definition

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210)

SQL e Giriş. Uzm. Murat YAZICI

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

Emrah UYSAL 1

«BM364» Veritabanı Uygulamaları

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

VERİTABANI ve YÖNETİMİ

Veritabanı. SQL (Structured Query Language)

Veritabanına Uygulanması

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

Transact-SQL SQL NEDİR? Transact-SQL. SQL Veri İşleme Dili (Data Manipulation Language-DML) SQL Veri Tanımlama Dili (Data Definition Language-DDL)

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

SORGULAR. Öğr.Gör.Volkan Altıntaş

1 - Adi A Harfi İle Biten Kişilerin Listesi İçin Hangisi Kullanılmalıdır? Select * From Kisiler Where Adi End A Select * From Kisiler Where Adi Like

SORGULAR VE ÇEŞİTLERİ II

VERİTABANI Veritabanı Sorgulama

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

Creating Tables in Oracle

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

VERİ TABANI YÖNETİM SİSTEMLERİ I

Veritabanı Yönetim Sistemleri İleri SQL

Veri Tabanı-I 9.Hafta

Veri Tabanı Programlamaya Giriş

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

Veritabanı Tasarımı. Tablo Değiştirme

1. Araçların tüm bilgilerini ve bağlı oldukları kiralama noktasının adres ve telefonunu içeren tam listesi:

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

EROL AKGÜL

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Veri Tabanı Tasarım ve Yönetimi

Unutulmuş Özellikler: Oracle Veritabanına Yaptığınız Yatırımı Sonuna Kadar Kullanın

Durhan GABRALI Veritabanı Organizasyonu Dersi (11B)

Oracle Database 11g: Introduction to SQL

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim) -16 Mart 2014 A

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim)-16 Mart 2014 B

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

Gruplama (aggregate) fonksiyonları bir dizi değer üzerinde hesaplama yaparlar ve bir sonuç

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) İlişkisel Veritabanı Modeli

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

MSSQL. 4. Hafta Uygulama - 1 BPR255 Veritabanı CREATE DATABASE OKUL GO USE OKUL GO

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

Laboratuvar 6 TABLOLAR VE KISITLAR

KISITLAMALAR (CONSTRAINT)

1 ORACLE 11G DATABASE SERVER LE

BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

Bilgisayar Uygulamaları. MySql

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır.

- Tablo (Table):Veri saklama için temel yapıdır. Bir veya daha fazla sütundan ve sıfir veya daha fazla satırdan oluşur.

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

08221 Veri Tabanı II. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Hafta IV. Öğr. Gör. Murat KEÇECĠOĞLU

MT487_2005guz_final_cevaplar (cevaplar vurgulu ve koyu yazılmıştır)

2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir?

VİEW (SANAL TABLO) 1. View Nedir? 2. View ler ile Çalışmak 3. View Oluşturmanın Yararları Veri güvenliği; Birim dönüştürmeleri;

COMMIT: Oluşturulan transaction işlemi başarılı bir şekilde gerçekleştiğinde yapılan değişikliklerin veritabanına kalıcı olarak aktarılmasıdır.

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

ÜNİTE 8 SQL Dili ve T-SQL Uygulamaları

Liquibase ile Veri Tabanı Değişiklik Yönetimi

Transkript:

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

Konular Yapısal SQL Komutları Gruplama İşlemi SQL Fonksiyonları Kaynaklar 2

SQL (Structured Query Language) SQL Carlos Coronel, Steven Morris, and Peter Rob, Database Systems: Design, Implementation, and Management, sayfa 8. SQL Fonksiyonları 2 bölüme ayrılabilir: Data definition language (DDL) (Yapısal Komutlar) Veritabanı/tablo/ilişki v.s. oluşturma/değiştirme/silme v.s. Data Manipulation Language (DML) (Veri ekleme/silme/güncelleme/sorgulama v.s. komutları) 3

Yapısal SQL Komutları (DDL) CREATE DATABASE Veritabanı oluşturmak için kullanılır. CREATE DATABASE dbname; CREATE DATABASE "OnlineStore1" ENCODING='UTF-8' LC_COLLATE='tr_TR.UTF-8' LC_CTYPE='tr_TR.UTF-8 OWNER postgres TEMPLATE=template0; CREATE SCHEMA Şema oluşturmak için kullanılır. CREATE SCHEMA schemaname; CREATE SCHEMA sema3; 4

CREATE Table Tablo oluşturmak için kullanılır. CREATE TABLE "public"."urunler" ( "urunno" INTEGER DEFAULT nextval('sequence1'), "kodu" Char( 6 ) NOT NULL, "adi" Varchar( 40 ) NOT NULL, "uretimtarihi" Date DEFAULT '2000-01-01', "birimfiyati" Money, "miktari" SmallInt DEFAULT '0', CONSTRAINT "urunlerpk" PRIMARY KEY ( "urunno" ), CONSTRAINT "urunlerunique1" UNIQUE( "kodu" ), CONSTRAINT "urunlercheck1" CHECK(miktari >= 0) ); 6

Veri Tipleri http://www.postgresql.org/docs/9.3/static/datatype.html http://www.tutorialspoint.com/postgresql/postgresql_data_typ es.htm 7

Sequence CREATE SEQUENCE "sequence1"; ALTER SEQUENCE sequence1 OWNED BY "Urunler"."urunNo"; --Urunler tablosundaki UrunNo alanı yok edildiğinde sequence de yok edilsin diye... select nextval('sequence1') insert into "Urunler" ("kodu","adi","birimfiyati","uretimtarihi","miktari") values('14','12','13','1.1.2000',5) 8

SQL KISITLARI (CONSTRAINTS) Veri bütünlüğünün korunmasına yardımcı olurlar CREATE DATABASE dbname; NOT NULL Bu kısıt tanımlandığı alanın boş olamayacağını belirtir. CREATE TABLE PersonsNotNull ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) 9

UNIQUE Unique kısıtı tanımlandığı alandaki verilerin tekil,benzersiz olmasını sağlar. CREATE TABLE PersonsUniqueMulti ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT uc_personid UNIQUE (P_Id,LastName) ) Varolan tabloya benzersiz alanlar eklemek için aşağıdaki komut kullanılır. ALTER TABLE "SiparisDetay" ADD CONSTRAINT «urunsiparisunique" UNIQUE ("urunno","siparisno"); Varolan tablodaki benzersiz alanları kaldırmak için aşağıdaki komut kullanılır. ALTER TABLE Persons DROP CONSTRAINT uc_personid 10

PRIMARY KEY Primary key kısıtı tanımlandığı alan için verilerin her kayıtta farklı olacağını belirtir. Tabloda unique ve not null tanımlanır. CREATE TABLE PersonsUnique ( P_Id int, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT PK_PersonID PRIMARY KEY(P_ID)) Varolan tabloya primary key eklemek için aşağıdaki komut kullanılır. ALTER TABLE Persons ADD CONSTRAINT PK_PersonID PRIMARY KEY(P_ID) Varolan tablodan primary key kaldırmak için aşağıdaki komut kullanılır. ALTER TABLE Persons DROP CONSTRAINT PK_PersonID 11

FOREIGN KEY tablolar arasındaki ilişkileri tanımlayan bir kısıttır. CREATE TABLE Orders ( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, CONSTRAINT FK_PID FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) ) Varolan tabloya yabancı anahtar eklemek için aşağıdaki komut kullanılır. ALTER TABLE Orders ADD CONSTRAINT FK_PID FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) Varolan tablodan yabancı anahtar kaldırmak için aşağıdaki komut kullanılır. ALTER TABLE Orders DROP CONSTRAIN FK_PID 12

CHECK Check tablodaki sütun için değer aralığını sınırlamada kullanılır. CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT CH_PID CHECK (P_Id>0) ) Varolan tablodaki sütuna Check kısıtını eklemek için aşağıdaki komut kullanılır. ALTER TABLE Persons ADD CONSTRAINT CH_PID CHECK (P_Id>0) Varolan tablodan check kısıtını kaldırmak için aşağıdaki komut kullanılır. ALTER TABLE Persons DROP CONSTRAINT CH_PID 13

DEFAULT Default tanımlandığı alana bir değerin girilmemesi durumunda alana sabit varsayılan bir değerin atanmasını sağlayan kısıtlamadır. CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) DEFAULT 'Sandnes' ) Varolan tablodaki sütuna Default kısıtını eklemek için aşağıdaki komut kullanılır. ALTER TABLE Persons ALTER City SET DEFAULT 'SANDNES' Varolan tablodan Default kısıtını kaldırmak için aşağıdaki komut kullanılır. ALTER TABLE Persons ALTER City DROP DEFAULT 14

CREATE INDEX Tabloyu indekslemek için kullanılır. İndeks veritabanındaki tabloda bulunan bütün verileri kontrol etmeden, verilere daha hızlı ulaşmamızı sağlar. Aşağıdaki komut Persons tablosundaki Lastname sütununu indeksler. CREATE INDEX PIndex ON Persons (LastName) DROP TABLE Tabloyu silmek için kullanılır. DROP TABLE table_name DROP DATABASE Veritabanını silmek için kullanılır. DROP DATABASE database_name 15

TRUNCATE TABLE Tablonun kendisini silmeden içindeki verileri silmek için kullanılır. TRUNCATE TABLE table_name ALTER TABLE Varolan tablodaki sütunlara ekleme,silme,düzelme işlemi yapmak için kullanılır. Tabloya sütun eklemek için: ALTER TABLE table_name ADD column_name datatype Tablodan sütun silmek için: ALTER TABLE table_name DROP COLUMN column_name 16

ALTER TABLE Persons tablomuz: Tabloya DateOfBirth sütununu eklemek için aşağıdaki SQL kullanılır: ALTER TABLE Persons ADD DateOfBirth date DateOfBirth sütununun veri tipini değiştirmek için aşağıdaki SQL kullanılır: ALTER TABLE Persons ALTER COLUMN DateOfBirth year 17

ALTER TABLE Persons tablosundaki DateOfBirth sütununu silmek için aşağıdaki SQL kullanılır: ALTER TABLE Persons DROP COLUMN DateOfBirth Yukarıdaki SQL kullanılırsa Persons tablosu aşağıdaki gibi olur. 18

CREATE VIEW Sanal tablo oluşturmak için kullanılır. CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition Create view örnekleri: CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName FROM Products WHERE Discontinued=No CREATE VIEW [Products Above Average Price] AS SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products) CREATE VIEW [Category Sales For 1997] AS SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales FROM [Product Sales for 1997] GROUP BY CategoryName 19

UPDATING VIEW Güncellemek için: CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition Örnek: CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName,Category FROM Products WHERE Discontinued=No DROPING VIEW Silmek için: DROP VIEW view_name 20

NULL VALUES Defaultta tablo sütunları null değerleri tutar. Tablodaki sütunlar optional ise varolan veriler üzerinde silme ve güncelleme işlemi yapabiliriz. Sütundaki verilere Null değerler verebiliriz. Null değerleri =,<,>,<> gibi karşılaştırma operatorleri ile test edemeyiz.bunun yerine IS NULL ve IS NOT NULL kullanılır. IS NULL Aşağıdaki SQL adresi NULL olan değerleri döndürür. SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NULL 21

IS NOT NULL Aşağıdaki SQL adresi NULL olmayan değerleri döndürür. SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NOT NULL NULL FONKSİYONLARI IS NULL() Aşağıdaki SQL sorgusunun sonucu NULL dönecektir,çünkü UnitsOnOrder sütununda NULL değer vardır.(herhangi birinin NULL olması Sorgu sonucunu NULL döndürür.) SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder) FROM Products 22

SQL FONKSİYONLARI ÇOKLU SATIR FONKSİYONLARI Bir sütundaki tüm satırlara uygulanırlar,bir hesap yapıp geriye tek bir değer döndürürler. AVG() Tüm kayıtların ortalamasını döndürür. Products tablomuz: Aşağıdaki SQL Products tablosundaki Price sütunun ortalamasını döndürür. SELECT AVG(Price) AS PriceAverage FROM Products; 23

SQL FONKSİYONLARI ÇOKLU SATIR FONKSİYONLARI AVG() Aşağıdaki SQL ortalamanın üzerindeki Price değerlerinin Productname ve Price değerlerini döndürür. SELECT ProductName, Price FROM Products WHERE Price>(SELECT AVG(Price) FROM Products); 24

SQL FONKSİYONLARI ÇOKLU SATIR FONKSİYONLARI COUNT () Count Fonksiyonu ile oluşturduğumuz sorgunun ürettiği satır sayısı bulunur ve geriye döndürülür. Eğer COUNT fonksiyonunu sadece bir sütun için uygulanırsa NULL olmayan kayıtların sayısı bulunur. SELECT COUNT(CustomerID) AS OrdersFromCustomerID7 FROM Orders WHERE CustomerID=7; 25

SQL FONKSİYONLARI ÇOKLU SATIR FONKSİYONLARI COUNT () Aşağıdaki SQL Orders tablosundaki kayıtların sayısını döndürür. SELECT COUNT(*) AS NumberOfOrders FROM Orders; Aşağıdaki SQL Orders tablosundaki tekrar etmeyen kayıtların sayısını döndürür. SELECT COUNT(DISTINCT CustomerID) AS NumberOfCustomers FROM Orders; 26

SQL FONKSİYONLARI ÇOKLU SATIR FONKSİYONLARI TOP() Seçilen sütundaki ilk x satıra (order by DESC ile son x satıra) ulaşmak için kullanılır. SELECT TOP 1 (CustomerName) AS FirstCustomer FROM Customers; 27

SQL FONKSİYONLARI ÇOKLU SATIR FONKSİYONLARI MAX() Seçilen sütundaki en büyük değere ulaşmak için kullanılır. SELECT MAX(Price) AS HighestPrice FROM Products; MIN () Seçilen sütundaki en küçük değere ulaşmak için kullanılır. SELECT MIN(Price) AS SmallestOrderPrice FROM Products; 28

SQL FONKSİYONLARI ÇOKLU SATIR FONKSİYONLARI SUM () Seçilen sütundaki tüm kayıtların toplamı hesaplanıp geri döndürülür. SELECT SUM(Quantity) AS TotalItemsOrdered FROM OrderDetails; 29

GROUP BY Sorgu sonucunu belirtilen alan(lar)a göre gruplar. Aşağıdaki sorgu Ürünleri kategorilerine göre gruplar ve kategorilerdeki ürünlerin birim fiyatlarının toplamını kategori adıyla birlikte döndürür. SELECT CategoryName, SUM(UnitPrice) FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID Group by CategoryName Seçilecek alan gruplama yapılan alan ya da çoklu satır fonksiyonları olmalı Gruplanan alanla ilgili koşul yazılabilmesi için Having kullanılması gereklidir. 30

GROUP BY Veri grupları üzerinde işlem yaparak her grup için bir sonuç üreten fonksiyondur. Çoklu Satır Fonksiyonları ile birlikte kullanılır. Shippers tablomuz: Orders tablomuz: Employees tablomuz: 31

GROUP BY Aşağıdaki SQL ShipperName sütununa göre OrderID sayısını hesaplar. SELECT Shippers.ShipperName,COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders LEFT JOIN Shippers ON Orders.ShipperID=Shippers.ShipperID GROUP BY ShipperName; SELECT Shippers.ShipperName, Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders FROM ((Orders INNER JOIN Shippers ON Orders.ShipperID=Shippers.ShipperID) INNER JOIN Employees ON Orders.EmployeeID=Employees.EmployeeID) GROUP BY ShipperName,LastName; 32

HAVING Gruplandırılmış verilerde filtreleme amaçlı kullanılır. Çoklu satır fonksiyonlarıyla birlikte WHERE ifadesi kullanılmaz,onun yerine HAVING kullanılır. Employees tablomuz: Orders tablomuz: SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders FROM (Orders INNER JOIN Employees ON Orders.EmployeeID=Employees.EmployeeID) GROUP BY LastName HAVING COUNT(Orders.OrderID) > 10; 33

HAVING SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders INNER JOIN Employees ON Orders.EmployeeID=Employees.EmployeeID WHERE LastName='Davolio' OR LastName='Fuller' GROUP BY LastName HAVING COUNT(Orders.OrderID) > 25; 34

Kaynaklar http://www.postgresql.org/docs/9.3/static/datatype.html http://www.tutorialspoint.com/postgresql/postgresql_data_types.htm http://www.w3schools.com/sql 35