Bir tablodan verileri almak için tablo sorgulanır. Bunun için bir SQL cümlesi olan SELECT kullanılır. Cümle, bir seçim listesi (istenen sütunları içeren bir liste), bir tablo listesi (verilerin alınacağı tabloların listesi) ve isteğe bağlı bir niteleme (sınırlamaların belirtildiği kısım) içerir. Örneğin, weather tablosundaki satırların tamamını almak için şunu yazın:
Burada
*, "tüm sütunlar" anlamına gelen bir kısayoldur.
[83]
Yani, aynı sonuç böyle de alınacaktır:
SELECT city, tmp_lo, tmp_hi, prcp, date FROM weather;
Çıktı şöyle olmalıdır:
city | tmp_lo | tmp_hi | prcp | date
---------------+--------+--------+------+------------
San Francisco | 46 | 50 | 0.25 | 1994-11-27
San Francisco | 43 | 57 | 0 | 1994-11-29
Hayward | 37 | 54 | | 1994-11-29
(3 rows)
Seçim listesinde sadece sütun isimlerini değil, ifadeleri de kullanabilirsiniz. Örnek:
SELECT city, (tmp_hi+tmp_lo)/2 AS tmp_avg, date FROM weather;
Bunun çıktısı şöyle olacaktır:
city | tmp_avg | date
---------------+---------+------------
San Francisco | 48 | 1994-11-27
San Francisco | 50 | 1994-11-29
Hayward | 45 | 1994-11-29
(3 rows)
AS deyiminin çıktılanacak sütunu yeniden isimlendirmekte nasıl kullanıldığına dikkat edin. (AS deyimi isteğe bağlıdır.)
Bir sorgu, istenen satırların yerini belirtmek üzere bir WHERE deyimi eklenerek nitelikli yapılabilir. WHERE deyimi bir mantıksal ifade içerir ve sadece mantıksal ifadeyi doğrulayan satırlar döndürülür. Niteleme amacıyla mantıksal işleçlere (AND, OR ve NOT) izin verilir. Örneğin, San Francisco'nun yağışlı olduğu günleri bulalım:
SELECT * FROM weather
WHERE city = 'San Francisco' AND prcp > 0.0;
Sonuç:
city | tmp_lo | tmp_hi | prcp | date
---------------+--------+--------+------+------------
San Francisco | 46 | 50 | 0.25 | 1994-11-27
(1 row)
Sorgu sonucunun sıralanmış olmasını da isteyebilirsiniz:
SELECT * FROM weather
ORDER BY city;
Sonuç:
city | tmp_lo | tmp_hi | prcp | date
---------------+--------+--------+------+------------
Hayward | 37 | 54 | | 1994-11-29
San Francisco | 43 | 57 | 0 | 1994-11-29
San Francisco | 46 | 50 | 0.25 | 1994-11-27
Bu örnekte, sıralamanın nasıl yapılacağı tam olarak belirtilmemiştir, dolayısıyla hangi San Fransisco satırının önce geleceği belli olmaz. Fakat aşağıdaki sorgu daima bu sıralamayla dönecektir.
SELECT * FROM weather
ORDER BY city, tmp_lo;
Bir sorgunun sonucundan yinelenmiş satırların kaldırılmasını isteyebilirsiniz:
SELECT DISTINCT city
FROM weather;
city
---------------
Hayward
San Francisco
(2 rows)
Burada da yine satırların sırası her sorguda farklı olabilir. Sonucun istediğimiz sırada olmasını
DISTINCT ve
ORDER BY deyimlerini birlikte kullanarak sağlayabilirsiniz
[84]:
SELECT DISTINCT city
FROM weather
ORDER BY city;