Giriş

Bölüm 8

Veritabanı: yazmadan önce durumu incele

Hedefi seç, yapıyı gör, veriyi incele, tek değişiklik yap ve tekrar doğrula.

Veritabanı yapılandırılmış durumdur

Bir dosya içeriğini doğrudan gösterir. Veritabanı ise durumunu bir veritabanı motoru üzerinden sunar: tablolar veya koleksiyonlar, kayıtlar, dizinler ve sorgular. Yazma işlemiyle başlamayın. Önce sürücüyü ve seçili veritabanını doğrulayın, ardından mevcut yapıyı inceleyin.

Yapılandırma dosyalarındaki aynı ilke burada da geçerlidir: verinin fiziksel olarak nasıl saklandığına değil, amaçladığınız mantıksal nesneye — tabloya, satıra, anahtara veya belgeye — odaklanın.

`db` ortak kelimeler sunar, driver yine önemlidir

db yaygın işlemleri yansıtır; doğrudan komutlar engine’e özgü davranışı korur.

install md db sqlite
db
db sqlite
sqlite

SQLite en güvenli alıştırma alanıdır

Ağ ve parola gerektirmeyen tek yerel dosyadır. Tabloyu oluştur ve -t ile doğrula.

cd lil-playground
md data
sqlite -c data/notes.sqlite -f
sqlite : CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, title TEXT NOT NULL, status TEXT NOT NULL)
sqlite -t

Önce yapı, sonra satırlar

-s alan/tipleri, -n satır preview’ını gösterir. Boş tablo da anlamlı bir sonuçtur.

sqlite -s notes
sqlite -n notes 10

Hedefli yazma işlemlerinde JSON kullanabilirsiniz

-a ve -w, : işaretinden sonra JSON alır. Her yazma işleminden sonra sonucu yeniden kontrol edin; silme işlemi her zaman bilinçli olmalıdır.

sqlite -a notes : {"title":"First terminal note","status":"draft"}
sqlite -a notes : {"title":"Archive project","status":"done"}
sqlite -n notes 10
sqlite -w notes title "First terminal note" : {"status":"reviewed"}
sqlite -f notes reviewed 20

Gerektiğinde native SQL kullan

Aggregate ve özel query’ler doğal olarak native : formuna aittir.

sqlite : SELECT status, COUNT(*) AS count FROM notes GROUP BY status

Dışa aktarım ve yedek dökümü farklı amaçlara sahiptir

Dışa aktarım taşınabilir veri üretir; yedek dökümü ise geri yükleme için şema ve veriyi birlikte saklar. Geri yüklemeyi acilden önce dene.

sqlite -o notes -j data/notes.json -f
sqlite dump data/notes.sql -f
stat data/notes.sql

Uzak veritabanı credentials ve ağ ekler

Her engine’in bağlantı modeli farklıdır. Gerçek parolaları yeniden kullanılabilir veya herkese açık betiklere koyma.

db mysql
mysql -c localhost app shop
postgresql -c localhost app shop

Bunu betik olarak saklayın

database-checkpoint.lil alıştırma SQLite veritabanını açar, tabloyu inceler ve uygulama verisi yazmadan bir yedek oluşturur.

#lil
@install md sqlite
cd lil-playground
md data
sqlite -c data/notes.sqlite -f
sqlite : CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, title TEXT NOT NULL, status TEXT NOT NULL)
sqlite -t
sqlite -n notes 10
sqlite dump data/notes.sql -f