SQL Server ile Çalışmak

Mevcut

SQL bizim her şeyimiz

Muhtemelen zaten tahmin ettiğiniz gibi, SQL sunucusuna verilen tüm komutlar SQL sorguları aracılığıyla verilebilir. Her şey.

Bu takımlar resmi olarak 4 gruba ayrılır:

  • veri tanımlama ifadeleri (Veri Tanımlama Dili, DDL ):

    • CREATE bir veritabanı nesnesi oluşturur (veritabanı kendisi, tablo, görünüm, kullanıcı vb.)
    • ALTER bir nesneyi değiştirir
    • DROP bir nesneyi kaldırır
  • veri işleme operatörleri (Data Manipulation Language, DML ):

    • SELECT, verilen koşulları karşılayan verileri seçer
    • INSERT yeni veri ekler
    • GÜNCELLEME mevcut verileri değiştirir
    • DELETE verileri kaldırır
  • veri erişim tanımı işleçleri (Veri Kontrol Dili, DCL ):

    • GRANT, bir nesne üzerinde belirli işlemleri gerçekleştirmek için bir kullanıcıya (grup) izin verir.
    • REVOKE önceden verilen izinleri iptal eder
    • DENY , izne göre öncelikli bir yasak koyar
  • İşlem Kontrol Dili ( TCL ) ifadeleri :

    • COMMIT bir işlem uygular
    • GERİ DÖNME geçerli işlem bağlamında yapılan tüm değişiklikleri geri alır
    • SAVEPOINT, bir işlemi daha küçük bölümlere ayırır

Ve ilk iki seviyede, sadece SELECT ifadesinin çeşitlerini inceledik. Gelecekte bizi ne kadar ilginç şeyin beklediğini hayal edin.

Ancak burada öncelikle Java programcıları hakkında hazırlık yapıyoruz, bu nedenle işte kesinlikle karşılaşacağınız senaryoları inceleyeceğiz.

Projedeki sistem yöneticisi büyük olasılıkla tüm veritabanlarını oluşturacaktır, ancak kesinlikle verilerden birçok kez kendiniz seçim yapmanız gerekecektir.

Ayrıca, bazen kodunuz tüm verileri veritabanına yazmaz veya yanlış bir şekilde yazmaz, bu nedenle sık sık kalemlerle içine girip orada gerçekte ne saklandığını görmeniz gerekir.

Önceki derslerde değindiğimiz konuları tekrar gözden geçirelim.

Veritabanında şema oluşturma

DBMS'de yeni bir şema oluşturmak için şu komutu çalıştırmanız gerekir:

CREATE SCHEMA Name;

Bu en kolay seçenektir. Ayrıca, yeni bir şema oluştururken veri kodlama biçimini ve diğer parametreleri belirtebilirsiniz.

Şemayı silmek istiyor ancak var olup olmadığından emin değilseniz, şu komutu çalıştırmanız gerekir:

DROP SCHEMA IF EXIST Name;

Bu komutları farklı veritabanlarının yedekleri olan dosyalarda sıklıkla göreceksiniz, bu yüzden onları buraya getirdim.

Mevcut düzeni seçme

DBMS'nizde çok sayıda şema varsa, farklı şemaların aynı tablolara sahip olması kolaylıkla olabilir. Karışıklığı önlemek için iki şey yapabilirsiniz:

  • Şema adını her zaman tablo adından önce koyun
  • Varsayılan şemayı belirtin

Test şemasındaki kullanıcı tablosundan veri seçecek bir sorgu yazalım . Bunun gibi bir şey görünecek:

SELECT * FROM test.user;

Tek bir sorguda farklı şemalardan birkaç tabloyu birleştirmeniz (JOIN) gerekiyorsa, bu kesinlikle vazgeçilmezdir.

Bu arada, Java dilinde genellikle benzer bir şey yaparız: kodda farklı paketlerden aynı ada sahip sınıfları kullanmamız gerekirse, paket adını sınıf adından önce ekleriz.

İkinci yol, varsayılan şemayı belirtmektir . Sorgu bir tablo adı belirtiyor ancak şema belirtmiyorsa, varsayılan şema kullanılır. Bunu yapmak için USE deyimini kullanın :

USE name - schemes;

USE deyimini kullanarak önceki sorguyu yeniden yazalım:

USE test;
SELECT * FROM user;

Görünüm Oluşturma

SQL, gerçek verileri içeren tablolara ek olarak, verilerin gerçek tablolardan çekildiği sanal tablolar gibi bir şeyi depolamanıza olanak tanır. Bu tür sanal tablolar GÖRÜNÜM olarak adlandırılır.

Böyle bir tablo gerçek verileri saklayamaz ve her erişildiğinde gerçek tablolardan veri çeker. Böyle bir GÖRÜNÜMün içeriği bir SQL sorgusu kullanılarak belirtilir.

Aşağıdaki gibi bir komutla herhangi bir SELECT sorgusundan bir GÖRÜNÜM oluşturabilirsiniz:

CREATE VIEW Name AS
SELECT-request;
Çalışan maaş bilgilerinin gizleneceği çalışan tablosunu baz alarak public_employee sanal tablosu oluşturacak bir sorgu yazalım:
CREATE VIEW public_employee AS
SELECT id, name FROM employee

Yukarıdaki örnekte, tablomuz (VIEW) public_employee yalnızca çalışan kimliklerini ve adlarını içerecek, maaşları hakkında bilgi içermeyecektir. Bu tür Görünümleri gerçek tablolarla aynı yerde kullanabilirsiniz.

Görünümler neden gereklidir? Bir takım avantajları var:

Bilgiye erişimin esnek kontrolü . Belirli kullanıcılara yalnızca GÖRÜNÜM erişimi verebilirsiniz, ancak tablolara erişim izni veremezsiniz. Ve Görünüm'de, tablolardan yalnızca herkese açık bilgileri çıkarın. Ayrıca, gelecekte tablolara önemli bilgiler içeren yeni sütunlar eklenirse, yanlışlıkla Görünüm'e girmeyecektir.

Veri denormalizasyonu . Depolama kolaylığı için, veriler genellikle yüzlerce ve binlerce tabloya bölünür, ancak sıradan bir kişinin bu tür verilerle çalışması pek uygun değildir - çok karmaşık sorgular yazmanız gerekir. View ile onlarca farklı tablodaki verileri tek bir tabloda görüntüleyen sanal tablolar oluşturabilirsiniz.

Polimorfizm ve Kapsülleme . Veritabanınızın yapılarını değiştirebilirsiniz. Aynı zamanda, Görünümlerinizle çalışan program kullanıcıları bir şeylerin değiştiğini tahmin etmeyeceklerdir. Ve View'a erişimi olan programların kodunu yeniden yazmaya gerek kalmayacak. GÖRÜNÜM ile ilgili SQL betiğini değiştirmeniz yeterli olacaktır.

Sadece okuyun . Görünüm yalnızca bir SELECT sorgusu ile ayarlanabilir, bu nedenle Görünüm ile çalışmak gerçek tablolardaki verileri hiçbir şekilde değiştiremez. Bu arada, bu, sorgu önbelleğe alma lehine başka bir artı. Ama bir dahaki sefere daha fazlası.

Yorumlar
  • Popüler
  • Yeni
  • Eskimiş
Yorum bırakmak için giriş yapmalısınız
Bu sayfada henüz yorum yok