SQLite Örneklerle Görünümler, Dizin ve Tetikleyici

⚡ Akıllı Özet

SQLite Görünümler, indeksler ve tetikleyiciler, bir veritabanının sorgulanmasını ve bakımını kolaylaştıran yönetim araçlarıdır: görünümler karmaşık sorguları yeniden kullanır, indeksler aramaları hızlandırır ve tetikleyiciler veriler değiştiğinde önceden tanımlanmış eylemleri otomatik olarak çalıştırır.

  • 🇧🇷 Görüntüleme: Görünüm, bir SELECT sorgusundan oluşturulan mantıksal bir tablodur ve karmaşık sorguları yeniden yazmadan tekrar kullanmanıza olanak tanır.
  • ⏳ Geçici Görünümler: Geçici görünümler yalnızca mevcut bağlantı için geçerlidir ve bağlantı kapandığında otomatik olarak silinir.
  • ⚡ Dizinler: Dizinler, kitap dizini gibi çalışır ve SQLite Her tablo satırını taramak yerine, eşleşen satırları hızlıca bulun.
  • 🎯 Endeks Türleri: SQLite Belirli sorgu kalıpları için performansı hassas bir şekilde ayarlamak amacıyla ifade, kısmi ve benzersiz indeksleri destekler.
  • 🔔 Tetikleyiciler: Tetikleyiciler, bir tabloda INSERT, UPDATE veya DELETE ifadelerinden önce veya sonra önceden tanımlanmış işlemleri otomatik olarak çalıştırır.
  • 🤖 Yapay Zeka Yardımı: Yapay zekâ destekli metinden SQL'e dönüştürme araçları ve GitHub Copilot, SQLite Basit İngilizce komutlardan elde edilen görünümler, dizinler ve tetikleyiciler.

SQLite Tetikleyici, Görünümler ve Dizin

Günlük kullanımda SQLiteveritabanınız üzerinde bazı yönetim araçlarına ihtiyacınız olacak. Bunları, dizinler oluşturarak veritabanını sorgulamayı daha verimli hale getirmek veya görünümler oluşturarak daha yeniden kullanılabilir hale getirmek için de kullanabilirsiniz.

SQLite Görüntüle

Görünümler tablolara çok benzer. Ancak Görünümler mantıksal tablolardır; tablolar gibi fiziksel olarak depolanmazlar. Bir görünüm bir select ifadesinden oluşur.

Karmaşık sorgularınız için bir görünüm tanımlayabilir ve sorguları tekrar yazmak yerine istediğiniz zaman görünümü doğrudan çağırarak bu sorguları yeniden kullanabilirsiniz.

CREATE VIEW ifadesi

Bir veritabanında görünüm oluşturmak için CREATE VIEW ifadesini ve ardından görünüm adını kullanabilir ve ardından istediğiniz sorguyu girebilirsiniz.

Örnek: Aşağıdaki örnekte, "TutorialsSampleDB.db" örnek veritabanında "AllStudentsView" adında bir görünüm oluşturacağız:

) 1 Adım Bilgisayarım'ı açın ve "C:\sqlite" dizinine gidin, ardından "sqlite3.exe" dosyasını açın:

SQLite Görüntüle

) 2 Adım Aşağıdaki komutu kullanarak “TutorialsSampleDB.db” veritabanını açın:

SQLite Görüntüle

) 3 Adım Aşağıda Görünümü oluşturmak için sqlite3 komutunun temel sözdizimi verilmiştir

CREATE VIEW AllStudentsView
AS
  SELECT 
    s.StudentId,
    s.StudentName,
    s.DateOfBirth,
    d.DepartmentName
FROM Students AS s
INNER JOIN Departments AS d ON s.DepartmentId = d.DepartmentId;

Komuttan şu şekilde bir çıktı olmamalıdır:

SQLite Görüntüle

) 4 Adım Görünümün oluşturulduğundan emin olmak için, aşağıdaki komutu çalıştırarak veritabanındaki görünüm listesini seçebilirsiniz:

SELECT name FROM sqlite_master WHERE type = 'view';

"AllStudentsView" görünümünün döndürüldüğünü görmelisiniz:

SQLite Görüntüle

) 5 Adım Artık görünümümüz oluşturuldu, bunu normal bir tablo olarak şunun gibi kullanabilirsiniz:

SELECT * FROM AllStudentsView;

Bu komut, aşağıdaki ekran görüntüsünde gösterildiği gibi “AllStudents” görünümünü sorgulayacak ve içindeki tüm satırları seçecektir:

SQLite Görüntüle

Geçici Görünümler

Geçici görünümler, onu oluşturmak için kullanılan geçerli veritabanı bağlantısı için geçicidir. Daha sonra veritabanı bağlantısını kapatırsanız tüm geçici görünümler otomatik olarak silinir. Geçici görünümler aşağıdaki komutlardan biri kullanılarak oluşturulur:

  • SICAKLIK GÖRÜNÜMÜ OLUŞTURUN veya
  • GEÇİCİ GÖRÜNÜM OLUŞTURUN.

O an için bazı işlemler yapmak istiyorsanız ve bunun kalıcı bir görünüm olmasına gerek duymuyorsanız, geçici görünümler kullanışlıdır. Yani, yalnızca geçici bir görünüm oluşturursunuz, ardından işleminizi bu görünümü kullanarak yaparsınız. Later veritabanıyla bağlantıyı kapattığınızda otomatik olarak silinecektir.

Örnek:

Aşağıdaki örnekte bir veritabanı bağlantısı açacağız, ardından geçici bir görünüm oluşturacağız.

Bundan sonra o bağlantıyı kapatacağız ve geçici görünümün hala mevcut olup olmadığını kontrol edeceğiz.

) 1 Adım Daha önce açıklandığı gibi, “C:\sqlite” dizininden sqlite3.exe dosyasını açın.

) 2 Adım Aşağıdaki komutu çalıştırarak “TutorialsSampleDB.db” veritabanına bağlantı açın:

.open TutorialsSampleDB.db

) 3 Adım Aşağıdaki komutu yazarak "AllStudentsTempView" adında geçici bir görünüm oluşturun:

CREATE TEMP VIEW AllStudentsTempView
AS
  SELECT 
    s.StudentId,
    s.StudentName,
    s.DateOfBirth,
    d.DepartmentName
FROM Students AS s
INNER JOIN Departments AS d ON s.DepartmentId = d.DepartmentId;

SQLite Görüntüle

) 4 Adım Aşağıdaki komutu çalıştırarak "AllStudentsTempView" adlı geçici görünümün oluşturulduğundan emin olun:

SELECT name FROM sqlite_temp_master WHERE type = 'view';

SQLite Görüntüle

) 5 Adım Sqlite3.exe'yi kapatın ve tekrar açın.

) 6 Adım Aşağıdaki komutu kullanarak “TutorialsSampleDB.db” veritabanına bağlantı açın:

.open TutorialsSampleDB.db

) 7 Adım Veritabanında oluşturulan geçici görünümlerin listesini almak için aşağıdaki komutu çalıştırın:

SELECT name FROM sqlite_temp_master WHERE type = 'view';

Önceki adımda veritabanı bağlantısını kapattığımızda oluşturduğumuz geçici görünüm silindiği için herhangi bir çıktı görmemelisiniz. Aksi takdirde, veritabanıyla bağlantıyı açık tuttuğunuz sürece verilerle geçici görünümü görebileceksiniz.

SQLite Görüntüle

Notlar:

  • Görünümlerle birlikte INSERT, DELETE veya UPDATE ifadelerini kullanamazsınız; yalnızca CREATE View örneğinde adım 5'te gösterildiği gibi “görünümlerden seç” komutunu kullanabilirsiniz.
  • Bir GÖRÜNÜMÜ silmek için “DROP VIEW” ifadesini kullanabilirsiniz:
DROP VIEW AllStudentsView;

Görünümün silindiğinden emin olmak için, veritabanındaki görünümlerin listesini veren aşağıdaki komutu çalıştırabilirsiniz:

SELECT name FROM sqlite_master WHERE type = 'view';

Aşağıdaki gibi, görünüm silindiği için hiçbir görünümün geri dönmediğini göreceksiniz:

SQLite Görüntüle

Görünümlerle karmaşık sorguları yeniden kullanmanın yanı sıra, SQLite Ayrıca indeksler sayesinde eşleşen satırları daha hızlı bulur.

SQLite indeks

Bir kitabınız varsa ve o kitapla ilgili bir anahtar kelime aramak istiyorsanız. Bu anahtar kelimeyi kitabın dizininde arayacaksınız. Daha sonra, söz konusu anahtar kelime hakkında daha fazla bilgi okumak için söz konusu anahtar kelimenin sayfa numarasına gideceksiniz.

Ancak, o kitapta bir dizin veya sayfa numarası yoksa, aradığınız anahtar kelimeyi bulana kadar tüm kitabı baştan sona tarayacaksınız. Ve bu özellikle bir dizininiz ve anahtar kelimeyi aramak için çok yavaş bir süreciniz olduğunda çok zordur.

Dizinler SQLite (ve aynı kavram diğerleri için de geçerlidir) Veritabanı Yönetim Sistemleri de) kitapların arkasında bulunan indekslerle aynı şekilde çalışır.

Bir dizideki bazı satırları aradığınızda SQLite arama kriterlerini içeren tablo, SQLite aradığınız kriterlerle eşleşen satırları bulana kadar tablonun tüm satırlarında arama yapacaktır. Ve daha büyük masalarınız olduğunda bu süreç çok yavaşlar.

Dizinler veri arama sorgularını hızlandıracak ve tablolardan veri alımının gerçekleştirilmesine yardımcı olacaktır. İndeksler tablo sütunlarında tanımlanır.

Dizinlerle performansı artırma:

Dizinler bir tabloda veri arama performansını iyileştirebilir. Bir sütunda bir dizin oluşturduğunuzda, SQLite her alan değerinin, değerin ait olduğu tüm satırı gösteren bir işaretçiye sahip olduğu dizin için bir veri yapısı oluşturacaktır.

Daha sonra, bir dizinin parçası olan bir sütunda arama koşulu içeren bir sorgu çalıştırırsanız, SQLite önce indeksteki değeri arayacaktır. SQLite bunun için tüm tabloyu taramayacağız. Daha sonra tablo satırı için değerin işaret ettiği konumu okuyacaktır. SQLite o konumdaki satırı bulacak ve alacaktır.

Ancak aradığınız sütun bir dizinin parçası değilse, SQLite aradığınız veriyi bulmak için sütun değerlerine yönelik bir tarama gerçekleştirecektir. Dizin yoksa genellikle daha yavaş bir süreç olacaktır.

İçinde dizin bulunmayan bir kitap düşünün ve belirli bir kelimeyi aramanız gerekiyor. O kelimeyi arayarak kitabın tamamını ilk sayfasından son sayfasına kadar tarayacaksınız. Ancak o kitapta bir indeks varsa, önce içindeki kelimeyi arayacaksınız. Bulunduğu sayfa numarasını alın ve ardından ona gidin. Bu, kitabın tamamını kapaktan kapağa taramaktan çok daha hızlı olacaktır.

SQLite ENDEKS OLUŞTUR

Bir sütun üzerinde indeks oluşturmak için CREATE INDEX komutunu kullanmalısınız. Ve bunu şu şekilde tanımlamanız gerekir:

  • CREATE INDEX komutundan sonra indeksin ismini belirtmeniz gerekmektedir.
  • İndeks adından sonra “ON” anahtar kelimesini ve ardından indeksin oluşturulacağı tablo adını yazmalısınız.
  • Daha sonra dizin için kullanılan sütun adlarının listesi.
  • Dizin verilerini sıralamak için kullanılan sıralama düzenini belirtmek amacıyla herhangi bir sütun adından sonra “ASC” veya “DESC” anahtar sözcüklerinden birini kullanabilirsiniz.

Örnek:

Aşağıdaki örnekte, “Öğrenciler” veritabanındaki öğrenciler tablosunda şu şekilde “StudentNameIndex” adında bir indeks oluşturacağız:

) 1 Adım Daha önce açıklandığı gibi “C:\sqlite” klasörüne gidin.

) 2 Adım Sqlite3.exe'yi açın.

) 3 Adım Aşağıdaki komutu kullanarak “TutorialsSampleDB.db” veritabanını açın:

.open TutorialsSampleDB.db

) 4 Adım Aşağıdaki komutu kullanarak "StudentNameIndex" adında yeni bir dizin oluşturun:

CREATE INDEX StudentNameIndex ON Students(StudentName);

Bunun için hiçbir çıktı görmemelisiniz:

SQLite indeks

) 5 Adım Dizinin oluşturulduğundan emin olmak için Students tablosunda oluşturulan dizinlerin listesini veren aşağıdaki sorguyu çalıştırabilirsiniz:

PRAGMA index_list(Students);

Yeni oluşturduğumuz dizinin döndürüldüğünü görmelisiniz:

SQLite indeks

Notlar:

  • Dizinler yalnızca sütunlara göre değil ifadelere göre de oluşturulabilir. Bunun gibi bir şey:
CREATE INDEX OrderTotalIndex ON OrderItems(OrderId, Quantity*Price);

“OrderTotalIndex”, OrderId sütununa ve ayrıca Quantity sütun değeri ile Fiyat sütun değerinin çarpımına dayanacaktır. Dolayısıyla, "Sipariş Kimliği" ve "Miktar*Fiyat" için herhangi bir sorgu, sorgu dizini kullanacağından etkili olacaktır.

  • CREATE INDEX ifadesinde bir WHERE ifadesi belirttiyseniz, dizin kısmi bir dizin olacaktır. Bu durumda, dizinde yalnızca WHERE ifadesindeki koşullarla eşleşen satırlar için girişler olacaktır. Örneğin, aşağıdaki dizinde:
    CREATE INDEX OrderTotalIndexForLargeQuantities ON OrderItems(OrderId, Quantity*Price)
    WHERE Quantity > 10000;

    (Yukarıdaki örnekte WHERE deyimi belirtildiği için endeks kısmi endeks olacaktır. Bu durumda endeks yalnızca miktar değeri 10000'den büyük olan emirlere uygulanacaktır. Bu endekse kısmi endeks adı verildiğini unutmayın. Üzerinde kullanılan ifadeden değil, WHERE deyiminden dolayı indeksleyebilirsiniz. Ancak ifadeleri normal indekslerle kullanabilirsiniz.)

  • Sütunlara çift giriş yapılmasını önlemek için CREATE INDEX yerine CREATE UNIQUE INDEX deyimini kullanabilirsiniz ve böylece indekslenen sütunun tüm değerleri benzersiz olacaktır.
  • Bir dizini silmek için DROP INDEX komutunu ve ardından silinecek dizin adını kullanın.

İndeksler okuma işlemlerini hızlandırırken, tetikleyiciler ise daha hızlı okuma imkanı sağlar. SQLite Verilerde herhangi bir değişiklik olduğunda otomatik olarak yanıt verin.

SQLite Tetik

Giriş SQLite Tetik

Tetikleyiciler, bir veritabanı tablosunda belirli bir eylem gerçekleştiğinde yürütülen otomatik önceden tanımlanmış işlemlerdir. Bir tetikleyici, bir tabloda aşağıdaki eylemlerden biri gerçekleştiğinde tetiklenecek şekilde tanımlanabilir:

  • Bir tabloya INSERT.
  • Bir tablodaki satırları SİLİN.
  • Tablo sütunlarından birini GÜNCELLEYİN.

SQLite FOR EACH ROW tetikleyicisini destekler, böylece tetikleyicideki önceden tanımlanmış işlemler, tabloda gerçekleşen eylemlerde (ister ekleme, silme, ister güncelleme olsun) yer alan tüm satırlar için yürütülür.

SQLite TETİKLEYİCİ OLUŞTUR

Yeni bir TRIGGER oluşturmak için CREATE TRIGGER ifadesini aşağıdaki gibi kullanabilirsiniz:

  • CREATE TRIGGER'dan sonra bir tetikleyici adı belirtmelisiniz.
  • Tetikleyici adından sonra, tetikleyici adının tam olarak ne zaman yürütülmesi gerektiğini belirtmeniz gerekir. Üç seçeneğiniz var:
    • BEFORE – tetikleyici, belirtilen INSERT, UPDATE veya delete ifadesinden önce yürütülür.
    • Sonra – tetikleyici, belirtilen INSERT, UPDATE veya delete ifadesinden sonra yürütülür.
    • YERİNE – Tetiği tetikleyen gerçekleşen eylemi, TRIGGER'da belirtilen ifadeyle değiştirecektir. INSTEAD OF tetikleyicisi tablolar için geçerli değildir, yalnızca görünümler için geçerlidir.
  • Daha sonra eylemin türünü belirtmeniz gerekir; eylem gerçekleştiğinde tetikleyici etkinleşecektir. SİL, EKLE veya GÜNCELLE.
  • Eylem söz konusu sütunda gerçekleşmediği sürece tetikleyicinin etkinleşmemesi için isteğe bağlı bir sütun adı seçebilirsiniz.
  • Daha sonra tetikleyicinin oluşturulacağı tablo adını belirtmeniz gerekir.
  • Tetikleyicinin gövdesinin içinde, tetikleyici tetiklendiğinde her satır için yürütülmesi gereken ifadeyi belirtmelisiniz.

Tetikleyiciler yalnızca create tetikleyici komutunda belirtilen ifadenin türüne bağlı olarak etkinleştirilecektir (ateşlenecektir). Örneğin:

  • BEFORE INSERT tetikleyicisi herhangi bir ekleme ifadesinden önce etkinleştirilecektir (ateşlenecektir).
  • AFTER UPDATE tetikleyicisi herhangi bir güncelleme bildiriminden sonra etkinleştirilecektir (ateşlenecektir), vb.

Tetikleyicinin içinde, yeni eklenen değerlere "new" anahtar sözcüğünü kullanarak başvurabilirsiniz. Ayrıca, silinen veya güncellenen değerlere old anahtar sözcüğünü kullanarak başvurabilirsiniz. Aşağıdaki gibi:

  • INSERT tetikleyicilerinin içinde – yeni anahtar kelime kullanılabilir.
  • UPDATE tetikleyicilerinin içinde – yeni ve eski anahtar kelimeler kullanılabilir.
  • DELETE tetikleyicilerinin içinde – eski anahtar kelime kullanılabilir.

Örnek E-posta

Aşağıda, "Öğrenciler" tablosuna yeni bir öğrenci eklenmeden önce tetiklenecek bir kod oluşturacağız.

Bu işlem, yeni eklenen öğrenciyi, ekleme işleminin gerçekleştiği geçerli tarih ve saate ait otomatik bir zaman damgasıyla birlikte "StudentsLog" tablosuna kaydedecektir. Şöyle:

) 1 Adım "C:\sqlite" dizinine gidin ve sqlite3.exe dosyasını çalıştırın.

) 2 Adım Aşağıdaki komutu çalıştırarak “TutorialsSampleDB.db” veritabanını açın:

.open TutorialsSampleDB.db

) 3 Adım Aşağıdaki komutu çalıştırarak “InsertIntoStudentTrigger” tetikleyicisini oluşturun:

CREATE TRIGGER InsertIntoStudentTrigger 
       BEFORE INSERT ON Students
BEGIN
  INSERT INTO StudentsLog VALUES(new.StudentId, datetime(), 'Insert');
END;

“datetime()” fonksiyonu, ekleme işleminin gerçekleştiği anın geçerli tarih ve saatini verir. Böylece, her işleme otomatik olarak zaman damgaları eklenerek ekleme işlemini kaydedebiliriz.

Komut başarıyla çalışmalı ve çıktı alamazsınız:

SQLite Tetik

“InsertIntoStudentTrigger” tetikleyicisi, öğrenciler tablosuna yeni bir öğrenci eklediğiniz her seferde çalışacaktır. “new” anahtar kelimesi, eklenecek değerleri ifade eder. Örneğin, “new.StudentId” eklenecek öğrenci kimliği olacaktır.

Şimdi yeni bir öğrenci eklediğimizde tetikleyicinin nasıl davrandığını test edeceğiz.

) 4 Adım Students tablosuna yeni bir öğrenci ekleyecek aşağıdaki komutu yazın:

INSERT INTO Students VALUES(11, 'guru11', 1, '1999-10-12');

) 5 Adım Aşağıdaki komut, “StudentsLog” tablosundaki tüm satırları seçecektir:

SELECT * FROM StudentsLog;

Az önce eklediğimiz yeni öğrenci için yeni bir satırın döndürüldüğünü görmelisiniz:

SQLite Tetik

Bu satır, kimliği 11 olan yeni öğrenciyi eklemeden önce tetikleyici tarafından eklendi.

Bu örnekte, oluşturduğumuz "InsertIntoStudentTrigger" tetikleyicisini kullanarak "StudentsLog" tablosuna herhangi bir ekleme işlemini otomatik olarak kaydettik. Aynı şekilde, herhangi bir güncelleme veya silme işlemini de kaydedebilirsiniz.

Tetikleyicilerle istenmeyen güncellemelerin önlenmesi:

Bir tablodaki BEFORE UPDATE tetikleyicilerini kullanarak, bir ifadeye dayalı bir sütundaki güncelleme ifadelerinin engellenmesini sağlayabilirsiniz.

Örnek E-posta

Aşağıdaki örnekte, Students tablosundaki “studentname” sütununu herhangi bir güncelleme ifadesinin güncellemesini önleyeceğiz:

) 1 Adım "C:\sqlite" dizinine gidin ve sqlite3.exe dosyasını çalıştırın.

) 2 Adım Aşağıdaki komutu çalıştırarak “TutorialsSampleDB.db” veritabanını açın:

.open TutorialsSampleDB.db

) 3 Adım Aşağıdaki komutu çalıştırarak "Students" tablosunda "preventUpdateStudentName" adında yeni bir tetikleyici oluşturun.

CREATE TRIGGER preventUpdateStudentName
BEFORE UPDATE OF StudentName ON Students
FOR EACH ROW
BEGIN
    SELECT RAISE(ABORT, 'You cannot update studentname');
END;

“RAISE” komutu, “Öğrenci adını güncelleyemezsiniz” hata mesajıyla bir hata oluşturacak ve ardından güncelleme ifadesinin yürütülmesini engelleyecektir.

Şimdi tetikleyicinin iyi çalıştığını ve öğrenci adı sütununda herhangi bir güncelleme yapılmasını önlediğini doğrulayacağız.

) 4 Adım Aşağıdaki güncelleme komutunu çalıştırın; bu komut, "Jack" öğrenci adını "Jack1" olarak güncelleyecektir.

UPDATE Students SET StudentName = 'Jack1' WHERE StudentName = 'Jack';

Tetikleyiciye eklediğimiz ve "Öğrenci adını güncelleyemezsiniz" şeklinde belirttiğimiz hata mesajını aşağıdaki gibi almalısınız:

SQLite Tetik

) 5 Adım Öğrenciler tablosundan öğrencilerin isimlerinin listesini seçecek olan aşağıdaki komutu çalıştırın.

SELECT StudentName FROM Students;

Öğrenci adının “Jack”in hala aynı olduğunu ve değişmediğini görmelisiniz:

SQLite Tetik

SSS

Bir tablo verileri fiziksel olarak diskte saklarken, bir görünüm kaydedilmiş bir SELECT sorgusuyla tanımlanan sanal bir tablodur. Görünüm kendi başına veri tutmaz; onu her okuduğunuzda bu sorguyu çalıştırır ve temel tablolardan satırları sunar.

SQLite Görünümler salt okunurdur, bu nedenle INSERT, UPDATE ve DELETE işlemleri doğrudan bunlara uygulanamaz. Bir görünümü yazılabilir hale getirmek için, işlemi temel tablolarda değişikliklere dönüştüren bir INSTEAD OF tetikleyicisi ekleyin.

WHERE, JOIN veya ORDER BY yan tümcelerinde sıkça kullanılan sütunlara, özellikle az sayıda yinelenen değere sahip yüksek kardinaliteli sütunlara indeks oluşturun. İndeksler SELECT sorgularını hızlandırır, ancak nadiren aranan veya çok küçük tablolara indeks eklemenin pek bir faydası olmaz.

Evet. Her satır değiştiğinde her indeks güncellenmelidir, bu nedenle her ek indeks yazma yükünü ve depolama alanını artırır. Sıkça arama yaptığınız sütunları indeksleyin, ancak yoğun INSERT, UPDATE veya DELETE trafiği alan tabloları aşırı indekslemekten kaçının.

Hayır. SQLite CREATE MATERIALIZED VIEW komutu bulunmamaktadır ve sıradan görünümler sonuçlarını asla önbelleğe almaz. Bunu taklit etmek için gerçek bir tablo oluşturun ve kaynak tablolarda AFTER INSERT, UPDATE ve DELETE tetikleyicilerini kullanarak senkronize halde tutun.

sqlite_master, veritabanındaki her tabloyu, görünümü, dizini ve tetikleyiciyi listeleyen yerleşik şema kataloğudur. Örneğin, SELECT name FROM sqlite_master WHERE type = 'view'; sorgusunu kullanarak hangi nesnelerin mevcut olduğunu inceleyebilirsiniz.

Evet. Yapay zekâ destekli metinden SQL'e dönüştürme asistanları, sade İngilizce istekleri şu hale dönüştürür: SQLite CREATE VIEW, CREATE INDEX ve CREATE TRIGGER ifadelerini kullanın. Gerçek tablo ve sütun adlarınızı belirtmeniz doğruluğu artırır ve oluşturulan her ifade, üretim verilerinde çalıştırılmadan önce gözden geçirilip test edilmelidir.

GitHub Yardımcı Pilotu anlaşılacağı SQLite Görünümler, dizinler ve tetikleyiciler, editörlerde satır içi olarak yer alır. VS CodeYakındaki şemaları ve yorumları okur, bu nedenle otomatik tamamlama işlemleri gerçek tablo ve sütun adlarınızı yeniden kullanır; ancak yine de her ifadeyi çalıştırmadan önce doğrulamanız gerekir.

Bu yazıyı şu şekilde özetleyin: