Herhangi Bir Programcının Bilmesi Gereken En Önemli 13 SQL Komutu

Herhangi Bir Programcının Bilmesi Gereken En Önemli 13 SQL Komutu

Veritabanları modern web'i yönlendirir. Her büyük veya dinamik web sitesi bir şekilde bir veritabanı kullanır ve Yapılandırılmış Sorgu Dili (SQL) , verileri işlemek için olanaklar gerçekten sonsuzdur. Zaten SQL biliyorsanız, tüm web sitesi geliştiricilerinin bilmesi gereken bu programlama becerilerini kontrol ettiğinizden emin olun.





Bugün size bazılarını göstereceğim temel SQL komutları bir programcı olarak bilmeniz gerekir.





Bir veritabanı tablosundan döndürülen veriler için birçok isim vardır. Veriler genellikle şu şekilde adlandırılır: satırlar , Kayıtlar , veya demetler . Bu makale boyunca bu terimleri birbirinin yerine kullanacağım.





önsöz

Bugünkü örneklerin tamamı dört kurgusal tabloya dayanacaktır. NS müşteri tablo müşterilerin adını ve yaşını içerir:

NS yükseklikler tablo herhangi bir kişinin adını ve boyunu içerir:



NS kadro tablo, personelin adını ve yaşını içerir -- müşteri tablosuyla tamamen aynı:

Son tablo denilen insanlar tıpkı müşteri ve personel tabloları gibi kişilerin adını ve yaşını içerir:





1. Seç

NS Seçme deyimi en basitidir ve diğer komutların neredeyse tümünün temelini oluşturduğu için bunu anlamanız önemlidir. Komutun okunmasını ve anlaşılmasını kolaylaştırdığından, ayrılmış SQL sözcüklerinizi büyük harfle yazmak en iyi uygulama olarak kabul edilir.

Adından da anlaşılacağı gibi, select için kullanılır Seçme bir veritabanından alınan veriler. İşte en basit kullanım:





SELECT * FROM table;

Bunun iki kısmı var. İlk kısım ( SEÇME * ) seçmek istediğiniz sütunları belirtir. Yıldız işareti, tablodaki tüm sütunları seçmek istediğinizi belirtir. İkinci kısım ( tablodan ) veritabanı motorunuza bu verileri nereden almak istediğinizi söyler. 'Tablo'yu veritabanı tablonuzun adıyla değiştirin.

Bu seçim, 'yıldız seç' olarak bilinir. Yıldız işaretini kullanmak, bir tabloda hangi verilerin olduğunu anlamanın iyi bir yoludur, ancak herhangi bir üretim kodu için kullanmanızı önermiyorum. Seçilmiş bir yıldız kullanırken, istediğiniz verileri size sunmak veritabanı motoruna bağlıdır. Verilerin döndürülme sırası üzerinde herhangi bir kontrolünüz yoktur, bu nedenle biri tabloya yeni bir sütun eklerse, programlama dilinizdeki değişkenlerinizin artık doğru verileri temsil etmediğini görebilirsiniz. Neyse ki, bir çözüm var.

Hangi sütunları almak istediğinizi aşağıdaki gibi açıkça belirtebilirsiniz:

SELECT age, name FROM people;

Bu sorgu, 'kişiler' tablosundan 'yaş' ve 'ad' sütunlarını alır. Çok fazla veriniz varsa bu kadar açık olmak biraz can sıkıcı olabilir, ancak bunu yapmak gelecekteki sorunları azaltacak ve SQL'inizin gelecekteki programcılar tarafından anlaşılmasını kolaylaştıracaktır.

Ek bir veri parçası seçmek istiyorsanız, ancak bu herhangi bir tablonuzda saklanmıyorsa, bunu şu şekilde yapabilirsiniz:

SELECT age, '1234' FROM people;

Bir sütun adıyla eşleşmek yerine, tek tırnak içindeki herhangi bir dize döndürülür.

2. Nerede

Select komutu, verileri almak için mükemmeldir, ancak sonuçları biraz daha filtrelemek isterseniz ne olur? Sadece mavi gözlü insanları almaya ne dersiniz? Ocak ayında doğan ve tamirci olarak çalışan insanlar ne olacak? Burası nerede komutu gelir. Bu, seçime koşulları uygulamanıza izin verir ve bunu ifadenin sonuna eklemeniz yeterlidir:

SELECT age, name FROM people WHERE age > 10;

Bu sorgu artık 10 yaşından büyük kişilerle sınırlıdır. kullanarak birden çok koşulu birleştirebilirsiniz. VE Şebeke:

SELECT age, name FROM people WHERE age > 10 AND age <20;

NS VE komut, tam olarak İngilizce dilinde olduğu gibi çalışır: ifadeye başka bir koşul uygular. Bu örnekte, döndürülen veriler, yaşı 10 ile 20 arasında olan herhangi bir kayıt olacaktır. Eşleşen sonuç olmadığından hiçbir veri döndürülmez.

indirmeden bedava film izle

Bununla birlikte kullanılabilecek başka bir komut da şudur: VEYA . İşte bir örnek:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Bu sorgu, yaşın 10'dan büyük olduğu veya adın 'Joe' olduğu kayıtları döndürür. Nasıl sadece bir eşittir işareti olduğuna dikkat edin? Çoğu programlama dili, denkliği kontrol etmek için çift eşittir (==) kullanır. Bu, veritabanı motorlarının büyük çoğunluğu için gerekli değildir (ancak ortam başına çok fazla olabilir, bu nedenle önce iki kez kontrol edin).

3. Sipariş

NS Emir komutu döndürülen sonuçları sıralamak için kullanılır. Kullanımı kolay başka bir şey. Basitçe ifadenizin sonuna ekleyin:

SELECT name, age FROM people ORDER BY age DESC;

Sütunu ve sırayı belirtmeniz gerekir. ASC yükselmek için veya TANIM iniş için. Bunun gibi birden çok sütuna göre sipariş verebilirsiniz:

SELECT name, age FROM people ORDER BY name ASC, age DESC

TARAFINDAN SİPARİŞ diğer komutlarla birleştirildiğinde belki de en kullanışlı olanıdır. Tüm sorgular verileri mantıksal veya sıralı bir şekilde döndürmez - bu komut bunu değiştirmenize olanak tanır.

4. Katılın

NS katılmak komut için kullanılır katılmak bir veya daha fazla tabloda depolanan ilgili veriler. Sen katılmak ikinci tabloyu ilk tabloya ekleyin ve verilerin nasıl bağlanacağını belirtin. İşte temel bir örnek:

sahte numara uygulamasından gelen metin
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Burada birkaç şey oluyor. Left JOIN türünde bir birleşim kullanarak bir tabloya katılmak istediğinizi belirten 'LEFT JOIN' sözdizimi ile başlamanız gerekir. Ardından, katılmak istediğiniz tabloyu belirtin (yükseklikler). NS KULLANIM (isim) sözdizimi, 'ad' sütununun her iki tabloda da bulunabileceğini ve bunun tabloları birleştirmek için bir anahtar olarak kullanılması gerektiğini belirtir.

Sütunlarınızın her tabloda farklı adları varsa endişelenmeyin. 'KULLANIM' yerine 'AÇIK' kullanabilirsiniz:

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

On deyimi, hangi sütunların anahtarlanacağını açıkça belirtir. Pek çok birleştirme türü vardır ve her biri için ayrıntılara girmek uzun zaman alır, bu nedenle kullanımlarının kısa bir özetini burada bulabilirsiniz:

  • (İÇ BİRLEŞİM -- Her iki tabloda da eşleşen satırları döndürür.
  • SOL DIŞ KATILMA -- Soldaki tablodaki tüm satırları, sağdaki tablodaki eşleşmelerle birlikte döndürür. Eşleşme yoksa, soldaki tablo kayıtları yine de döndürülür.
  • SAĞ (DIŞ) BİRLEŞTİRME -- Bu, sol birleştirmenin tersidir: sağdaki tablodaki tüm satırlar, soldaki tablodaki eşleşmelerle birlikte döndürülür.
  • TAM (DIŞ) BİRLEŞTİRME -- Her iki tabloda da eşleşen tüm kayıtları döndürür.

'INNER' veya 'OUTER' sözdizimi isteğe bağlıdır. Bazı şeyleri anlamayı kolaylaştırabilir, ancak çoğu zaman bunu belirtmeniz gerekmez.

5. Takma adlar

Artık temel bilgileri biliyorsunuz, hadi bakalım takma ad emretmek. Bu, bir tabloyu geçici olarak yeniden adlandırmak için kullanılır - her şeyden çok bir takma addır, çünkü bu yeni ad yalnızca çalıştırdığınız bireysel işlem içinde bulunur. Bunu nasıl kullanacağınız aşağıda açıklanmıştır:

SELECT A.age FROM people A;

İstediğin herhangi bir geçerli ismi kullanabilirsin ama ben alfabenin harflerini kullanmayı seviyorum. Her sütun adından önce takma ad önekidir. Bu takma ad, beyan edildikten hemen sonra tabloya atanır. Bu, bunu yapmakla tamamen aynıdır:

SELECT people.age FROM people;

Uzun bir tablo adı yazmak zorunda kalmak yerine, basit ve hatırlaması kolay bir harf yazabilirsiniz - ama ne anlamı var? Peki, birden fazla tablodan seçim yapıyorsanız, hangi sütunların hangi tabloya ait olduğu konusunda kafanız karışabilir. Her iki tablonuzda da aynı ada sahip sütunlar varsa, veritabanı sorgunuz tablo adına veya diğer adına açıkça başvurmadan çalışmayabilir. İşte iki tablolu bir örnek:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

Ve işte takma adlarla aynı sorgu:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

Personel masasına 'A' takma adı verilir ve müşteriler tablosuna 'B' takma adı verilir. Tabloları takma, kodunuzun anlaşılmasını kolaylaştırmaya gerçekten yardımcı olur ve yapmanız gereken yazma miktarını azaltır.

Ayrıca 'AS' komutunu kullanarak bir sütunu takma adla yeniden adlandırabilirsiniz:

SELECT age AS person_age FROM people;

Bu sorgu çalıştırıldığında, sütun artık 'yaş' yerine 'person_age' olarak adlandırılacaktır.

6. Birlik

birlik harika bir emirdir. Birbirine satır eklemenizi sağlar. Birleşim, eşleşen sütunları ekleyen birleştirmelerin aksine, aynı sayıda ve sütun adına sahip olmaları koşuluyla ilgisiz satırlar ekleyebilir. Bunu nasıl kullanacağınız aşağıda açıklanmıştır:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Birliği, iki sorgunun sonuçlarını birleştirmenin bir yolu olarak düşünebilirsiniz. Birleşim, yalnızca iki sorgu arasında benzersiz bir satır olduğunda sonuçları döndürür. Yinelenenlerden bağımsız olarak tüm verileri döndürmek için 'UNION ALL' sözdizimini kullanabilirsiniz:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Satırların sırasının nasıl değiştiğine dikkat edin? Union en verimli şekilde çalışır, bu nedenle döndürülen veriler sırayla değişebilir.

Birleşim için olası bir kullanım örneği, bir ara toplamdır: toplam toplamın bir sorgusunu, belirli bir senaryo için bireysel toplamların bir sorgusunda birleştirebilirsiniz.

7. Ekle

Artık bir veritabanından veri almakla ilgili her şeyi biliyorsunuz, peki ya onu eklemeye ne dersiniz? Burası sokmak komut gelir. İşte bir örnek:

INSERT INTO people(name, age) VALUES('Joe', 102);

Tablo adını (kişiler) ve kullanmak istediğiniz sütunları (isim ve yaş) belirtmelisiniz. Ardından, eklenecek değerleri sağlamak için 'DEĞERLER' sözdizimi kullanılır. Bunlar daha önce belirtilen sütunlarla aynı sırada olmalıdır.

Ekler için bir where yan tümcesi belirtemezsiniz ve mevcut olan tüm gerekli tablo kısıtlamalarını uyguladığınızdan emin olmanız gerekir.

8. Güncelleme

Bazı verileri ekledikten sonra, belirli satırları değiştirmeniz doğaldır. Burada Güncelleme komut sözdizimi:

UPDATE people SET name = 'Joe', age = 101;

Değiştirmek istediğiniz tabloyu belirtmeniz ve ardından sütunları ve yeni değerlerini belirtmek için 'SET' sözdizimini kullanmanız gerekir. Bu örnek iyidir, ancak her kaydı güncelleyecektir -- her zaman arzu edilmeyen bir şey!

Daha spesifik olmak için, tıpkı bir seçim yaparken olduğu gibi 'WHERE' yan tümcelerini kullanabilirsiniz:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Hatta 'VE' ve 'VEYA' kullanarak birden çok koşul belirtebilirsiniz:

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Koşulları sınırlamak için parantezlerin nasıl kullanıldığına dikkat edin.

tiktoka nasıl yazı eklenir

9. Üslup

Hata kulağa garip gelen bir kelime ama inanılmaz derecede faydalı bir komut. Diyelim ki tablonuzda bir kısıtlama var ve yalnızca benzersiz adlara sahip kayıtlar istediğinizi belirttiniz - örneğin, aynı ada sahip iki satırı saklamak istemiyorsunuz. Birden fazla 'Joe' değeri eklemeye çalışırsanız, veritabanı motorunuz bir hata verir ve bunu yapmayı reddeder (oldukça haklı olarak). UPSERT, zaten mevcutsa bir kaydı güncellemenize izin verir. Bu inanılmaz derecede faydalı! Bu komut olmadan, önce bir kaydın olup olmadığını kontrol etmek, yoksa eklemek, aksi takdirde doğru birincil anahtarı almak ve ardından güncellemek için çok fazla mantık yazmanız gerekir.

Ne yazık ki, yükseltmeler farklı veritabanı motorlarında farklı şekilde uygulanmaktadır. PostgreSQL bu yeteneği daha yeni kazandı, MySQL ise bir süredir sahip. İşte referans için MySQL sözdizimi:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Bunun aslında bir güncelleme ve ekleme ifadesi olduğuna dikkat edin, bu ifade 'ekleme başarısız olursa güncelleme' olarak özetlenebilir.

10. Sil

Silmek kayıtları tamamen kaldırmak için kullanılır - kötüye kullanılırsa oldukça zarar verebilir! Temel sözdiziminin kullanımı çok kolaydır:

DELETE FROM people;

Diğer komutların çoğu gibi, bu da silinecek her şey ! Onu biraz daha makul sayıda satırla sınırlandırmak için bir yer kullanmanız gerekir - ideal olarak:

DELETE FROM people WHERE name = 'Joe';

Bir sistem geliştiriyorsanız, genellikle bir 'yumuşak silme' uygulamak akıllıca olur. Aslında asla silme komutunu çalıştırmazsınız, bunun yerine silinmiş bir sütun oluşturursunuz ve ardından seçimlerinizde bu sütunu kontrol edersiniz - sözde silinmiş kayıtları hızlı ve kolay bir şekilde alabilirseniz, birçok olası utançtan kaçınabilirsiniz. Ancak bu, uygun yedeklemelerin yerini tutmaz.

11. Tablo Oluştur

NS tablo oluştur tablo oluşturmak için komut kullanılır. Bir başka çok basit:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

Sütun adlarının ve kısıtlamaların parantez içinde nasıl olduğuna ve sütunlara uygun bir veri türü verildiğine dikkat edin. Herhangi bir iyi veritabanı tasarımında gerektiği gibi bir birincil anahtar belirtilir.

12. Tabloyu Değiştir

NS tabloyu değiştir komutu bir tablonun yapısını değiştirmek için kullanılır. Bu, biraz sınırlıdır, çünkü veritabanınız, mevcut veriler bir çakışmaya neden olursa bir tabloyu değiştirmenize izin vermez - örneğin bir dizeyi bir tamsayıya değiştirmek. Bu durumlarda, önce verileri düzeltin, ardından tabloyu değiştirin. İşte bir örnek:

ALTER TABLE people ADD height integer;

Bu örnek, insanlar tablosuna tamsayı türünde 'yükseklik' adlı bir sütun ekler. Neleri değiştirebileceğiniz konusunda gerçekten bir sınır yok.

13. Düşürme Tablosu

Son komut açılır masa . Bunu bir silme olarak düşünün, ancak tek bir kaydı silmek yerine, tabloyla birlikte her bir kaydı kaldırır! Bunu nasıl kullanacağınız aşağıda açıklanmıştır:

DROP TABLE people;

Oldukça sert bir komuttur ve sisteminize programlanması için hiçbir neden yoktur. Vakaların büyük çoğunluğunda sadece manuel olarak yapılmalıdır ve çok yıkıcı.

Hepsi bugün için. Umarım bazı faydalı numaralar öğrenmişsinizdir! nasıl yapılacağını öğrenebilirsin web sitesi yap ve sonra onu dinamik hale getirmek için yeni edindiğiniz becerileri kullanın -- sadece bu hataları yapmadığınızdan veya SQL enjeksiyonuna karşı savunmasız bırakmadığınızdan emin olun . SQL öğrenmeniz gerektiğinden emin değilseniz, statik bir site oluşturucuyu düşündünüz mü?

Neden en sevdiğiniz SQL ipuçları ve püf noktaları ile aşağıya bir yorum bırakmıyorsunuz?

Resim Kredisi: HYS_NP/Shutterstock

Paylaş Paylaş Cıvıldamak E-posta Windows 11'e Yükseltmeye Değer mi?

Windows yeniden tasarlandı. Ancak bu sizi Windows 10'dan Windows 11'e geçmeye ikna etmek için yeterli mi?

Sonrakini Oku
İlgili konular
  • Programlama
  • Programlama
  • SQL
Yazar hakkında Joe Coburn(136 Makale Yayınlandı)

Joe, İngiltere'deki Lincoln Üniversitesi'nden Bilgisayar Bilimleri mezunudur. Profesyonel bir yazılım geliştiricisi ve drone uçurmadığı veya müzik yazmadığı zamanlarda, genellikle fotoğraf çekerken veya video çekerken bulunabilir.

Joe Coburn'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın