Örneklerle MySQL SELECT İfadesi

İçindekiler:

Anonim

MySQL'de SELECT sorgusu nedir?

SELECT QUERY, verileri MySQL veritabanından almak için kullanılır. Veritabanları, daha sonra alınmak üzere verileri depolar. MySQL Select'in amacı, veritabanı tablolarından, belirli bir kriterle eşleşen bir veya daha fazla satıra geri dönmektir. Seçme sorgusu, PHP, Ruby gibi komut dosyası dillerinde kullanılabilir veya komut istemi aracılığıyla çalıştırabilirsiniz.

SQL SELECT deyimi sözdizimi

En sık kullanılan SQL komutudur ve aşağıdaki genel sözdizimine sahiptir

SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
İŞTE
  • SELECT , veritabanının verileri almak istediğinizi bilmesini sağlayan SQL anahtar kelimesidir.
  • [DISTINCT | ALL] , SQL SELECT ifadesinden döndürülen sonuçların ince ayarını yapmak için kullanılabilen isteğe bağlı anahtar sözcüklerdir. Hiçbir şey belirtilmezse, TÜM varsayılan olarak kabul edilir.
  • {* | [fieldExpression [AS newName]} en az bir bölüm belirtilmelidir, "*" belirtilen tablo adından tüm alanlar seçilir, fieldExpression belirtilen alanlarda sayı ekleme veya iki dize alanını bir araya getirme gibi bazı hesaplamalar yapar.
  • FROM tableName zorunludur ve en az bir tablo içermelidir, birden çok tablo virgülle ayrılmalıdır veya JOIN anahtar sözcüğü kullanılarak birleştirilmelidir.
  • Koşulun isteğe bağlı olduğu durumlarda, sorgudan döndürülen sonuç kümesindeki ölçütleri belirtmek için kullanılabilir.
  • GROUP BY , aynı alan değerlerine sahip kayıtları bir araya getirmek için kullanılır.
  • HAVING koşulu, GROUP BY anahtar sözcüğünü kullanarak çalışırken ölçüt belirtmek için kullanılır.
  • ORDER BY , sonuç kümesinin sıralama düzenini belirtmek için kullanılır.

*

Yıldız sembolü tablodaki tüm sütunları seçmek için kullanılır. Basit bir SELECT ifadesi örneği aşağıda gösterilene benzer.

SELECT * FROM `members`;

Yukarıdaki ifade, üyeler tablosundan tüm alanları seçer. Noktalı virgül, sonlandırılan bir ifadedir. Zorunlu değil ama ifadelerinizi bu şekilde bitirmek için iyi bir uygulama olarak kabul edilir.

Pratik örnekler

Pratik örnekler için kullanılan myflix DB'yi indirmek için tıklayın .

.Sql dosyasını MySQL WorkBench'e aktarmayı öğrenebilirsiniz.

Örnekler aşağıdaki iki tabloda gerçekleştirilmiştir

Tablo 1: üye tablosu

Üye numarası full_names Cinsiyet doğum tarihi fiziksel adres posta adresi contct_ number e-posta
1 Janet Jones Kadın 21-07-1980 Birinci Cadde Parsel No 4 Özel Çanta 0759 253 542 Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.
2 Janet Smith Jones Kadın 23-06-1980 Melrose 123 BOŞ BOŞ Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.
3 Robert Phil Erkek 12-07-1989 3. Sokak 34 BOŞ 12345 Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.
4 Gloria Williams Kadın 14-02-1984 2. Cadde 23 BOŞ BOŞ BOŞ

Tablo 2: film tablosu

movie_id Başlık yönetmen yayımlanan_yıl kimlik kategorisi
1 Karayip Korsanları 4 Rob Marshall 2011 1
2 Sarah Marshal'ı Unutmak Nicholas Stoller 2008 2
3 X Men BOŞ 2008 BOŞ
4 Kod Adı Siyah Edgar Jimz 2010 BOŞ
5 Babanın Küçük Kızları BOŞ 2007 8
6 melekler ve seytanlar BOŞ 2007 6
7 Da Vinci Şifresi BOŞ 2007 6
9 Bal ayları John Schultz 2005 8
16 % 67 Suçlu BOŞ 2012 BOŞ

Üye listeleme alınıyor

Veritabanımızdan tüm kayıtlı kütüphane üyelerinin bir listesini almak istediğimizi varsayalım, bunu yapmak için aşağıda gösterilen komut dosyasını kullanacağız.

SELECT * FROM `members`;

Yukarıdaki betiği MySQL çalışma tezgahında çalıştırmak aşağıdaki sonuçları verir.

Üye numarası full_names Cinsiyet doğum tarihi fiziksel adres posta adresi contct_ number e-posta
1 Janet Jones Kadın 21-07-1980 Birinci Cadde Parsel No 4 Özel Çanta 0759 253 542 Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.
2 Janet Smith Jones Kadın 23-06-1980 Melrose 123 BOŞ BOŞ Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.
3 Robert Phil Erkek 12-07-1989 3. Sokak 34 BOŞ 12345 Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.
4 Gloria Williams Kadın 14-02-1984 2. Cadde 23 BOŞ BOŞ BOŞ

Yukarıdaki sorgumuz üyeler tablosundaki tüm satırları ve sütunları döndürdü.

Diyelim ki sadece tam_adlar, cinsiyet, fiziksel_adres ve e-posta alanlarını almakla ilgileniyoruz. Aşağıdaki komut dosyası bunu başarmamıza yardımcı olacaktır.

SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;

Yukarıdaki betiği MySQL çalışma tezgahında çalıştırmak aşağıdaki sonuçları verir.

full_names Cinsiyet fiziksel adres e-posta
Janet Jones Kadın Birinci Cadde Parsel No 4 Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.
Janet Smith Jones Kadın Melrose 123 Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.
Robert Phil Erkek 3. Sokak 34 Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkin olması gerekir.
Gloria Williams Kadın 2. Cadde 23 BOŞ

Film listesi alma

Yukarıdaki tartışmamızda SELECT ifadelerinde kullanılan ifadelerden bahsettiğimizi unutmayın. Veritabanımızdan bir film listesi almak istediğimizi varsayalım. Filmin başlığını ve yönetmenin ismini tek bir alanda görmek istiyoruz. Film yönetmeninin adı parantez içinde verilmelidir. Ayrıca filmin vizyona girdiği yılı da almak istiyoruz. Aşağıdaki komut dosyası bunu yapmamıza yardımcı olur.

SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;

İŞTE

  • Concat () MySQL işlevi sütun değerlerini birbirine birleştirmek için kullanılır.
  • "Concat" ("başlık", "(", "yönetmen", ")) satırı başlığı alır, bir açılış parantezi ve ardından yönetmenin adı ekler ve ardından kapanış parantezini ekler.

Dize bölümleri, Concat () işlevinde virgül kullanılarak ayrılır.

Yukarıdaki betiği MySQL çalışma tezgahında çalıştırmak aşağıdaki sonuç kümesini üretir.

Concat ("başlık", "(", "yönetmen", ") ') yayımlanan_yıl
Karayip Korsanları 4 (Rob Marshall) 2011
Sarah Marshal'ı unutmak (Nicholas Stoller) 2008
BOŞ 2008
Kod Adı Black (Edgar Jimz) 2010
BOŞ 2007
BOŞ 2007
BOŞ 2007
Bal ayları (John Schultz) 2005
BOŞ 2012

Takma ad alan adları

Yukarıdaki örnek, sonuçlarımız için alan adı olarak Birleştirme kodunu döndürdü. Sonuç kümemizde daha açıklayıcı bir alan adı kullanmak istediğimizi varsayalım. Bunu başarmak için sütun takma adını kullanırdık. Aşağıda, sütun diğer adı için temel sözdizimi verilmiştir.

SELECT `column_name|value|expression` [AS] `alias_name`;

İŞTE

  • "SELECT" sütun_adı | değer | ifade "" bir sütun adı, değeri veya ifade olabilen normal SELECT ifadesidir.
  • "[AS]" , ifadeyi, değeri veya alan adını belirten takma adın olarak döndürülmesinden önceki isteğe bağlı anahtar kelimedir.
  • "` alias_name " , alan adı olarak sonuç kümemizde döndürmek istediğimiz takma addır.

Daha anlamlı bir sütun adı olan yukarıdaki sorgu

SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;

Aşağıdaki sonucu alıyoruz

Concat yayımlanan_yıl
Karayip Korsanları 4 (Rob Marshall) 2011
Sarah Marshal'ı unutmak (Nicholas Stoller) 2008
BOŞ 2008
Kod Adı Black (Edgar Jimz) 2010
BOŞ 2007
BOŞ 2007
BOŞ 2007
Bal ayları (John Schultz) 2005
BOŞ 2012

Doğum yılını gösteren üye listesi alma

Diyelim ki üyelik numarasını, tam ismini ve doğum yılını gösteren tüm üyelerin bir listesini almak istiyorsak, LEFT string işlevini doğum tarihi alanından doğum yılını çıkarmak için kullanabiliriz. Aşağıda gösterilen komut dosyası bunu yapmamıza yardımcı olur.

SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;

İŞTE

  • "SOL (` date_of_birth`, 4)" SOL dize fonksiyonu parametre olarak doğum tarihini kabul eder ve sadece soldan 4 karakter döndürür.
  • "AS" doğum_yılı " sonuçlarımızda döndürülecek olan sütun diğer adıdır . Not AS anahtar isteğe bağlıdır , bunu dışarı bırakabilir ve sorgu çalışmaları halen olacak.

Yukarıdaki sorguyu MySQL çalışma tezgahında myflixdb'ye karşı yürütmek bize aşağıda gösterilen sonuçları verir.

Üye numarası full_names doğum yılı
1 Janet Jones 1980
2 Janet Smith Jones 1980
3 Robert Phil 1989
4 Gloria Williams 1984

MySQL Workbench kullanarak SQL

Şimdi, kategoriler tablomuzdaki tüm alan adlarını görüntüleyecek komut dosyasını oluşturmak için MySQL çalışma tezgahını kullanacağız.

1. Kategoriler Tablosuna sağ tıklayın. "Satır Seç - 1000 Sınırla" seçeneğini tıklayın

2. MySQL çalışma tezgahı otomatik olarak bir SQL sorgusu oluşturacak ve düzenleyiciye yapıştıracaktır.

3. Sorgu Sonuçları gösterilecek

SELECT ifadesini kendimiz yazmadığımıza dikkat edin. MySQL çalışma tezgahı bunu bizim için oluşturdu.

MySQL Workbench'imiz varken neden SELECT SQL komutunu kullanalım?

Şimdi, SQL dilini bilmeden aynı sonuçları elde etmek için MySQL çalışma tezgahları gibi bir aracı kullanabiliyorsanız, neden veritabanından verileri sorgulamak için SQL SELECT komutunu öğrenmeyi düşünüyor olabilirsiniz. Elbette bu mümkündür, ancak SELECT komutunun nasıl kullanılacağını öğrenmek size SQL SELECT ifadeleriniz üzerinde daha fazla esneklik ve kontrol sağlar .

MySQL çalışma tezgahı, " Örneklerle Sorgu " QBE araçları kategorisine girer . Kullanıcı üretkenliğini artırmak için SQL ifadelerinin daha hızlı oluşturulmasına yardımcı olmayı amaçlamaktadır.

SQL SELECT komutunu öğrenmek, MySQL çalışma tezgahı gibi Örnek yardımcı programlarla Sorgulama kullanılarak kolayca oluşturulamayan karmaşık sorgular oluşturmanıza olanak sağlayabilir .

Verimliliği artırmak için şunları yapabilirsiniz MySQL tezgah kullanılarak, kod oluşturmak sonra özelleştirmek için ihtiyaçlarınızı karşılayacak . Bu yalnızca SQL ifadelerinin nasıl çalıştığını anlarsanız olabilir!

Özet

  • SQL SELECT anahtar sözcüğü, veritabanındaki verileri sorgulamak için kullanılır ve en sık kullanılan komuttur.
  • En basit biçim "SELECT * FROM tableName;" sözdizimine sahiptir.
  • İfadeler ayrıca select deyiminde de kullanılabilir. Örnek "Satışlardan miktar + fiyat seçin"
  • SQL SELECT komutu ayrıca WHERE, GROUP BY, HAVING, ORDER BY gibi diğer isteğe bağlı parametrelere de sahip olabilir. Daha sonra tartışılacaklar.
  • MySQL çalışma tezgahı, SQL deyimlerinin geliştirilmesine, bunların yürütülmesine ve aynı pencerede çıktı sonucunun üretilmesine yardımcı olabilir.