- Projeyi fork edin ve kendi hesabınıza clone edin.
- Terminal'de proje klasörüne girin.
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtpython -m venv venv
venv\Scripts\activate
pip install -r requirements.txt- PostgreSQL'in bilgisayarınızda kurulu ve çalışır durumda olduğundan emin olun.
scripts/init_db.pydosyasındaki SQL komutlarını sırasıyla kendi local veritabanınızda çalıştırın.- Tabloların doğru oluştuğundan emin olmak için her tabloya birer
SELECT *sorgusu atın.
Not:
data/question.pyiçindekiconnect_db()fonksiyonunda veritabanı bağlantı bilgileri var. Localinizde test ederken kendi bilgilerinizle değiştirin. Pushlarken bu bilgileri varsayılan haliyle bırakın.
tests/test_question.py— Dosyanın altındakirun_tests()fonksiyonundauser_iddeğerini kendi kullanıcı ID'nizle değiştirin.data/question.py—connect_db()fonksiyonundaki veritabanı şifresini kendi local PostgreSQL şifrenizle değiştirin. Pushlarken varsayılan haliyle bırakın.
- Sadece
data/question.pydosyasında çalışın. - Her fonksiyon içindeki boş
cursor.execute('')satırına SQL sorgunuzu yazın. - Diğer dosyaları değiştirmeyin.
python watch.pyTek seferlik:
pytest tests/test_question.py -s -v| Sütun | Tip |
|---|---|
| customer_id | SERIAL (PK) |
| full_name | VARCHAR(100) |
| VARCHAR(100) | |
| signup_date | DATE |
| Sütun | Tip |
|---|---|
| product_id | SERIAL (PK) |
| product_name | VARCHAR(100) |
| price | NUMERIC(10,2) |
| category | VARCHAR(50) |
| Sütun | Tip |
|---|---|
| order_id | SERIAL (PK) |
| customer_id | INT (FK -> customers) |
| product_id | INT (FK -> products) |
| order_date | DATE |
| quantity | INT |
| status | VARCHAR(20) |
-
Completed (tamamlanmış) siparişlerin listesini gösteren bir VIEW oluştur. (
CREATE OR REPLACE VIEW completed_orders AS ...) -
Electronics kategorisindeki ürünleri gösteren bir VIEW oluştur. (
CREATE OR REPLACE VIEW electronics_products AS ...)
-
Her müşterinin toplam harcamasını WITH kullanarak hesapla. (
full_name,total_spending— harcamayıprice * quantityile hesapla) -
Sipariş ve ürün detaylarını birleştirerek toplam tutarı (
price * quantity) WITH kullanarak hesapla. (order_id,full_name,product_name,total_price)
-
En pahalı ürünü almış kişinin full_name değerini döndür. (Tek sütun)
-
Sipariş durumunu Türkçeleştir:
'completed'→'Tamamlandı','cancelled'→'İptal Edildi'. (order_id,status,status_description) -
Ortalama fiyatın üzerindeki ürünleri bul. (
product_name,price) -
Alışveriş sayısına göre müşteri kategorisi belirle: >5 sipariş →
'Sadık Müşteri', 2–5 sipariş →'Orta Seviye', diğer →'Yeni Müşteri'. (full_name,customer_category) -
En son sipariş tarihi son 30 gün içinde olan müşterilerin isimlerini getir. (
full_name) -
En çok sipariş verilen ürünü bul. (
product_name,total_orders)
- Ürün fiyatlarına göre etiketle: >1000 →
'Pahalı', 500–1000 →'Orta', diğer →'Ucuz'. (product_name,price,price_category)
Localinizdeki PostgreSQL'de başka tablolarla karışmasın istiyorsanız:
CREATE SCHEMA data4;Tablo ve sorguların başına schema adını ekleyin. Foreign key tanımlarında da schema adını unutmayın. Pushlarken schema öneki olmadan bırakın.