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.

  • 🔎 Temel Amaç: SELECT komutu, komut isteminden veya PHP'den, belirli bir kritere uyan kayıtlı satırları getirir. Python, ve diğer diller.
  • 🧩 Sözdizimi Sırası: SELECT, FROM, WHERE, GROUP BY, HAVING ve ORDER BY ifadeleri bu sabit sırayla görünmelidir.
  • ⭐ Yıldız Kısayolu: `SELECT * FROM `members`;` sorgusu her sütunu döndürürken, sütunları açıkça adlandırmak sonuç kümelerini daha küçük ve daha hızlı tutar.
  • 🔗 İfade: Concat() sütun değerlerini birleştirir ve LEFT() karakterleri kırpar, böylece hesaplanan alanlar doğrudan sonuç kümesinde görünür.
  • ???? ️ Sütun Takma Adları: İsteğe bağlı AS anahtar kelimesi, herhangi bir ifadeyi yeniden adlandırarak Concat(`title`) gibi okunması zor başlıkları açık etiketlerle değiştirir.
  • 🖱️ Çalışma Tezgahı Karşılaştırması: MySQL Workbench sorguları görsel olarak oluşturur, ancak karmaşık ve hassas veri alma işlemleri için elle yazılmış SELECT ifadeleri hala gereklidir.

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 sorgusu MySQL

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.

SQL kullanarak MySQL Tezgâh

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.

Anlamak MySQL SELECT ifadesi

SSS

Genellikle evet. SELECT * ifadesi, büyük metin ve gereksiz veri alanları da dahil olmak üzere her sütunu okur ve kapsayıcı indeksleri engeller. Sütunlara isim vermek, sonuç kümesini daha küçük tutar ve sorguyu hızlandırır.

SELECT ve FROM gibi anahtar kelimeler büyük/küçük harf duyarlı değildir. Dize karşılaştırmaları sütunun sıralama düzenine göre yapılır, bu nedenle utf8mb4_0900_ai_ci gibi büyük/küçük harf duyarsız bir sıralama düzeni "Janet" ve "janet"i eşit kabul eder.

Genellikle bunun nedeni eksik bir indekstir. Sorgudan önce EXPLAIN komutunu çalıştırarak bunun olup olmadığını kontrol edin. MySQL Tam tablo taraması yapar, ardından filtrelenmiş veya birleştirilmiş sütunları indeksler ve yalnızca ihtiyacınız olan satırları döndürür.

Evet. Metinden SQL'e dönüştürme yardımcıları, şemanızı öğrendikten sonra düz metin isteğini bir SELECT ifadesine dönüştürür. RevOluşturulan birleştirmeleri ve filtreleri inceleyin, çünkü bir yapay zeka modeli var olmayan sütun adları uydurabilir.

Hayır. Yapay zeka sorguyu hızlıca oluşturur, ancak mantığı, birleştirmeleri ve performansı yine de siz doğrularsınız. MySQL TezgâhSELECT komutunu bilmek, yanlış bir sonucu üretime ulaşmadan önce tespit etmenizi sağlar.

Bu yazıyı şu şekilde özetleyin: