Sorgu Sonucu Biçimlerini Çıkarma
Sorgu oluşturucunun döndürülen satır türünü çıkarmasını sağlayın.
Sorgu Sonucu Biçimlerini Çıkarma, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 4 dersten oluşur.
Sonuç Türü Seçime Uyar
İyi bir sorgu oluşturucu yalnızca girdiyi doğrulamaz; her sonuç satırının tam şeklini, seçtiğiniz sütunlardan çıkarır. Daha az sütun seçtiğinizde sonuç türü daralır.
Tam Satır Seçimi
select() işlevini herhangi bir yansıtma olmadan çağırmak, satır türünün tamamını döndürür.
const rows = await db.select().from(users);
// rows: { id: number; name: string; age: number | null; isAdmin: boolean }[]Kısmi Seçim Türü Daraltır
Yalnızca ihtiyaç duyduğunuz sütunları yansıtın; sonuç türü yalnızca bu anahtarları içerir.
const rows = await db
.select({ id: users.id, name: users.name })
.from(users);
// rows: { id: number; name: string }[]
// Accessing rows[0].age is a compile error.Sonuçta Sütunları Yeniden Adlandırma
select nesnesinin anahtarları sonuçtaki anahtarlar olur; böylece adları serbestçe değiştirebilir ve türün yeni adları yansıtmasını sağlayabilirsiniz.
const rows = await db
.select({ userId: users.id, fullName: users.name })
.from(users);
// rows: { userId: number; fullName: string }[]Hesaplanan ve Toplanan Sütunlar
Toplamalar, kendilerine ait çıkarılmış bir tür taşır. count() bir sayı üretir; takma ad anahtarı bu sayıya sonuçta bir ad verir.
import { count } from "drizzle-orm";
const rows = await db
.select({ total: count() })
.from(users);
// rows: { total: number }[]Null Olabilirliği Akışı Sürer
Null olabilirliği olan bir sütunu seçerseniz sonuçta da bu özellik korunur. age seçildiğinde number | null türü korunur.
const rows = await db.select({ age: users.age }).from(users);
// rows: { age: number | null }[]Çıkarım Nasıl Oluşturulur
Sonuç türü, select nesnesi üzerinde oluşturulan eşlenmiş bir türdür: her değer, data türü ve null olabilirliği ilgili anahtara aktarılan bir sütundur.
type InferSelect<S> = {
[K in keyof S]: S[K] extends Column<infer D, infer Null>
? Null extends true ? D | null : D
: never;
};Tek Satır Yardımcıları
Bazı oluşturucular .get() veya [0] erişimi sunar. Öğe türü yine aynı seçimden türetilir; yalnızca diziden çıkarılmıştır.
const one = (await db.select({ id: users.id }).from(users))[0];
// one: { id: number } | undefinedBirleştirmeler Şekli Genişletir
Birleştirme yaptığınızda sonuç türü, birleştirilen tablodan anahtarlar kazanır. Birleştirilen tablolar arasındaki kısmi seçimler de türü hassas biçimde daraltır. (Birleştirmeler kendi derslerinde ele alınacaktır.)
const rows = await db
.select({ name: users.name, title: posts.title })
.from(users)
.innerJoin(posts, eq(posts.authorId, users.id));
// rows: { name: string; title: string }[]Daraltma Neden Önemli
Yalnızca seçtiğiniz anahtarları döndürmek, almadığınız sütunlara yanlışlıkla güvenmenizi önler. Tür, gerçek SQL'i yansıtır; böylece gereğinden fazla veya az veri alma hataları düzenleyicide görünür.
Sorun: Yayma Sonrası Seçme
Önce tam satırı alıp ardından JS içinde anahtarları elle seçerseniz veritabanı düzeyindeki daraltma avantajını kaybeder ve ağ üzerinden fazladan sütunlar gönderirsiniz. Sorgu sırasında daraltmayı tercih edin.
Hızlı Denetim
Çıkarılan sonuç şekillerini anlayıp anlamadığınızı doğrulayın.
Özet
Sonuç türü, eşlenmiş bir tür aracılığıyla seçimden hesaplanır: tam seçimler satırın tamamını döndürür, kısmi seçimler seçilen anahtarlarla sınırlanır, yeniden adlandırmalar sonuç anahtarlarını değiştirir, null olabilirliği akışını sürdürür ve toplamalar kendi türlerini taşır. Statik tür, yazdığınız gerçek SQL'i her zaman yansıtır.
Sıkça Sorulan Sorular
“Sorgu Sonucu Biçimlerini Çıkarma” dersi ücretsiz mi?
Evet — “Sorgu Sonucu Biçimlerini Çıkarma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.
“Sorgu Sonucu Biçimlerini Çıkarma” dersinde ne öğreneceğim?
Sorgu oluşturucunun döndürülen satır türünü çıkarmasını sağlayın. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Sorgu Sonucu Biçimlerini Çıkarma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Şemadan Türe Eşleme
- Tür Güvenli Sorgu Oluşturma
- Sorgu Sonucu Biçimlerini Çıkarma
- Türlerle İlişkiler ve Birleştirmeler