MySQL Örneklerle SELECT İfadesi
⚡ Akıllı Özet
MKS MySQL SELECT ifadesi bir veya daha fazla tablodan satırları alır ve aşağıdaki her örnek, düz yıldız sorgusundan ifadelere, sütun takma adlarına ve dize fonksiyonlarına kadar myflix örnek veritabanına karşı çalışır.
SELECT sorgusu nedir? MySQL?
SELECT sorgusu Verileri almak için kullanılır. MySQL veritabanı. Veritabanları daha sonra geri almak için verileri depolar. Amacı MySQL SELECT sorgusu, veritabanı tablolarından belirli kriterlere uyan bir veya daha fazla satır döndürmek için kullanılır. SELECT sorgusu, PHP veya Ruby gibi bir betik dilinde kullanılabilir veya komut isteminden çalıştırılabilir.
SELECT komutu en sık çalıştıracağınız komut olacağından, örnek verilere dokunmadan önce sözdizimini öğrenmekte fayda var.
SQL SELECT Deyimi Sözdizimi
SELECT, en sık kullanılan SQL komutudur ve genel sözdizimi aşağıdaki gibidir:
SELECT [DISTINCT|ALL] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition] [GROUP BY fieldName(s)] [HAVING condition] [ORDER BY fieldName(s)];
İŞTE
- SEÇİN veritabanının veri almak istediğinizi bilmesini sağlayan SQL anahtar sözcüğüdür.
- [FARKLI | TÜM] `ALL`, SQL SELECT sorgusundan döndürülen sonuçları hassaslaştırmak için kullanılan isteğe bağlı anahtar kelimelerdir. Hiçbir şey belirtilmezse, varsayılan olarak `ALL` kullanılır.
- {*| [fieldExpression [AS newName]} En az bir bölüm belirtilmelidir. “*” belirtilen tablo adındaki tüm alanları seçer; fieldExpression ise belirtilen alanlar üzerinde hesaplamalar yapar, örneğin sayıları toplar veya iki dize alanını birleştirir.
- DAN `tableName` alanı zorunludur ve en az bir tablo içermelidir. Birden fazla tablo virgülle ayrılmalı veya `JOIN` anahtar kelimesi kullanılarak birleştirilmelidir.
- NEREDE Koşul isteğe bağlıdır. Sorgudan döndürülen sonuç kümesindeki kriterleri belirtir.
- GROUP BY Aynı alan değerlerine sahip kayıtları bir araya getirmek için kullanılır.
- HAVING "Koşul" ifadesi, "GROUP BY" anahtar kelimesiyle çalışırken ölçüt belirtmek için kullanılır.
- TARAFINDAN SİPARİŞ Sonuç kümesinin sıralama düzenini belirtmek için kullanılır.
*
Yıldız sembolü, tablodaki tüm sütunları seçer. Basit bir SELECT ifadesi aşağıdaki gibi görünür.
SELECT * FROM `members`;
Yukarıdaki ifade, üyeler tablosundaki tüm alanları seçer. Noktalı virgül, ifade sonlandırıcıdır. Zorunlu değildir, ancak ifadelerinizi bu şekilde bitirmek iyi bir uygulama olarak kabul edilir.
SELECT DISTINCT ve LIMIT ifadelerinde MySQL
Söz dizimindeki iki isteğe bağlı anahtar kelimeye daha yakından bakmak gerekiyor, çünkü yeni başlayanlar tablo büyüdükçe bunlarla karşılaşıyorlar.
DISTINCT Sonuç kümesinden yinelenen satırları kaldırır. Filmler tablosu 2007 yılında yayınlanan birçok filmi sakladığından, düz bir sorgu bu yılı tekrarlar. DISTINCT her değeri yalnızca bir kez döndürür.
SELECT DISTINCT `year_released` FROM `movies`;
LİMİT Döndürülen satır sayısını sınırlandırarak, istemciyi aksi takdirde milyonlarca kayıt çekecek bir sorgudan korur.
SELECT * FROM `movies` LIMIT 5;
| Anahtar kelime | Ne yapar | Ne zaman kullanılmalı |
|---|---|---|
| TÜMÜ (varsayılan) | Eşleşen tüm satırları, yinelenenler dahil, döndürür. | Ham kayıtların sayılması veya listelenmesi |
| DISTINCT | Yinelenen satırları tek bir satırda birleştirir. | Benzersiz değerlerin bir listesini oluşturmak |
| LİMİT | Yalnızca ilk N satırı döndürür. | Verileri önizleme veya sonuçları sayfalama |
Söz dizimi belirlendikten sonra, örnek veritabanı bu maddeleri hayata geçiriyor.
SELECT Sorgusu Pratik Örnekleri
İndirmek için tıklayınız Pratik örnekler için kullanılan myflix veritabanı.
.sql dosyasını nasıl içe aktaracağınızı öğrenebilirsiniz. MySQL Tezgâh.
Örnekler aşağıdaki iki tablo üzerinde gerçekleştirilmiştir.
Tablo 1: üyeler tablo
| Üye numarası | tam_adlar | cinsiyet | doğum tarihi | fiziksel adres | posta adresi | iletişim_ numarası | E-posta |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Kadın | 21-07-1980 | 4. Sokak Parsel No:XNUMX | Özel Çanta | +0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Kadın | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Erkek | 12-07-1989 | 3. Sokak 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Kadın | 14-02-1984 | 2. Sokak 23 | NULL | NULL | NULL |
Tablo 2: filmler tablo
| film_id | başlık | yönetmen | yıl_released | kimlik kategorisi |
|---|---|---|---|---|
| 1 | Karayip Korsanları 4 | Rob Marshall | 2011 | 1 |
| 2 | Sarah Marshal'ı unutmak | nicholas stoller | 2008 | 2 |
| 3 | X-Men | NULL | 2008 | NULL |
| 4 | Code İsim Siyah | Edgar Jimz | 2010 | NULL |
| 5 | Babamın Küçük Kızları | NULL | 2007 | 8 |
| 6 | melekler ve seytanlar | NULL | 2007 | 6 |
| 7 | Da Vinci Code | NULL | 2007 | 6 |
| 9 | Honey mooners | John Schultz | 2005 | 8 |
| 16 | %67 Suçlu | NULL | 2012 | NULL |
Üye Listesini Alma
Veritabanımızdaki tüm kayıtlı kütüphane üyelerinin listesini almak istediğimizi varsayalım. Bunu yapmak için aşağıdaki betiği kullanırız.
SELECT * FROM `members`;
Komut dosyasını çalıştırma MySQL Workbench aşağıdaki sonuçları üretir.
| Üye numarası | tam_adlar | cinsiyet | doğum tarihi | fiziksel adres | posta adresi | iletişim_ numarası | E-posta |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Kadın | 21-07-1980 | 4. Sokak Parsel No:XNUMX | Özel Çanta | +0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Kadın | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Erkek | 12-07-1989 | 3. Sokak 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Kadın | 14-02-1984 | 2. Sokak 23 | NULL | NULL | NULL |
Sorgu, üyeler tablosundaki tüm satır ve sütunları döndürdü.
Belirli Sütunları Seçme
Diyelim ki sadece full_names, gender, physical_address ve email alanlarıyla ilgileniyoruz. Aşağıdaki kod bunu gerçekleştiriyor.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Komut dosyasını çalıştırma MySQL Workbench aşağıdaki sonuçları üretir.
| tam_adlar | cinsiyet | fiziksel adres | E-posta |
|---|---|---|---|
| Janet Jones | Kadın | 4. Sokak Parsel No:XNUMX | janetjones@yagoo.cm |
| Janet Smith Jones | Kadın | Melrose 123 | jj@fstreet.com |
| Robert Phil | Erkek | 3. Sokak 34 | rm@tstreet.com |
| Gloria Williams | Kadın | 2. Sokak 23 | NULL |
İfadeler Kullanarak Film Listesine Ulaşma
İfadeler, SELECT sorgularında da kullanılabilir. Örneğin, bir alanda filmin adını ve yönetmeninin adını, diğer alanda ise yönetmenin adını parantez içinde ve filmin yayınlandığı yılı içeren bir film listesi istediğimizi varsayalım. Aşağıdaki kod bunu yapar.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
İŞTE
- Concat() MySQL Bu fonksiyon sütun değerlerini bir araya getirir.
- “Concat(`title`, ' (', `director`, ')')” satırı, başlığı alır, açılış parantezini ve ardından yönetmenin adını ekler, son olarak da kapanış parantezini ekler.
- Concat() fonksiyonunun içinde dize parçaları virgüllerle ayrılır.
Komut dosyasını çalıştırma MySQL Workbench aşağıdaki sonuç kümesini üretir.
| Concat(`başlık`, ' (', `yönetmen`, ')') | yıl_released |
|---|---|
| Karayip Korsanları 4 (Rob Marshall) | 2011 |
| Sarah Marshal'ı Unutmak (Nicholas Stoller) | 2008 |
| NULL | 2008 |
| Code İsim Siyah (Edgar Jimz) | 2010 |
| NULL | 2007 |
| NULL | 2007 |
| NULL | 2007 |
| Honey moon(John Schultz) | 2005 |
| NULL | 2012 |
Not: Concat() fonksiyonu, herhangi bir argüman NULL olduğunda NULL döndürür; bu nedenle yönetmeni olmayan filmlerde yukarıda NULL gösterilmektedir.
Takma Ad Alan Adları
Yukarıdaki örnek, birleştirme kodunu alan adı olarak döndürdü. Sonuç kümesinde daha açıklayıcı bir alan adı kullanmak için sütun takma adı uygulayın. Temel sözdizimi aşağıdaki gibidir.
SELECT `column_name|value|expression` [AS] `alias_name`;
İŞTE
- “`sütun_adı|değer|ifade` seçeneğini seçin” SELECT ifadesi, sütun adı, değer veya ifade olabilen normal bir SELECT sorgusudur.
- "[GİBİ]" Takma adın önüne isteğe bağlı olarak eklenebilen anahtar kelimedir.
- “`takma ad_adı`” Bu, sonuç kümesinde alan adı olarak döndürülen takma addır.
Daha anlamlı bir sütun adıyla aynı sorgu:
SELECT Concat(`title`, ' (', `director`, ')') AS `Concat`, `year_released` FROM `movies`;
Aşağıdaki sonucu elde ediyoruz.
| concat | yıl_released |
|---|---|
| Karayip Korsanları 4 (Rob Marshall) | 2011 |
| Sarah Marshal'ı Unutmak (Nicholas Stoller) | 2008 |
| NULL | 2008 |
| Code İsim Siyah (Edgar Jimz) | 2010 |
| NULL | 2007 |
| NULL | 2007 |
| NULL | 2007 |
| Honey moon(John Schultz) | 2005 |
| NULL | 2012 |
Üyelerin listesini alırken doğum yılını gösteren bilgilere ulaşmak.
Üyelik numarası, tam adlar ve doğum yılı bilgilerini içeren tüm üyelerin bir listesini istediğimizi varsayalım. Bunu yapmak için LEFT string fonksiyonunu kullanabiliriz.tracDoğum tarihi alanından doğum yılını hesaplayın.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
İŞTE
- “SOL(`doğum_tarihi`,4)” the SOL dize işlevi Doğum tarihini parametre olarak kabul eder ve soldan itibaren yalnızca 4 karakteri döndürür.
- “`doğum_yılı` OLARAK” olduğunu sütun takma adı Sonuçlarımızda geri döndü. AS anahtar sözcüğü isteğe bağlıdırİsterseniz bunu atlayabilirsiniz ve sorgu yine de çalışır.
Sorguyu yürütme MySQL Workbench'in myflixdb'ye karşı yaptığı karşılaştırma aşağıdaki sonuçları vermektedir.
| Üye numarası | tam_adlar | Doğum yılı |
|---|---|---|
| 1 | Janet Jones | 1980 |
| 2 | Janet Smith Jones | 1980 |
| 3 | Robert Phil | 1989 |
| 4 | Gloria Williams | 1984 |
Elle yazılan sorgular, sonuç kümesine ulaşmanın yalnızca bir yoludur. Workbench, sorguyu sizin için otomatik olarak da oluşturabilir.
SQL Kullanımı MySQL Tezgâh
Şimdi kullanacağız MySQL Kategoriler tablosundaki tüm alan adlarını görüntüleyen betiği oluşturmak için Workbench'i kullanıyoruz.
1. Kategoriler tablosuna sağ tıklayın. "Satırları Seç – 1000 ile Sınırla" seçeneğine tıklayın.
2. MySQL Workbench otomatik olarak bir SQL sorgusu oluşturur ve bunu düzenleyiciye yapıştırır.
3. Sorgu sonuçları, düzenleyicinin altındaki tabloda gösterilir.
Ekran görüntüsünde de görüldüğü gibi, SELECT sorgusunu kendimiz yazmadık. MySQL Workbench bunu bizim için oluşturdu.
Elimizde zaten varken neden SELECT SQL komutunu kullanalım? MySQL Tezgah mı?
Belki de SQL SELECT komutunu öğrenmeniz gerektiğini merak ediyorsunuzdur, çünkü böyle bir araç zaten mevcut. MySQL Workbench, SQL dilini bilmeden de aynı sonuçları veriyor. Bu kısayol mümkün, ancak SELECT komutunu öğrenmek sana daha fazlasını verir esneklik hem de kontrol senin yüzünden SQL SELECT ifadeleri.
MySQL Çalışma tezgahı şu kategoriye giriyor:Örneğe Göre Sorgulama(QBE) araçları, SQL ifadelerini daha hızlı oluşturmayı ve kullanıcı verimliliğini artırmayı amaçlamaktadır.
SQL SELECT komutunu öğrenmek, size şu olanakları sağlar: karmaşık sorgular Bu, Sorgu ile Örnekleme gibi yardımcı programlarla kolayca oluşturulamayan bir şeydir. MySQL Tezgah.
Verimliliği artırmak için şunları yapabilirsiniz: kodu şu şekilde oluşturun: MySQL Tezgâh, Daha sonra özelleştirmek buna gereksinimlerinizi karşılayınBu ancak SQL ifadelerinin nasıl çalıştığını anladığınızda mümkün olur.




