SQL Temelleri

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:

CREAT DATABASE çalışanları

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ı null

Bu ö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_info

Benzer ş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:

Personal_info değerleri INSERT ('bart', 'simpson', 12345, 45000 $)

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.

SELECT * 'den kişisel_info

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_nin

WHERE 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.03

Yeni ç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 = 12345

Sİ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 DELETE

Bİ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:

CREATE TABLE disciplinary_action (action_id int not null, employee_id int değil null, yorum char (500))

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:

Personal_info.first_name, personal_info.last_name, disiplinary_action.comments kişisel_info, disciplinary_WHERE, kişisel_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

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.