Bu proje, saygıdeğer Atıl Samancıoğlu'nun Veri Bilimi ve Makine Öğrenmesi 2025: 100 Günlük Kamp eğitim serisinden esinlenerek geliştirilmiştir.
Amacı, Python ile SQLite kullanarak SQL temellerini, veri modellemeyi ve ileri SQL konularını öğrenmek ve pratik yapmaktır.
Bu proje, özellikle CRUD işlemleri, JOIN, GROUP BY, AVG gibi SQL fonksiyonları ve tablo ilişkilerini Python üzerinden uygulamalı olarak göstermektedir.
.
├── db/
├── src/
│ ├── main.py
│ ├── sql_quiz.py
│ └── 01-SQL_Basics.ipynb
├── README.md
├── requirements.txt
└── LICENCE
└── .gitignore
- Repo’yu klonlayın:
git clone https://github.com/UstubecEmre/PythonWithSQLite3.git
cd proje
- Gerekli kütüphaneleri yükleyin (Python 3):
pip install -r requirements.txt
Not: Bu proje yalnızca
sqlite3
veos
gibi standart Python kütüphanelerini kullanır.
main.py
ile Students & Courses tablolarını deneyin:
python main.py
sql_quiz.py
ile Employee – Company – Country yapısını oluşturun ve CRUD örneklerini çalıştırın:
python sql_quiz.py
Tablo | Açıklama |
---|---|
Students | id, name, surname, age, email, city |
Courses | id, course_name, detail, instructor, credits |
Tablo | Sütunlar |
---|---|
COUNTRY | ID, Country |
COMPANY | ID, CompanyName, CompanyVision, CountryID 🔑, EstablishedDate |
EMPLOYEE | ID, Name, Surname, Email, CompanyID 🔑, Salary, Experience, StartDate |
🔑 Foreign Key ilişkileri:
- COMPANY.CountryID → COUNTRY.ID
- EMPLOYEE.CompanyID → COMPANY.ID
Ekleme sırası: COUNTRY → COMPANY → EMPLOYEE
Silme sırası: EMPLOYEE → COMPANY → COUNTRY
ID | Country |
---|---|
1 | Turkey |
2 | Azerbaijan |
3 | Uzbekistan |
4 | Kyrgyzstan |
5 | Hungary |
6 | USA |
7 | Germany |
8 | France |
9 | Italy |
10 | Spain |
ID | CompanyName |
---|---|
1 | ASTOR |
2 | Sabanci Group |
3 | Koc Group |
4 | Microsoft |
5 | Nvidia |
ID | Name | Surname |
---|---|---|
1 | Emre | Ustubec |
2 | Erol | Ustubec |
3 | Sule | Ergin |
4 | Fatma | Senol |
5 | Emre | Dildoker |
create_database()
→ SQLite veritabanı oluştururcreate_tables()
→ Students & Courses tablolarını oluştururinsert_sample_data()
→ Örnek kayıt eklerbasic_sql_operations()
→ SELECT, WHERE, ORDER BY, LIMIT örneklerini içerirsql_update_operation()
→ Kayıt güncellersql_delete_operation()
→ Kayıt siler
insert_samples_to_country/company/employee()
→ Örnek veri eklerget_employee(), get_company(), get_country()
→ Veri sorgularinsert_sample_to_*()
→ Yeni kayıt eklerupdate_country(), update_company(), update_employee()
→ Güncelleme işlemlerini gerçekleştiren fonksiyonlardırdel_country(), del_company(), del_employee()
→ Silme işlemlerini gerçekleştiren fonksiyonlardırjoin__example()
→ JOIN ile çalışan-şirket-ülke ilişkisini getirirget_avg_salary_grouped()
→ GROUP BY ile şirkete ve ülkeye göre ortalama maaş sorgular
Pull request gönderebilir veya issue açabilirsiniz.
Projeye ilerleyen aşamalarda tests/
klasörü eklenerek pytest ve unittest tabanlı testler yazılabilir.
Bu sayede tablolar, fonksiyonlar ve CRUD işlemleri otomatik olarak doğrulanabilir.
Bu biraz pytest ve unittest üzerine yoğunlaşabileceğim bir zamanı bulabilir:)
Adı: Emre Üstübeç
GitHub: UstubecEmre
E-posta: emresb1999@gmail.com
LinkedIn: Emre Üstübeç
MIT Lisansı altında paylaşılmıştır.