Bir Tablo’dan veri seçme: ham SQL
Videoda gördüğün gibi, veritabanındaki verilere erişmek ve onları işlemek için önce engine üzerinde .connect() metodunu kullanarak bir bağlantı kurmamız gerekiyor. Bunun nedeni, daha önce kullandığın create_engine() fonksiyonunun bir engine örneği döndürmesi, ancak sorgu gibi bağlantı gerektiren bir işlem çağrılana kadar gerçekte bir bağlantı açmamasıdır.
SQL hakkında yeni öğrendiklerimizi kullanarak ve bağlantımız üzerinde .execute() metodunu uygulayarak, ham bir SQL sorgusuyla census tablosundaki tüm kayıtları sorgulayabiliriz. .execute() metodunun döndürdüğü nesne bir ResultProxy’dir. Bu ResultProxy üzerinde .fetchall() metodunu kullanarak sonuçlarımızı, yani ResultSet’i alabiliriz.
Bu egzersizde, geleneksel bir SQL sorgusu kullanacaksın. Ham SQL ile bir sorgu çalıştırdığında, tabloyu doğrudan veritabanında sorguladığına dikkat et. Özellikle, yansıtma (reflection) adımına gerek yoktur.
Sonraki egzersizde SQLAlchemy’ye geçecek ve avantajlarını görmeye başlayacaksın. Hadi başlayalım!
Bu egzersiz, kursun bir parçasıdır
Python ile Veritabanlarına Giriş
Egzersiz talimatları
- Bir bağlantı oluşturmak için
engine’ın.connect()metodunu kullan. censustablosundaki tüm sütunları sorgulayan bir SQL ifadesi oluştur vestmtiçinde sakla. SQL ifadenin bir string olması gerektiğini unutma.connectionüzerinde.execute()ve.fetchall()metotlarını kullan ve sonucuresultsiçinde sakla..execute()’ın.fetchall()’dan önce geldiğini ve.execute()’astmt’in iletilmesi gerektiğini unutma.resultsdeğerini yazdır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///census.sqlite')
# Create a connection on engine
connection = ___
# Build select statement for census table: stmt
stmt = ____
# Execute the statement and fetch the results: results
results = ____
# Print results
print(____)