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.