DDL, DML ve JOINs hakkında bilgi edinin
Yapısal Sorgu Dili , modern veritabanı mimarisinin temel yapı taşlarından biridir. SQL, tüm ana platformlarda ilişkisel veritabanları oluşturmak ve işlemek için kullanılan yöntemleri tanımlar. İlk bakışta, dil korkutucu ve karmaşık görünebilir, ama hepsi bu kadar zor değil.
SQL'in arkasındaki temellere bu giriş, veritabanlarını oluşturmak ve değiştirmek için kullanılan ana komutlardan bazılarına kısa bir bakış atmaktadır.
SQL hakkında
SQL'in doğru telaffuz veritabanı topluluk içinde tartışmalı bir konudur. Amerikan Ulusal Standartlar Enstitüsü, SQL standardında resmi telaffuzun "es el" olduğunu açıkladı. Ancak, birçok veritabanı uzmanları argo telaffuz "devamı" aldık. Seçim senin.
SQL birçok lezzetle gelir. Oracle veritabanları tescilli PL / SQL kullanır. Microsoft SQL Server Transact-SQL kullanır. Tüm varyasyonlar endüstri standardı ANSI SQL dayanmaktadır. Bu giriş, herhangi bir modern ilişkisel veritabanı sistemi üzerinde çalışan ANSI uyumlu SQL komutları kullanır.
DDL ve DML
SQL komutları iki ana alt dile ayrılabilir. Veri Tanımlama Dili (DDL), veritabanlarını ve veritabanı nesnelerini oluşturmak ve yok etmek için kullanılan komutları içerir. Veritabanı yapısı DDL ile tanımlandıktan sonra, veritabanı yöneticileri ve kullanıcıları, içerdiği verileri eklemek, almak ve değiştirmek için Veri Manipülasyon Dilini (DML) kullanabilir.
Veri Tanımlama Dili Komutları
Veri Tanımlama Dili, veritabanlarını ve veritabanı nesnelerini oluşturmak ve yok etmek için kullanılır. Bu komutlar öncelikle veritabanı yöneticileri tarafından bir veritabanı projesinin kurulum ve kaldırma aşamaları sırasında kullanılır. İşte dört temel DDL komutunun yapısı ve kullanımı:
YARATMAK. Bir bilgisayara bir veritabanı yönetim sistemi kurmak, birçok bağımsız veritabanını oluşturmanıza ve yönetmenize izin verir. Örneğin, satış departmanınız için bir müşteri iletişim veritabanı ve İK departmanınız için bir personel veritabanı bulundurmak isteyebilirsiniz. CREATE komutu, bu veritabanlarının her birini platformunuzda oluşturmak için kullanılır. Örneğin, komut:
DBMS'nizde "çalışanlar" adlı boş bir veritabanı oluşturur. Veritabanını oluşturduktan sonraki adım, veri içeren tablolar oluşturmaktır. Bu amaçla CREATE komutunun başka bir varyantı kullanılabilir. Komuta:
CREATE TABLE personal_info (first_name char (20) boş değil, last_name char (20) boş değil, employee_id int null değil)Mevcut veritabanında "personal_info" başlıklı bir tablo oluşturur. Örnekte, tablo üç özellik içerir: first_name, last_name ve employee_id ile birlikte bazı ek bilgiler.
KULLANIM. USE komutu, çalışmak istediğiniz veritabanını DBMS'nizde belirtmenize izin verir. Örneğin, şu anda satış veritabanında çalışıyorsanız ve çalışan veritabanını etkileyecek bazı komutlar vermek istiyorsanız, bunları aşağıdaki SQL komutuyla doldurun:
USE çalışanlarıVerileri manipüle eden SQL komutlarını yayınlamadan önce her zaman çalıştığınız veritabanının bilincinde olmak önemlidir.
ALTER. Veritabanında bir tablo oluşturduktan sonra tanımını değiştirmek isteyebilirsiniz. ALTER komutu, silmeden ve yeniden oluşturmadan bir tablonun yapısında değişiklik yapmanızı sağlar. Aşağıdaki komuta bir göz atın:
ALTER TABLE personal_info ADD maaş parası nullBu örnek, personal_info tablosuna bir çalışanın maaşı için yeni bir özellik ekler. "Para" argümanı, bir çalışanın maaşının dolar ve sent formatı kullanılarak saklandığını belirtir. Son olarak, "null" anahtar sözcüğü veritabanına, bu alan için herhangi bir çalışan için değer içermemesi gerektiğini söyler.
DÜŞÜRMEK. Veri Tanımlama Dili, DROP'un son komutu, tüm veritabanı nesnelerini DBMS'mizden kaldırmamızı sağlar. Örneğin, oluşturduğumuz personal_info tablosunu kalıcı olarak kaldırmak istiyorsak aşağıdaki komutu kullanırız:
DROP TABLE personal_infoBenzer şekilde, aşağıdaki komut, tüm çalışan veritabanını kaldırmak için kullanılır:
DROP DATABASE çalışanlarıBu komutu dikkatli kullanın. DROP komutu, tüm veri yapılarını veritabanınızdan kaldırır. Tek tek kayıtları kaldırmak isterseniz, Veri İşleme Dilinin DELETE komutunu kullanın.
Veri İşleme Dili Komutları
Veri Manipülasyon Dili (DML) veritabanı bilgilerini almak, eklemek ve değiştirmek için kullanılır. Bu komutlar, veritabanının rutin çalışması sırasında tüm veritabanı kullanıcıları tarafından kullanılır.
INSERT. SQL'deki INSERT komutu mevcut bir tabloya kayıt eklemek için kullanılır. Bir önceki bölümdeki personal_info örneğine dönersek, İK departmanımızın veritabanına yeni bir çalışan eklemesi gerektiğini hayal edin. Buna benzer bir komut kullanabilirsiniz:
Kayıt için dört değer belirtildiğini unutmayın. Bunlar, tanımlandıkları sıraya göre tablo özelliklerine karşılık gelir: first_name, last_name, employee_id ve maaş.
SEÇ. SELECT komutu, SQL'de en çok kullanılan komuttur. Veritabanı kullanıcılarının istedikleri bilgileri operasyonel bir veritabanından almasını sağlar. Çalışan veritabanındaki personal_info tablosunu kullanarak birkaç örneğe bir göz atın.
Aşağıda gösterilen komut, personal_info tablosunda yer alan tüm bilgileri alır. Yıldız işaretinin SQL'de joker karakter olarak kullanıldığını unutmayın. Bu tam anlamıyla "personal_info tablosundan her şeyi seçin" anlamına gelir.
Alternatif olarak, kullanıcılar veritabanından alınan öznitelikleri sınırlamak isteyebilir. Örneğin, İnsan Kaynakları departmanı, şirketteki tüm çalışanların soyadlarının bir listesini isteyebilir. Aşağıdaki SQL komutu yalnızca bu bilgileri alır:
Last_info FROM adlı kullanıcıdan last_ninWHERE yan tümcesi, belirtilen ölçütleri karşılayanlara alınan kayıtları sınırlamak için kullanılabilir. CEO, yüksek ücretli çalışanların personel kayıtlarını gözden geçirmekle ilgilenebilir. Aşağıdaki komut, $ 50.000'den daha büyük bir maaş değerine sahip kayıtlar için personal_info içinde bulunan tüm verileri alır:
SELECT * from personal_info NEREDE maaş> 50000 $GÜNCELLEŞTİRME. UPDATE komutu, bir tabloda yer alan bilgileri toplu veya tek tek olarak değiştirmek için kullanılabilir. Şirketin tüm çalışanlara yıllık olarak maaşlarında yüzde 3 yaşam maliyeti artışı sağladığını varsayalım. Aşağıdaki SQL komutu, bunu veritabanında saklanan tüm çalışanlara hızlı bir şekilde uygulamak için kullanılabilir:
UPDATE personal_info SET maaş = maaş * 1.03Yeni çalışan Bart Simpson, görev çağrısı dışında ve ötesinde bir performans sergilediğinde, yönetim, yıldız başarılarını 5.000 $ 'lık zamlarla tanımak ister. WHERE maddesi, bu zam için Bart'ı ayırmak için kullanılabilir:
UPDATE personal_info SET maaş = maaş + $ 5000 WHERE staff_id = 12345SİL. Son olarak, DELETE komutuna bir bakalım. Bu komutun sözdiziminin, diğer DML komutlarınınkine benzer olduğunu göreceksiniz. Ne yazık ki, en son kurumsal kazanç raporumuz beklentileri tam olarak karşılamamış ve kötü Bart işten çıkarılmıştır. Bir WHERE yan tümcesine sahip DELETE komutu, kaydını personal_info tablosundan kaldırmak için kullanılabilir:
Personal_info WHERE adlı kullanıcıdan DELETEBİRLEŞTİRMELER
Artık SQL'in temellerini öğrendiğinize göre, dilin sunabileceği en güçlü kavramlardan birine geçme zamanı geldi - JOIN bildirisi. Bir JOIN bildirimi, çok miktarda veriyi verimli bir şekilde işlemek için birden çok tablodaki verileri birleştirmenizi sağlar. Bu ifadeler, bir veritabanının gerçek gücünün bulunduğu yerdir.
İki tablodan verileri birleştirmek için temel bir JOIN işleminin kullanımını keşfetmek için PERSONAL_INFO tablosunu kullanarak örnekle devam edin ve karışıma ek bir tablo ekleyin. Aşağıdaki ifadeyle oluşturulan DISCIPLINARY_ACTION adlı bir tablonuz olduğunu varsayalım:
Bu tablo şirket çalışanları üzerindeki disiplin işlemlerinin sonuçlarını içermektedir. Çalışan numarası dışındaki çalışanla ilgili herhangi bir bilgi içermediğini fark edeceksiniz. Bilgileri DISCIPLINARY_ACTION ve PERSONAL_INFO tablolarından birleştirmek isteyebileceğiniz birçok senaryo hayal etmek kolaydır.
Tüm çalışanlara karşı yapılan 40.000 $ 'dan fazla maaşla yapılan disiplin cezalarını listeleyen bir rapor hazırlamakla görevlendirildiğinizi varsayalım. Bu durumda bir JOIN işleminin kullanımı basittir. Bu bilgiyi aşağıdaki komutu kullanarak alabiliriz:
Kod, FROM yan tümcesinde katılmak istediğimiz iki tabloyu belirtir ve daha sonra, WHERE yan tümcesindeki sonuçları, eşleşen çalışan kimlikleri olan ve 40.000 $ 'dan daha yüksek bir maaş ölçütlerimizle karşılaştıran kayıtları sınırlamak için bir ifade içerir.