CodeBlanks Logo Icon CodeBlanks

Column ve type

Column(Integer), Column(String) ile sütun türlerini öğrenirsin.

Column ve türler

Column, bir tablo sütununu tanımlar. İlk parametre olarak bir tür alır: Integer, String, Float, Boolean, DateTime gibi.

class Product(Base):
    __tablename__ = "products"
    id = Column(Integer, primary_key=True)
    name = Column(String)
    price = Column(Float)
    in_stock = Column(Boolean)

primary_key=True birincil anahtarı, nullable=False boş olamayan sütunu belirtir. String(50) gibi uzunluk verilebilir.

türlerin anlamı

Her sütun türü veritabanında karşılık gelen bir türe çevrilir. Integer tamsayı, String metin, Float ondalık sayı, Boolean doğru/yanlış depolar.

amount = Column(Integer)      # tamsayı
label = Column(String(50))   # 50 karaktere kadar metin
ratio = Column(Float)         # ondalık
active = Column(Boolean)      # doğru/yanlış

Tür seçimi, doğrulama ve verimlilik için önemlidir. Yanlış tür veri kaybına yol açabilir.

Uygulama Product modeli tanımla

from sqlalchemy import create_engine, Column, Integer, String, Float ve from sqlalchemy.orm import declarative_base ile başla. Base = declarative_base() tanımla. class Product(Base): içinde __tablename__ = "products" ekle. id = Column(Integer, primary_key=True), name = Column(String) ve price = Column(Float) sütunlarını ekle. print(Product.__tablename__) ile tablo adını yazdır.

Başlangıç kodu

main.py
# sqlalchemyden create_engine, Column, Integer, String, Float'u içe aktar
# declarative_base'i içe aktar
# Base'i tanımla
# Product sınıfını tanımla (Base'ten türe, tablo adı 'products')
# id, name ve price sütunlarını ekle
# Product.__tablename__ değerini yazdır

Örnek çözüm

main.py
from sqlalchemy import create_engine, Column, Integer, String, Float
from sqlalchemy.orm import declarative_base

Base = declarative_base()

class Product(Base):
    __tablename__ = "products"
    id = Column(Integer, primary_key=True)
    name = Column(String)
    price = Column(Float)

print(Product.__tablename__)

Beklenen çıktı

products

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Column(Integer, primary_key=True) ne belirtir?

  • Otomatik artan sütunu
  • Yabancı anahtar sütunu
  • Boş olabilen sütunu
  • Birincil anahtar sütunu Doğru cevap

Açıklama: primary_key=True birincil anahtar sütunu olduğunu belirtir.

2 String sütun tanımını tamamla

Soru
class Product(Base):
    __tablename__ = "products"
    name = Column(____)
Cevap
class Product(Base):
    __tablename__ = "products"
    name = Column(String)

Açıklama: Column(String) ile metin sütunu tanımlanır.

3 tür kavramlarını eşleştir

Kavram Anlamı
Integer Tamsayı depolar
String Metin depolar
Float Ondalık depolar
Boolean Doğru/yanlış depolar

İleri seviye bölümündeki tüm dersler