İlan

Veritabanları modern ağı yönlendirir. Her büyük veya dinamik web sitesi bir şekilde bir veritabanı kullanır ve Yapısal Sorgu Dili (SQL), verileri manipüle etme olasılıkları gerçekten sonsuzdur. SQL'i zaten biliyorsanız, bunları kontrol ettiğinizden emin olun. Programlama yetenekleri Tüm Web Sitesi Geliştiricilerinin Bilmesi Gereken 7 Programlama BecerisiWeb sitesi tasarımı ve geliştirme, iyi ödeme ve faydalar, iyi çalışma saatleri ve ilerleme olasılığı sunar. Bu heyecan verici alana girmek için şimdi hangi temel becerileri öğrenmeye başlayabileceğinizi göstereceğiz. Daha fazla oku tüm web sitesi geliştiricileri bilmelidir.

Bugün size programcı olarak bilmeniz gereken bazı temel komutları göstereceğim.

Bir veritabanı tablosundan döndürülen veriler için birçok ad vardır. Veriler genellikle Satırlar, kayıtlarveya Tuples. Bu terimleri bu makale boyunca birbirinin yerine kullanacağım.

önsöz

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

instagram viewer
SQL Tablosu Müşterileri

yükseklikleri tablo herhangi bir kişinin adını ve yüksekliğini içerir:

SQL Tablo Yükseklikleri

Personel tablosu, personel tablosunun adını ve yaşını içerir - müşteri tablosuyla tamamen aynı:

SQL Personel Tablosu

Son tablo denir insanlar tıpkı müşteri ve personel tablolarında olduğu gibi kişilerin adını ve yaşını içerir:

Kişi Tablosu

1. seçmek

seçmek ifadesi en basit olanıdır ve diğer komutların neredeyse tamamını desteklediğinden anlamanız önemlidir. Komutun okunmasını ve anlaşılmasını kolaylaştırdığı için ayrılmış SQL kelimelerinizi büyük harfle yazmak en iyi yöntem olarak kabul edilir.

Adından da anlaşılacağı gibi, select seçmek veri tabanındaki veriler. İşte en basit kullanım:

SEÇ * tablodan;

Bunun iki kısmı var. İlk bölüm (SEÇ *) hangi sütunları seçmek istediğinizi belirtir. Yıldız işareti, tablodaki tüm sütunları seçmek istediğinizi belirtir. İkinci kısım (FROM tablosu), veritabanı motorunuza bu verileri nereden almak istediğinizi bildirir. “Table” ı 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 bulunduğunu anlamanın iyi bir yoludur, ancak bunu herhangi bir üretim kodu için kullanmanızı önermiyorum. Belirli bir yıldız kullanırken, size istediğiniz verileri sunmak veritabanı motoruna bağlıdır. Verilerin döndürülme sırası üzerinde herhangi bir kontrole sahip değilsiniz. Bu nedenle, birisi yeni bir sütun eklerse Tabloda, değişkenlerinizi programlama dilinizde artık doğru değil veri. Neyse ki, bir çözümü var.

Hangi sütunları almak istediğinizi açık bir şekilde belirtebilirsiniz:

Yaşı SEÇİN, kişiden isim;

Bu sorgu "yaş" ve "ad" sütunlarını "kişiler" tablosundan alır. Çok fazla veriye sahipseniz bu açık olmak biraz sıkıcı olabilir, ancak bunu yapmak, gelecekte SQL'lerinizi gelecekteki programcılar tarafından daha kolay anlaşılmasını sağlamanın yanı sıra gelecekte de sorunları azaltacaktır.

Ek bir veri parçası seçmek istiyorsanız, ancak tablolarınızın hiçbirinde depolanmamışsa, bunu şöyle yapabilirsiniz:

SEÇİN yaş, kişilerden '1234';
SQL Seçimi

Sütun adıyla eşleştirmek yerine tek tırnak içindeki tüm dizeler döndürülür.

2. Nerede

Select komutu veri almak için mükemmeldir, ancak sonuçları biraz daha filtrelemek isteseydiniz? Sadece mavi gözleri olan insanları geri almaya ne dersiniz? Mekanik olarak çalışan Ocak ayında doğan insanlar ne olacak? İşte burada nerede komut geliyor. Bu, seçime koşullar uygulamanıza izin verir ve bunu ifadenin sonuna eklersiniz:

Yaşı SEÇ, 10 yaşından büyük kişilerden isim;
SQL Nerede

Bu sorgu artık 10 yaşından büyük kişilerle sınırlıdır. Birden fazla koşulu aşağıdakileri kullanarak birleştirebilirsiniz: VE Şebeke:

Yaşı, adı> 10 VE yaş <20 olan kişilerden seçin;

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

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

Yaşı SEÇ, insanlardan isim> 10 NEREDE VEYA isim = 'Joe';
SQL Nerede

Bu sorgu, yaşın 10'dan fazla olduğu veya adın “Joe” ya eşit olduğu kayıtları döndürür. Sadece tek bir işaretin nasıl 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 yüzden önce iki kez kontrol edin).

3. Sipariş

sipariş 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:

Adı seçin, yaşları insanlardan SİPARİŞ TARAFINDAN SİPARİŞ VERİN;
SQL Sırası

Sütunu ve siparişi belirtmeniz gerekir; ASC artan veya AZALAN inmek için. Bunun gibi birden çok sütuna göre sipariş verebilirsiniz:

SELECT adı, yaşından insanlardan SİPARİŞ ADI ASC, yaş DESC
SQL Sırası

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

4. Katılmak

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

İnsanlardan yaş, isim, boy seçin SEÇME yükseklikleri (isim) SOL KATILIN;

Burada birkaç şey oluyor. Kalan türde bir birleşim kullanarak bir tabloya katılmak istediğinizi belirten “LEFT JOIN” sözdizimi ile başlamalısınız. Ardından, katılmak istediğiniz tabloyu (yükseklikler) belirtin. 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. “KULLANMA” yerine “AÇIK” kullanabilirsiniz:

İnsanlardan yaş, isim, yükseklik seç LEFT JOIN yüksekliklerine katıl (namea = nameb);
SQL Katıl

On ifadesi, hangi sütunların tuşlanacağını açıkça belirtir. Birçok katılma türü vardır ve her biri için ayrıntılara girmek uzun zaman alacaktır, bu yüzden kullanımlarının hızlı bir özeti:

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

“INNER” veya “OUTER” sözdizimi isteğe bağlıdır. İşlerin anlaşılmasını kolaylaştırabilir, ancak çoğu zaman için belirtmeniz gerekmez.

5. takma ad

Şimdi temel bilgileri biliyorsunuz, bakalım takma ad Komut. Bu, bir tabloyu geçici olarak yeniden adlandırmak için kullanılır - diğer adlardan daha çok bir takma addır, çünkü bu yeni ad yalnızca çalıştırdığınız işlemin içinde bulunur. İşte nasıl kullanacağınız:

A. A kişisinden yaş seçin;

İstediğiniz geçerli herhangi bir adı kullanabilirsiniz, ancak alfabenin harflerini kullanmak istiyorum. Her sütun adından önce takma ada önek eklenir. Bu takma ad, bildirildikten hemen sonra tabloya atanır. Bu, tam olarak bunu yapmakla aynıdır:

İnsanlar arasından seçim yapın.

Uzun bir tablo adı yazmak yerine, basit ve hatırlaması kolay bir mektup yazabilirsiniz - ama anlamı nedir? 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ı açıkça belirtmeden çalışmayabilir. İki tablo içeren bir örnek:

Personel, yaş, personel, isim, müşteriler, yaş, müşteriler, personel, müşteriler;

İşte takma adlarla aynı sorgu:

A.age, A.name, B.age, B. personelinden A adı, B müşterileri;

Personel tablosuna “A” takma adı ve müşteri tablosuna “B” takma adı verilir. Tabloları takma yapmak, kodunuzun daha kolay anlaşılmasına yardımcı olur ve yapmanız gereken yazma miktarını azaltır.

Ayrıca "AS" komutunu kullanarak bir sütunu diğer adla yeniden adlandırabilirsiniz:

KİŞİ_KİŞİLERDEN yaş olarak SEÇİN;
SQL Takma Adı

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. Birbirinize satır eklemenizi sağlar. Eşleşen sütunları ekleyen birleşimlerin aksine, birleşim, aynı sayıda ve adda sütunlara sahip olmaları koşuluyla ilgisiz satırlar ekleyebilir. İşte nasıl kullanacağınız:

Yaşı SEÇ, müşteriden isim. BİRLİĞİ yaş, personelden isim;
SQL Birliği

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

Yaşı SEÇ, müşteriden isim. BİRLİK TÜMÜ. Yaş, personelden isim seçin;
SQL Birliği

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 durumu bir alt toplamdır: toplam toplamın sorgusunu belirli bir senaryo için ayrı ayrı toplamların sorgusuyla birleştirebilirsiniz.

7. Ekle

Artık bir veritabanından veri alma hakkında her şeyi biliyorsunuz, ama eklemeye ne dersiniz? İşte burada insert komut geliyor. İşte bir örnek:

Kişilere (isim, yaş) DEĞERLER (INSERT) ('Joe', 102);

Tablo adını (kişi) ve kullanmak istediğiniz sütunları (ad ve yaş) belirtmeniz gerekir. Daha sonra eklenecek değerleri sağlamak için “VALUES” sözdizimi kullanılır. Bunlar, daha önce belirtilen sütunlarla aynı sırada olmalıdır.

Ekler için where yantümcesi belirtemezsiniz ve var olan gerekli tablo kısıtlamalarına uyduğunuzdan emin olmanız gerekir.

8. Güncelleme

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

GÜNCELLEME insanlar SET adı = 'Joe', yaş = 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 iyi, ancak her bir kaydı güncelleyecek - her zaman arzu edilmeyen bir şey!

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

GÜNCELLEME insanlar SET adı = 'Joe', yaş = 101 NEREDE adı = 'James';

“VE” ve “VEYA” kullanarak birden fazla koşul bile belirtebilirsiniz:

GÜNCELLE insanlar SET name = 'Joe', yaş = 101 NEREDE (isim = 'James' VE yaş = 100) VEYA name = 'Ryan';

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

9. Upsert

Upsert garip bir sondaj kelimesi, ama inanılmaz derecede faydalı bir komut. Tablonuzda bir kısıtlamanız olduğunu ve yalnızca benzersiz adlara sahip kayıtlar istediğinizi belirlediğinizi varsayalım. Örneğin, aynı ada sahip iki satır depolamak istemezsiniz. Birden fazla "Joe" değeri eklemeyi denediyseniz, veritabanı motorunuz bir hata atar ve bunu yapmayı reddeder (oldukça doğru). Bir UPSERT zaten mevcutsa bir kaydı güncellemenizi sağlar. Bu inanılmaz derecede faydalı! Bu komut olmadan, önce bir kaydın var olup olmadığını kontrol etmek için çok fazla mantık yazmanız, yoksa girmeniz gerekir, aksi takdirde doğru birincil anahtarı alın ve güncelleyin.

Ne yazık ki, upserts farklı veritabanı motorlarında farklı uygulanır. PostgreSQL kısa bir süre önce bu yeteneğe sahipken, MySQL bu yeteneğe sahip. İşte referans için MySQL sözdizimi:

İnsanlara TAKIN (isim, yaş) DEĞERLER ('Joe', 101) DUPLICATE KEY UPDATE ÜZERİNE yaş = 101;

Bunun nasıl bir güncelleme ve bir ekleme ifadesi olduğuna dikkat edin; bu "ekleme başarısız olursa güncelleme" olarak özetlenebilir.

10. Sil

Sil kayıtları tamamen kaldırmak için kullanılır - istismar edildiğinde oldukça zarar verici olabilir! Temel sözdiziminin kullanımı çok kolaydır:

İnsanlardan SİL;

Diğer komutların çoğu gibi, bu da silinir her şey! Onu biraz daha aklı başında olan satırlarla sınırlamak için bir yer kullanmanız gerekir - ideal olarak bir:

İsim = 'Joe' NEREDE insanlardan SİL;

Bir sistem geliştiriyorsanız, genellikle "yumuşak silme" uygulamak akıllıca olur. Hiçbir zaman delete komutunu çalıştırmazsınız, bunun yerine silinmiş bir sütununu seçin ve ardından bu sütunu seçimlerinizde kontrol edin - sözde silindiğini hızlı ve kolay bir şekilde alabiliyorsanız potansiyel utançtan kaçınabilirsiniz. kayıtları. Ancak bu, uygun yedeklemelerin yerini tutmaz.

11. Tablo Oluştur

tablo oluştur komutu tablo oluşturmak için kullanılır. Bu çok basit bir örnek:

TABLO insanlar OLUŞTUR (isim METİN, yaş, INTEGER, PRİMER ANAHTAR (isim) );

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

12. Tabloyu değiştir

tabloyu değiştir komutu tablonun yapısını değiştirmek için kullanılır. Varolan veriler çakışmaya neden olacaksa, örneğin bir tabloyu değiştirmenize izin vermeyeceğinden, örneğin veritabanınız bir tabloyu değiştirmenize izin vermeyecektir. Bu durumlarda, önce verileri düzeltin, ardından tabloyu değiştirin. İşte bir örnek:

ALTER TABLE insanlar yükseklik tamsayı EKLE;

Bu örnek, kişiler tablosuna "yükseklik" adlı tamsayı türünde bir sütun ekler. Neleri değiştirebileceğiniz konusunda bir sınır yoktur.

13. Damla Tablosu

Son komut damla masa. Bunu sil olarak düşünün, ancak tek bir kaydı silmek yerine tablo ile birlikte her bir kaydı kaldırır! İşte nasıl kullanacağınız:

DROP TABLOSU insanlar;

Oldukça sert bir komut ve sisteminize programlanması için bir neden yok. Sadece vakaların büyük çoğunluğunda manuel olarak yapılmalıdır ve çok yıkıcı.

Hepsi bugün için. Umarım bazı faydalı numaralar öğrenmişsindir! Nasıl yapılacağını öğrenebilirsin web sitesi yap Web Sitesi Nasıl Yapılır: Yeni Başlayanlar İçinBugün sıfırdan eksiksiz bir web sitesi yapma sürecinde size rehberlik edeceğim. Bu zor geliyorsa endişelenmeyin. Yol boyunca her adımda size rehberlik edeceğim. Daha fazla oku ve daha sonra yeni becerilerinizi dinamik hale getirmek için kullanın - sadece bu hataları yapma Web Sayfası Oluştururken Yapmamanız Gereken 9 HataAşağıdaki HTML kodlama hatalarını yapmak kolaydır, ancak bunları daha sonra değil, daha erken çıkarırsanız, sayfanız daha iyi görünür, bakımı daha kolay olur ve nasıl olmasını istediğinizi işler. Daha fazla oku veya savunmasız bırakma SQL enjeksiyonu SQL Enjeksiyonu Nedir? [Açıklamalar MakeUseOf]İnternet güvenliği dünyası açık portlar, arka kapılar, güvenlik açıkları, Truva atları, solucanlar, güvenlik duvarı güvenlik açıkları ve hepimizi her gün ayak parmaklarımızda tutan bir dizi başka sorunla boğuşuyor. Özel kullanıcılar için ... Daha fazla oku . SQL öğrenmeniz gerektiğinden emin değilseniz, statik site üreteci CMS'nizi Bırakmanın ve Statik Bir Site Oluşturucuyu Düşünmenin 7 NedeniUzun yıllar boyunca, bir web sitesi yayınlamak birçok kullanıcı için zordu. WordPress gibi CMS'ler bunu değiştirdi, ancak yine de kafa karıştırıcı olabilirler. Başka bir alternatif Statik Site Oluşturucu'dur. Daha fazla oku ?

En sevdiğiniz SQL ipuçlarını ve püf noktalarını neden aşağıya bırakmıyorsunuz?

Resim Kredileri: HYS_NP / Shutterstock

Joe, İngiltere Lincoln Üniversitesi Bilgisayar Bilimi mezunudur. Profesyonel bir yazılım geliştiricisidir ve uçağı uçurmadığı veya müzik yazmadığı zamanlarda, genellikle fotoğraf çekerken veya video üretirken bulunabilir.