30 SQL Sorgu Örneği

30 Sql Sorgu Ornegi



SQL'in tam biçimi Yapılandırılmış Sorgulama dilidir. Veritabanının yapısına ve verilerine erişmek veya bunları değiştirmek için çok kullanışlı bir araçtır. Birçok uygulama, gerekli verileri yapılandırılmış biçimde bir veritabanında kalıcı olarak depolamak için veritabanına ihtiyaç duyar. MySQL, Oracle, SQL Server, vb., uygulamanın verilerini depolamak için popüler veritabanlarıdır. Veritabanının içeriğine erişmek veya içeriğini değiştirmek için SQL'in temellerini öğrenmek için gereklidirler. Bir MariaDB veritabanındaki SQL ifadelerinin temel kullanımları, bu eğitimde 30 SQL sorgu örneği kullanılarak gösterilmektedir.

Önkoşullar

Bu öğreticideki örnekleri uygulamadan önce istemciyle birlikte veritabanı sunucusunu kurmanız gerekir. Bu eğitimde MariaDB veritabanı sunucusu ve istemcisi kullanılmaktadır.

1. Sistemi güncellemek için aşağıdaki komutları çalıştırın:







$ sudo apt-get güncellemesi

2. MariaDB sunucusunu ve istemcisini kurmak için aşağıdaki komutu çalıştırın:



$ sudo apt-get mariadb-server mariadb-client'i kurun

3. MariaDB veritabanına yönelik güvenlik komut dosyasını yüklemek için aşağıdaki komutu çalıştırın:



$ sudo mysql_secure_installation

4. MariaDB sunucusunu yeniden başlatmak için aşağıdaki komutu çalıştırın:





$ sudo /etc/init.d/mariadb yeniden başlatma

6. MariaDB sunucusunda oturum açmak için aşağıdaki komutu çalıştırın:

$ sudo mariadb -u kök -p

SQL Sorgu Örneklerinin Listesi



  1. Veritabanını Oluşturun
  2. Tabloları Oluşturun
  3. Tablo Adını Yeniden Adlandırın
  4. Tabloya Yeni Sütun Ekleme
  5. Sütunu Tablodan Çıkarın
  6. Tabloya Tek Satır Ekle
  7. Tabloya Birden Çok Satır Ekle
  8. Tablodaki Belirli Alanların Tümünü Okuyun
  9. Tablodan Verileri Filtreledikten Sonra Tabloyu Okuyun
  10. Verileri Boole Mantığına Göre Filtreledikten Sonra Tabloyu Okuyun
  11. Veri Aralığına Göre Satırları Filtreledikten Sonra Tabloyu Okuyun
  12. Tabloyu Belirli Sütunlara Göre Sıraladıktan Sonra Tabloyu Okuyun.
  13. Sütunun Alternatif Adını Ayarlayarak Tabloyu Okuyun
  14. Tablodaki Toplam Satır Sayısını Say
  15. Verileri Birden Fazla Tablodan Okuyun
  16. Belirli Alanları Gruplandırarak Tabloyu Okuyun
  17. Yinelenen Değerleri Çıkardıktan Sonra Tabloyu Okuyun
  18. Satır Sayısını Sınırlayarak Tabloyu Okuyun
  19. Kısmi Eşleşmeye Göre Tabloyu Okuyun
  20. Tablonun Belirli Alanının Toplamını Say
  21. Belirli Alanın Maksimum ve Minimum Değerlerini Bulun
  22. Bir Alanın Belirli Bir Bölümündeki Verileri Okuyun
  23. Birleştirmeden Sonra Tablo Verilerini Oku
  24. Matematiksel Hesaplamadan Sonra Tablo Verilerini Okuyun
  25. Tablonun Görünümünü Oluşturma
  26. Belirli Koşula Göre Tabloyu Güncelleyin
  27. Belirli Koşula Göre Tablo Verilerini Silin
  28. Tablodan Tüm Kayıtları Sil
  29. Masayı Bırak
  30. Veritabanını Bırak

Veritabanını Oluşturun

Kütüphane Yönetim Sistemi için basit bir veri tabanı tasarlamamız gerektiğini varsayalım. Bu görevi gerçekleştirmek için, sunucuda birden çok ilişkisel tablo içeren bir veritabanı oluşturulması gerekir. Veritabanı sunucusunda oturum açtıktan sonra, MariaDB veritabanı sunucusunda “library” adlı bir veritabanı oluşturmak için aşağıdaki komutu çalıştırın:

YARATMAK VERİ TABANI kütüphane;

Çıktı, kitaplık veritabanının sunucuda oluşturulduğunu gösterir:

Farklı türde veritabanı işlemleri gerçekleştirmek üzere sunucudan veritabanını seçmek için aşağıdaki komutu çalıştırın:

KULLANMAK kütüphane;

Çıktı, kitaplık veritabanının seçildiğini gösterir:

Tabloları Oluşturun

Bir sonraki adım, veritabanının verileri depolaması için gerekli tabloları oluşturmaktır. Öğreticinin bu bölümünde üç tablo oluşturulur. Bunlar kitaplar, üyeler ve ödünç_info tablolarıdır.

  1. Kitaplar tablosu, kitaplarla ilgili tüm verileri saklar.
  2. Üyeler tablosu, kitabı kütüphaneden ödünç alan üyeler hakkındaki tüm bilgileri saklar.
  3. Bord_info tablosu hangi kitabın hangi üye tarafından ödünç alındığı bilgisini saklar.

1. Kitaplar Masa

Yedi alan ve bir birincil anahtar içeren 'kitaplık' veritabanında 'kitaplar' adlı bir tablo oluşturmak için aşağıdaki SQL deyimini çalıştırın. Burada “id” alanı birincil anahtardır ve veri tipi int'dir. “id” alanı için auto_increment özelliği kullanılır. Bu nedenle, yeni bir satır eklendiğinde bu alanın değeri otomatik olarak artırılır. varchar veri türü, değişken uzunluktaki dize verilerini depolamak için kullanılır. Başlık, yazar, yayın ve isbn alanları dize verilerini saklar. total_copy ve price alanlarının veri türü int'dir. Dolayısıyla, bu alanlar sayısal verileri saklar.

YARATMAK MASA kitabın (
İD INT OTOMATİK ARTIŞ ,
başlık VARCHAR ( elli ) ,
yazar VARCHAR ( elli ) ,
yayın VARCHAR ( 100 ) ,
isbn VARCHAR ( 30 ) ,
toplam_kopya INT ,
fiyat INT ,
ÖNCELİK ANAHTAR ( İD ) ) ;

Çıktı, 'kitaplar' tablosunun başarıyla oluşturulduğunu gösterir:

2. Üyeler Masa

5 alan ve bir birincil anahtar içeren 'kütüphane' veritabanında 'üyeler' adlı bir tablo oluşturmak için aşağıdaki SQL deyimini çalıştırın. 'id' alanı, 'books' tablosu gibi auto_increment özelliğine sahiptir. Diğer alanların veri türü varchar'dır. Dolayısıyla, bu alanlar dizi verilerini saklar.

YARATMAK MASA üyeler (
İD INT OTOMATİK ARTIŞ ,
isim VARCHAR ( elli ) ,
adres VARCHAR ( 200 ) ,
İletişim Numarası VARCHAR ( onbeş ) ,
e-posta VARCHAR ( elli ) ,
ÖNCELİK ANAHTAR ( İD ) ) ;

Çıktı, 'üyeler' tablosunun başarıyla oluşturulduğunu gösterir:

3. Borç_bilgisi Masa

6 alan içeren 'kütüphane' veritabanında 'borrow_info' adlı bir tablo oluşturmak için aşağıdaki SQL deyimini çalıştırın. Burada “id” alanı birincil anahtardır ancak bu alan için auto_increment özelliği kullanılmaz. Böylece tabloya yeni bir kayıt girildiğinde bu alana manuel olarak benzersiz bir değer girilir. book_id ve üye_id alanları bu tablo için yabancı anahtarlardır; bunlar 'kitaplar' tablosunun ve 'üyeler' tablosunun birincil anahtarıdır. Ödünç_tarihi ve iade_tarihi alanlarının veri türü tarihtir. Dolayısıyla bu iki alan tarih değerini “YYYY-AA-GG” formatında saklar.

YARATMAK MASA ödünç_bilgi (
İD INT ,
ödünç alma tarihi TARİH ,
kitap_kimliği INT ,
Kullanıcı Kimliği INT ,
dönüş tarihi TARİH ,
DURUM VARCHAR ( 10 ) ,
ÖNCELİK ANAHTAR ( İD ) ,
YABANCI ANAHTAR ( kitap_kimliği ) REFERANSLAR kitabın ( İD ) ,
YABANCI ANAHTAR ( Kullanıcı Kimliği ) REFERANSLAR üyeler ( İD ) ) ;

Çıktı, 'borrow_info' tablosunun başarıyla oluşturulduğunu gösterir:

Tablo Adını Yeniden Adlandırın

ALTER TABLE deyimi, SQL deyimlerinde birden çok amaç için kullanılabilir. “borrow_info” tablosunun adını “book_borrow_info” olarak değiştirmek için aşağıdaki ALTER TABLE deyimini çalıştırın. Ardından, tablo adının değişip değişmediğini kontrol etmek için SHOW tables deyimi kullanılabilir.

DEĞİŞİKLİK MASA ödünç_bilgi YENİDEN İSİMLENDİRMEK İLE book_borrow_info;
GÖSTERMEK TABLOLAR ;

Çıktı, tablo adının başarıyla değiştirildiğini ve borç_info tablosunun adının kitap_borrow_info olarak değiştirildiğini gösterir:

Tabloya Yeni Sütun Ekleme

ALTER TABLE ifadesi, tablo oluşturulduktan sonra bir veya daha fazla sütun eklemek veya silmek için kullanılabilir. Aşağıdaki ALTER TABLE ifadesi, tablo üyelerine “status” adlı yeni bir alan ekler. DESCRIBE ifadesi tablo yapısının değişip değişmediğini göstermek için kullanılır.

DEĞİŞİKLİK MASA üyeler EKLEMEK DURUM VARCHAR ( 10 ) ;
BETİMLEMEK üyeler;

Çıktı, 'üyeler' tablosuna 'durum' olan yeni bir sütunun eklendiğini ve tablonun veri türünün varchar olduğunu gösterir:

Sütunu Tablodan Çıkarın

Aşağıdaki ALTER TABLE ifadesi, “üyeler” tablosundan “durum” adlı alanı siler. DESCRIBE ifadesi tablo yapısının değişip değişmediğini göstermek için kullanılır.

DEĞİŞİKLİK MASA üyeler DÜŞÜRMEK KOLON DURUM ;
BETİMLEMEK üyeler;

Çıktı, 'durum' sütununun 'üyeler' tablosundan kaldırıldığını gösterir:

Tabloya Tek Satır Ekle

INSERT INTO ifadesi, tabloya bir veya daha fazla satır eklemek için kullanılır. 'Kitaplar' tablosuna tek bir satır eklemek için aşağıdaki SQL deyimini çalıştırın. Burada “id” alanı, auto-increment özelliği için yeni bir kayıt eklendiğinde kayda otomatik olarak eklendiğinden bu sorgudan çıkarılmıştır. Bu alan INSERT deyiminde kullanılıyorsa, değer NULL olmalıdır.

SOKMAK İÇİNE kitabın ( başlık , yazar , yayın , isbn , toplam_kopya , fiyat )
DEĞERLER ( '10 Dakikada SQL' , 'Ben Forta' , 'Sams Yayıncılık' , '784534235' , 5 , 39 ) ;

Çıktı, 'kitaplar' tablosuna bir kaydın başarıyla eklendiğini gösterir:

Veriler, her alan değerinin ayrı ayrı atandığı SET yan tümcesi kullanılarak tabloya eklenebilir. INSERT INTO ve SET deyimlerini kullanarak 'üyeler' tablosuna tek bir satır eklemek için aşağıdaki SQL deyimini çalıştırın. Bir önceki örnekte olduğu gibi bu sorguda da aynı nedenle “id” alanı atlanmıştır.

SOKMAK İÇİNE üyeler
AYARLAMAK isim = 'John Sina' , adres = '34, Dhanmondi 9/A, Dakka' , İletişim Numarası = '+14844731336' , e-posta = 'john@gmail.com' ;

Çıktı, üyeler tablosuna başarıyla bir kayıt eklendiğini gösterir:

'book_borrow_info' tablosuna tek bir satır eklemek için aşağıdaki SQL deyimini çalıştırın:

SOKMAK İÇİNE kitap_borrow_info ( İD , ödünç alma tarihi , kitap_kimliği , Kullanıcı Kimliği , dönüş tarihi , DURUM )
DEĞERLER ( 1 , '2023-03-12' , 1 , 1 , '2023-03-19' , 'ödünç alındı' ) ;

Çıktı, “book_borrow_info” tablosuna bir kayıt eklendiğini gösterir:

Tabloya Birden Çok Satır Ekle

Bazen, tek bir INSERT INTO deyimi kullanılarak aynı anda birçok kayıt eklenmesi gerekir. Tek bir INSERT INTO deyimi kullanarak 'kitaplar' tablosuna üç kayıt eklemek için aşağıdaki SQL deyimini çalıştırın. Bu durumda VALUES yan tümcesi bir kez kullanılır ve her kaydın verileri virgülle ayrılır.

SOKMAK İÇİNE kitabın ( başlık , yazar , yayın , isbn , toplam_kopya , fiyat )
DEĞERLER
( 'SQL Yemek Kitabı (O'Reilly)' , 'Anthony Molinaro' , 'O'Reilly' , '2467777532' , 10 , 49 ) ,
( 'Ölümlüler için SQL Sorguları' , 'John Viescas' , 'Addison-Wesley' , '673456234' , onbeş , 35 ) ,
( 'SQL'i Öğreniyorum' , 'Alan Beaulieu' , 'Penguin Kitapları Ltd' , '534433222' , 12 , Dört beş ) ;

Çıktı, 'kitaplar' tablosuna üç kaydın eklendiğini gösterir:

Tablodaki Belirli Alanların Tümünü Okuyun

SELECT ifadesi, “veritabanı” tablosundaki verileri okumak için kullanılır. SELECT ifadesinde tablonun tüm alanlarını belirtmek için “*” simgesi kullanılır. Kitaplar tablosunun tüm kayıtlarını okumak için aşağıdaki SQL komutunu çalıştırın:

SEÇME * İTİBAREN kitabın;

Çıktı, 4 kayıt içeren kitaplar tablosunun tüm kayıtlarını gösterir:

'Üyeler' tablosunun üç alanının tüm kayıtlarını okumak için aşağıdaki SQL komutunu çalıştırın:

SEÇME isim , e-posta , İletişim Numarası İTİBAREN üyeler;

Çıktı, 'üyeler' tablosunun üç alanının tüm kayıtlarını gösterir:

Tablodan Verileri Filtreledikten Sonra Tabloyu Okuyun

WHERE yan tümcesi, bir veya daha fazla koşula dayalı olarak bir tablodaki verileri okumak için kullanılır. Yazar adının 'John Viescas' olduğu 'kitaplar' tablosunun tüm alanlarının tüm kayıtlarını okumak için aşağıdaki SELECT deyimini çalıştırın.

SEÇME * İTİBAREN kitabın NEREDE yazar = 'John Viescas' ;

'Kitaplar' tablosu, çıktıda gösterilen WHERE yan tümcesinin koşuluyla eşleşen bir kayıt içerir:

Verileri Boole Mantığına Göre Filtreledikten Sonra Tabloyu Okuyun

Boolean AND mantığı, WHERE yan tümcesinde, tüm koşullar doğru olursa doğru döndüren birden çok koşulu tanımlamak için kullanılır. Mantıksal AND'yi kullanarak, total_copy alanının değerinin 10'dan büyük ve fiyat alanının değerinin 45'ten küçük olduğu 'kitaplar' tablosunun tüm alanlarının tüm kayıtlarını okumak için aşağıdaki SELECT deyimini çalıştırın.

SEÇME * İTİBAREN kitabın NEREDE toplam_kopya > 10 VE fiyat < Dört beş ;

Books tablosu, çıktıda gösterilen WHERE yan tümcesinin koşuluyla eşleşen bir kayıt içerir:

Boole OR mantığı, koşullardan herhangi birinin doğru olması durumunda doğru döndüren WHERE yan tümcesinde birden çok koşulu tanımlamak için kullanılır. Total_copy alanının değerinin 10'dan fazla veya fiyat alanının değerinin 40'tan fazla olduğu 'kitaplar' tablosunun tüm alanlarının tüm kayıtlarını okumak için aşağıdaki SELECT deyimini çalıştırın.

SEÇME * İTİBAREN kitabın NEREDE toplam_kopya > 10 VEYA fiyat > 40 ;

Books tablosu, çıktıda gösterilen WHERE yan tümcesinin koşuluyla eşleşen üç kayıt içerir:

Boolean NOT mantığı, koşul doğru olduğunda false döndürmek için kullanılır ve koşul yanlış olduğunda true döndürmek için kullanılır. Yazar alanı değerinin 'Addison-Wesley' olmadığı 'kitaplar' tablosunun tüm alanlarının tüm kayıtlarını okumak için aşağıdaki SELECT deyimini çalıştırın.

SEÇME * İTİBAREN kitabın NEREDE OLUMSUZ yazar = 'Addison-Wesley' ;

“books” tablosu, çıktıda gösterilen WHERE yan tümcesinin koşuluyla eşleşen üç kayıt içerir:

Veri Aralığına Göre Satırları Filtreledikten Sonra Tabloyu Okuyun

BETWEEN yan tümcesi, veritabanı tablosundan veri aralığını okumak için kullanılır. Fiyat alanı değerinin 40 ile 50 arasında olduğu 'kitaplar' tablosunun tüm alanlarının tüm kayıtlarını okumak için aşağıdaki SELECT deyimini çalıştırın.

SEÇME * İTİBAREN kitabın NEREDE fiyat ARASINDA 40 VE elli ;

Books tablosu, çıktıda gösterilen WHERE yan tümcesinin koşuluyla eşleşen iki kayıt içerir. 39 ve 35 fiyat değerleri defterleri, aralığın dışında oldukları için sonuç kümesinden çıkarılır.

Tabloyu Sıraladıktan Sonra Tabloyu Okuyun

ORDER BY deyimi, SELECT ifadesinin sonuç kümesini artan veya azalan düzende sıralamak için kullanılır. ORDER BY yan tümcesi ASC veya DESC olmadan kullanılırsa, sonuç kümesi varsayılan olarak artan düzende sıralanır. Aşağıdaki SELECT deyimi, başlık alanına göre kitaplar tablosundaki sıralanmış kayıtları okur:

SEÇME * İTİBAREN kitabın EMİR İLE başlık;

'Kitaplar' tablosunun başlık alanındaki veriler, çıktıda artan düzende sıralanır. “Kitaplar” tablosunun başlık alanı artan sırada sıralanırsa, “SQL Öğrenme” kitabı alfabetik olarak önce gelir.

Sütunun Alternatif Adını Ayarlayarak Tabloyu Okuyun

Sonuç kümesini daha okunabilir kılmak için sorguda sütunun alternatif adı kullanılır. Alternatif ad, 'AS' anahtar kelimesi kullanılarak ayarlanır. Aşağıdaki SQL ifadesi, alternatif adları ayarlayarak başlık ve yazar alanlarının değerlerini döndürür.

SEÇME başlık GİBİ 'Kitap Adı' , yazar GİBİ `Yazar Adı`
İTİBAREN kitabın;

Çıktıda başlık alanı “Kitap Adı” alternatif adıyla ve yazar alanı “Yazar Adı” alternatif adıyla görüntülenir.

Tablodaki Toplam Satır Sayısını Say

COUNT(), belirli bir alana veya tüm alanlara göre toplam satır sayısını saymak için kullanılan bir SQL toplama işlevidir. “*” simgesi tüm alanları belirtmek için, COUNT(*) ise tablonun tüm kayıtlarını saymak için kullanılır.

Aşağıdaki sorgu, kitaplar tablosunun toplam kayıtlarını sayar:

SEÇME SAYMAK ( * ) GİBİ `Toplam Kitaplar` İTİBAREN kitabın;

Çıktıda 'kitaplar' tablosundaki dört kayıt gösterilir:

Aşağıdaki sorgu, 'id' alanına dayalı olarak 'üyeler' tablosunun toplam satırlarını sayar:

SEÇME SAYMAK ( İD ) GİBİ `Toplam Üyeler` İTİBAREN üyeler;

'Üyeler' tablosunun çıktıda yazdırılan iki id değeri vardır:

Verileri Birden Fazla Tablodan Okuyun

Önceki SELECT ifadeleri, verileri tek bir tablodan aldı. Ancak SELECT deyimi, iki veya daha fazla tablodan veri almak için kullanılabilir. Aşağıdaki SELECT sorgusu, 'kitaplar' tablosundan başlık ve yazar alanlarının değerlerini ve 'kitap_borrow_bilgisi' tablosundan ödünç_tarihi okur.

SEÇME başlık , yazar , ödünç alma tarihi
İTİBAREN kitabın , kitap_borrow_info
NEREDE kitabın . İD = kitap_borrow_info . kitap_kimliği;

Aşağıdaki çıktı “SQL in 10 Minutes” kitabının iki kez ödünç alındığını ve “SQL Cookbook (O’Reilly)” kitabının bir kez ödünç alındığını göstermektedir:

Veriler, bu eğitimde açıklanmayan INNER JOIN, OUTER JOIN vb. gibi farklı JOINS türleri kullanılarak birden çok tablodan alınabilir.

Belirli Alanları Gruplandırarak Tabloyu Okuyun

GROUP BY deyimi, satırları bir veya daha fazla alana göre gruplandırarak tablodaki kayıtları okumak için kullanılır. Bu tür sorguya özet sorgu denir. GROUP BY deyiminin kullanımını kontrol etmek için tablolara birden çok satır eklemeniz gerekir. 'Members' tablosuna bir kayıt ve 'book_borrow_info' tablosuna iki kayıt eklemek için aşağıdaki INSERT deyimlerini çalıştırın.

SOKMAK İÇİNE üyeler
AYARLAMAK isim = 'O Hasan' , adres = '11/A, Jigatola, Dakka' , İletişim Numarası = '+8801734563423' , e-posta = 'o@gmail.com' ;
SOKMAK İÇİNE kitap_borrow_info ( İD , ödünç alma tarihi , kitap_kimliği , Kullanıcı Kimliği , dönüş tarihi , DURUM )
DEĞERLER ( 2 , '2023-04-10' , 1 , 1 , '2023-04-15' , 'İade' ) ;
SOKMAK İÇİNE kitap_borrow_info ( İD , ödünç alma tarihi , kitap_kimliği , Kullanıcı Kimliği , dönüş tarihi , DURUM )
DEĞERLER ( 3 , '2023-05-20' , 2 , 1 , '2023-05-30' , 'ödünç alındı' ) ;

Önceki sorguları yürüterek verileri ekledikten sonra, ödünç alınan kitapların toplam sayısını ve GROUP BY yan tümcesini kullanan her üyeye göre üyenin adını sayan aşağıdaki SELECT deyimini çalıştırın. Burada COUNT() işlevi, GROUP BY yan tümcesini kullanarak kayıtları yeniden gruplandırmak için kullanılan alanda çalışır. Burada gruplama yapmak için “members” tablosunun book_id alanı kullanılır.

SEÇME SAYMAK ( kitap_kimliği ) GİBİ `Ödünç alınan toplam kitap` , isim GİBİ `Üye Adı` İTİBAREN kitabın , üyeler , kitap_borrow_info NEREDE kitabın . İD = kitap_borrow_info . kitap_kimliği VE üyeler . İD = kitap_borrow_info . Kullanıcı Kimliği GRUP İLE kitap_borrow_info . Kullanıcı Kimliği;

Kitapların, “members” ve “book_borrow_info” tablolarının verilerine göre “John Sina” 2 kitap ve “Ella Hasan” 1 kitap ödünç almıştır.

Yinelenen Değerleri Çıkardıktan Sonra Tabloyu Okuyun

Bazen, gereksiz olan tablo verilerine dayalı olarak SELECT ifadesinin sonuç kümesinde yinelenen veriler oluşturulur. Örneğin, aşağıdaki SELECT ifadesi, 'book_borrow_info' tablosunun verileri için yinelenen kayıtları döndürür.

SEÇME isim , e-posta
İTİBAREN üyeler , kitap_borrow_info
NEREDE kitap_borrow_info . Kullanıcı Kimliği = üyeler . İD;

Çıktıda, 'John Sina' üyesi iki kitap ödünç aldığı için aynı kayıt iki kez görünüyor. Bu sorun, DISTINCT anahtar sözcüğü kullanılarak çözülebilir. Yinelenen kayıtları sorgu sonucundan kaldırır.

Aşağıdaki SELECT deyimi, sorguda DISTINCT anahtar sözcüğünü kullanarak yinelenen değerleri atladıktan sonra 'members' ve 'book_borrow_info' tablolarından sonuç kümesinin benzersiz kayıtlarını oluşturur.

SEÇME BELİRGİN isim , e-posta
İTİBAREN üyeler , kitap_borrow_info
NEREDE kitap_borrow_info . Kullanıcı Kimliği = üyeler . İD;

Çıktı, yinelenen değerin sonuç kümesinden kaldırıldığını gösterir:

Satır Sayısını Sınırlayarak Tabloyu Okuyun

Bazen satır sayısını sınırlayarak veritabanı tablosundan belirli sayıda kaydın sonuç kümesinin başından, sonuç kümesinin sonundan veya sonuç kümesinin ortasından okunmasını gerektirir. Birçok şekilde yapılabilir. Satırları sınırlamadan önce, kitaplar tablosunda kaç kayıt olduğunu kontrol etmek için aşağıdaki SQL deyimini çalıştırın:

SEÇME * İTİBAREN kitabın;

Çıktı, kitaplar tablosunun dört kaydı olduğunu gösterir:

Aşağıdaki SELECT deyimi, 2 değeriyle LIMIT yan tümcesini kullanarak “books” tablosundaki ilk iki kaydı okur:

SEÇME * İTİBAREN kitabın SINIR 2 ;

Çıktıda gösterilen 'kitaplar' tablosunun ilk iki kaydı alınır:

FETCH yan tümcesi, LIMIT yan tümcesinin alternatifidir ve kullanımı aşağıdaki SELECT ifadesinde gösterilmektedir. 'Kitaplar' tablosunun ilk 3 kaydı, SELECT deyimindeki FETCH FIRST 3 ROWS ONLY yan tümcesi kullanılarak alınır:

SEÇME * İTİBAREN kitaplar GETİR BİRİNCİ 3 SATIRLAR SADECE ;

Çıktı, 'kitaplar' tablosunun ilk 3 kaydını gösterir:

3'ten iki kayıt rd kitaplar tablosunun satırları, aşağıdaki SELECT deyimi yürütülerek alınır. LIMIT yan tümcesi burada 2, 2 değeri ile kullanılır, burada ilk 2 tablonun 0'dan saymaya başlayan satırının başlangıç ​​konumunu, ikinci 2 ise başlangıç ​​konumundan saymaya başlayan satır sayısını tanımlar.

SEÇME * İTİBAREN kitabın SINIR 2 , 2 ;

Önceki sorgu yürütüldükten sonra aşağıdaki çıktı görünür:

Tablonun sonundaki kayıtlar, tablo otomatik artan birincil anahtar değerine göre azalan düzende sıralanarak ve LIMIT yan tümcesi kullanılarak okunabilir. 'Kitaplar' tablosundan son 2 kaydı okuyan aşağıdaki SELECT deyimini çalıştırın. Burada sonuç kümesi “id” alanına göre azalan şekilde sıralanır.

SEÇME * İTİBAREN kitabın EMİR İLE İD TANIM SINIR 2 ;

Kitaplar tablosunun son iki kaydı aşağıdaki çıktıda gösterilir:

Kısmi Eşleşmeye Göre Tabloyu Okuyun

LIKE yan tümcesi, kısmi eşleştirme ile tablodan kayıtları almak için “%” simgesiyle birlikte kullanılır. Aşağıdaki SELECT deyimi, LIKE deyimini kullanarak yazar alanının değerin başında 'John' kelimesini içerdiği 'kitaplar' tablosundaki kayıtları arar. Burada, arama dizisinin sonunda “%” simgesi kullanılır.

SEÇME * İTİBAREN kitabın NEREDE yazar BEĞENMEK 'John%' ;

Yazar alanının değerinin başında 'John' dizesini içeren 'kitaplar' tablosunda yalnızca bir kayıt vardır.

Aşağıdaki SELECT deyimi, LIKE yan tümcesini kullanarak, yayın alanının değerin sonunda 'Ltd' ifadesini içerdiği 'kitaplar' tablosundaki kayıtları arar. Burada, arama dizisinin başında “%” simgesi kullanılır:

SEÇME * İTİBAREN kitabın NEREDE yayın BEĞENMEK '%Ltd' ;

Yayın alanının sonunda 'Ltd' dizesini içeren 'kitaplar' tablosunda yalnızca bir kayıt vardır.

Aşağıdaki SELECT deyimi, LIKE yan tümcesini kullanarak, başlık alanının herhangi bir değerin 'Sorguları' içerdiği 'kitaplar' tablosundaki kayıtları arar. Burada, arama dizesinin her iki tarafında “%” sembolü kullanılır:

SEÇME * İTİBAREN kitabın NEREDE başlık BEĞENMEK '%Sorguları%' ;

Başlık alanında 'Sorgular' dizesini içeren 'kitaplar' tablosunda yalnızca bir kayıt bulunmaktadır.

Tablonun Belirli Alanının Toplamını Say

SUM(), tablonun herhangi bir sayısal alanının değerlerinin toplamını hesaplayan, SQL'in başka bir yararlı toplama işlevidir. Bu işlev, sayısal olması gereken bir argüman alır. Aşağıdaki SQL deyimi, tamsayı değerleri içeren 'kitaplar' tablosunun fiyat alanındaki tüm değerlerin toplamını hesaplar.

SEÇME TOPLAM ( fiyat ) GİBİ `Kitap Toplam Fiyatı`
İTİBAREN kitabın;

Çıktı, 'kitaplar' tablosunun fiyat alanındaki tüm değerlerin toplam değerini gösterir. Fiyat alanının dört değeri 39, 49, 35 ve 45'tir. Bu değerlerin toplamı 168'dir.

Belirli Alanın Maksimum ve Minimum Değerlerini Bulun

MIN() ve MAX() toplama işlevleri, tablonun belirli alanının minimum ve maksimum değerlerini bulmak için kullanılır. Her iki işlev de sayısal olması gereken bir bağımsız değişken alır. Aşağıdaki SQL ifadesi, bir tamsayı olan 'books' tablosundan minimum fiyat değerini bulur.

SEÇME DAK ( fiyat ) GİBİ `Asgari maliyet kitabı` İTİBAREN kitabın;

Otuz beş (35), çıktıda yazdırılan fiyat alanının minimum değeridir.

Aşağıdaki SQL ifadesi, 'kitaplar' tablosundan maksimum fiyat değerini bulur:

SEÇME MAKS. ( fiyat ) GİBİ `Maksimum maliyet kitabı` İTİBAREN kitabın;

Kırk dokuz (49), çıktıda yazdırılan fiyat alanının maksimum değeridir.

Verinin Belirli Bir Kısmını veya Bir Alanı Okuyun

SUBSTR() işlevi, dize verilerinin belirli bir bölümünü veya bir tablonun belirli alanının değerini almak için SQL deyiminde kullanılır. Bu işlev üç bağımsız değişken içerir. İlk bağımsız değişken, dize olan bir tablonun dize değerini veya alan değerini içerir. İkinci argüman, birinci argümandan alınan alt dizginin başlangıç ​​konumunu içerir ve bu değerin sayımı 1'den başlar. Üçüncü argüman, başlangıç ​​konumundan saymaya başlayan alt dizginin uzunluğunu içerir.

Aşağıdaki SELECT deyimi, başlangıç ​​konumu 1 ve uzunluğu 5 olan 'Learn SQL Basics' dizesinden ilk beş karakteri keser ve yazdırır:

SEÇME SUBSTR ( 'SQL Temellerini Öğrenin' , 1 , 5 ) GİBİ 'Alt Dize Değeri' ;

“Learn SQL Basics” dizisinin ilk beş karakteri çıktıda yazdırılan “Learn” dir.

Aşağıdaki SELECT deyimi, başlangıç ​​konumunun 7 ve uzunluğun 3 olduğu 'SQL Temellerini Öğrenin' dizesinden SQL'i keser ve yazdırır:

SEÇME SUBSTR ( 'SQL Temellerini Öğrenin' , 7 , 3 ) GİBİ 'Alt Dize Değeri' ;

Önceki sorgu yürütüldükten sonra aşağıdaki çıktı görünür:

Aşağıdaki SELECT deyimi, 'üyeler' tablosunun ad alanındaki ilk beş karakteri keser ve yazdırır:

SEÇME SUBSTR ( isim , 1 , 5 ) GİBİ `Üye Adı` İTİBAREN üyeler;

Çıktı, 'üyeler' tablosunun ad alanındaki her bir değerin ilk beş karakterini gösterir.

Birleştirmeden Sonra Tablo Verilerini Oku

CONCAT() işlevi, bir tablonun bir veya daha fazla alanını birleştirerek veya tablonun dize verilerini veya belirli alan değerini ekleyerek çıktı oluşturmak için kullanılır. Aşağıdaki SQL deyimi, 'kitaplar' tablosunun başlık, yazar ve fiyat alanlarının değerlerini okur ve CONCAT() işlevi kullanılarak fiyat alanının her değeriyle '$' dize değeri eklenir.

SEÇME başlık GİBİ Başlık , yazar GİBİ Yazar , İLETİŞİM ( '$' , fiyat ) GİBİ Fiyat
İTİBAREN kitabın;

Fiyat alanının değerleri “$” stringi ile birleştirilerek çıktıda yazdırılır.

CONCAT() işlevini kullanarak 'kitaplar' tablosunun başlık ve yazar alanlarının değerlerini 'by' dize değeriyle birleştirmek için aşağıdaki SQL deyimini çalıştırın:

SEÇME İLETİŞİM ( başlık , ' ile ' , yazar ) GİBİ `Kitap adı ve yazarı`
İTİBAREN kitabın;

Önceki SELECT sorgusu yürütüldükten sonra aşağıdaki çıktı görünür:

Matematiksel Bir Hesaplamadan Sonra Tablo Verilerini Okuyun

Bir SELECT deyimi kullanılarak tablonun değerleri alınırken herhangi bir matematiksel hesaplama yapılabilir. %5 indirimi hesapladıktan sonra id, unvan, fiyat ve indirimli fiyat değerini okumak için aşağıdaki SQL deyimini çalıştırın.

SEÇME İD , başlık , fiyat GİBİ `Normal Fiyat` , fiyat - ( fiyat * 5 / 100 ) GİBİ `İndirimli Fiyat`
İTİBAREN kitabın;

Aşağıdaki çıktı, her kitabın normal fiyatını ve indirimli fiyatını gösterir:

Tablonun Görünümünü Oluşturma

GÖRÜNÜM, sorguyu basitleştirmek için kullanılır ve veritabanına ekstra güvenlik sağlar. Bir veya daha fazla tablodan oluşturulan sanal bir tablo gibi çalışır. 'Üyeler' tablosuna dayalı basit bir GÖRÜNÜM oluşturma ve yürütme yöntemi aşağıdaki örnekte gösterilmiştir. GÖRÜNÜM, SELECT deyimi kullanılarak yürütülür. Aşağıdaki SQL deyimi, id, ad, adres ve ilgili kişi_no alanlarıyla 'üyeler' tablosunun bir GÖRÜNÜMÜNÜ oluşturur. SELECT deyimi, üye_görünümünü yürütür.

YARATMAK GÖRÜŞ üye_görünümü GİBİ
SEÇME İD , isim , adres , İletişim Numarası
İTİBAREN üyeler;

SEÇME * İTİBAREN üye_görünümü;

Görünümü oluşturup yürüttükten sonra aşağıdaki çıktı görünür:

Belirli Koşula Göre Tabloyu Güncelleyin

UPDATE deyimi, tablonun içeriğini güncellemek için kullanılır. Herhangi bir UPDATE sorgusu WHERE yan tümcesi olmadan yürütülürse, UPDATE sorgusunda kullanılan tüm alanlar güncellenir. Bu nedenle, uygun WHERE yan tümcesiyle bir UPDATE deyimi kullanmak gereklidir. id alanının değeri 1 olan name ve contact_no alanlarını güncellemek için aşağıdaki UPDATE deyimini çalıştırın. Ardından, verilerin düzgün bir şekilde güncellenip güncellenmediğini kontrol etmek için SELECT deyimini çalıştırın.

GÜNCELLEME üyeler
AYARLAMAK isim = 'Janifer' , İletişim Numarası = '+880175621223'
NEREDE İD = 1 ;

SEÇME * İTİBAREN üyeler;

Aşağıdaki çıktı, UPDATE deyiminin başarıyla yürütüldüğünü gösterir. UPDATE sorgusu kullanılarak id değeri 1 olan kaydın name alanının değeri “Janifer” ve contact_no alanının “+880175621223” olarak değiştirilmesi:

Belirli Koşula Göre Tablo Verilerini Silin

DELETE ifadesi, tablonun belirli içeriğini veya tüm içeriğini silmek için kullanılır. Herhangi bir DELETE sorgusu WHERE yan tümcesi olmadan yürütülürse, tüm alanlar silinir. Bu nedenle, uygun WHERE yan tümcesi ile UPDATE deyimini kullanmak gereklidir. id değeri 4 olan kitaplar tablosundaki tüm verileri silmek için aşağıdaki DELETE deyimini çalıştırın. Ardından, verilerin düzgün bir şekilde silinip silinmediğini kontrol etmek için SELECT deyimini çalıştırın.

SİLMEK İTİBAREN kitabın NEREDE İD = 4 ;
SEÇME * İTİBAREN kitabın;

Aşağıdaki çıktı, DELETE deyiminin başarıyla yürütüldüğünü gösterir. 4 inci kitaplar tablosunun kaydı, DELETE sorgusu kullanılarak kaldırılır:

Tablodan Tüm Kayıtları Sil

WHERE yan tümcesinin atlandığı 'kitaplar' tablosundaki tüm kayıtları silmek için aşağıdaki DELETE deyimini çalıştırın. Ardından, tablo içeriğini kontrol etmek için SELECT sorgusunu yürütün.

SİLMEK İTİBAREN book_borrow_info;
SEÇME * İTİBAREN book_borrow_info;

Aşağıdaki çıktı, DELETE sorgusunu yürüttükten sonra 'kitaplar' tablosunun boş olduğunu gösterir:

Herhangi bir tablo otomatik artış özelliği içeriyorsa ve tablodaki tüm kayıtlar silinmişse, tablo boş bırakıldıktan sonra yeni bir kayıt eklendiğinde otomatik artış alanı son artıştan itibaren saymaya başlar. TRUNCATE deyimi kullanılarak bu sorun çözülebilir. Tablodan tüm kayıtları silmek için de kullanılır ancak otomatik artırma alanı tablodan tüm kayıtları sildikten sonra 1'den saymaya başlar. TRUNCATE deyiminin SQL'i aşağıda gösterilmiştir:

KESME book_borrow_info;

Masayı Bırak

Bir veya daha fazla tablo, tablonun var olup olmadığı kontrol edilerek veya edilmeden düşürülebilir. Aşağıdaki DROP ifadeleri “book_borrow_info” tablosunu siler ve “SHOW tables” ifadesi tablonun sunucuda var olup olmadığını kontrol eder.

DÜŞÜRMEK MASA book_borrow_info;
GÖSTERMEK TABLOLAR ;

Çıktı, 'book_borrow_info' tablosunun kaldırıldığını gösteriyor.

Tablo, sunucuda var olup olmadığı kontrol edildikten sonra düşürülebilir. Kitaplar ve üyeler tablosu sunucuda mevcutsa bu tabloları silmek için aşağıdaki DROP deyimini çalıştırın. Daha sonra “SHOW tables” ifadesi sunucuda tabloların var olup olmadığını kontrol eder.

DÜŞÜRMEK MASA EĞER VAR kitabın , üyeler;
GÖSTERMEK TABLOLAR ;

Aşağıdaki çıktı, tabloların sunucudan silindiğini gösterir:

Veritabanını Bırak

'Kütüphane' veritabanını sunucudan silmek için aşağıdaki SQL deyimini çalıştırın:

DÜŞÜRMEK VERİ TABANI kütüphane;

Çıktı, veritabanının bırakıldığını gösterir.

Çözüm

MariaDB sunucusunun veritabanını oluşturmak, erişmek, değiştirmek ve silmek için en çok kullanılan SQL sorgu örnekleri, bu eğitimde bir veritabanı ve üç tablo oluşturarak gösterilmektedir. Farklı SQL deyimlerinin kullanımları, yeni veritabanı kullanıcısının SQL temellerini doğru bir şekilde öğrenmesine yardımcı olmak için çok basit örneklerle açıklanmaktadır. Karmaşık sorguların kullanımları burada atlanmıştır. Yeni veritabanı kullanıcıları, bu öğreticiyi düzgün bir şekilde okuduktan sonra herhangi bir veritabanıyla çalışmaya başlayabilecektir.