Python'da Her Python Geliştiricisinin Bilmesi Gereken En Önemli SQL Sorguları

Yayınlanan: 2021-01-29

SQL, ilişkisel veritabanlarını yönetmeye, manipüle etmeye ve depolamaya yardımcı olan Yapılandırılmış Sorgu dili anlamına gelir. İlişkisel bir veritabanı, şu veya bu biçimde ilişkilendirilmiş tablo koleksiyonlarından oluşur. Birden çok tablo, hedef bilgilerin farklı varlıklarını ayırmamıza ve veritabanını yönetmeyi zorlaştırabilecek yüzlerce sütunun tek bir tabloda toplanmasını önlememize olanak tanır.

Bu bir sorgu dilidir ve veritabanının kendisi değildir. Bu sorgular Oracle, Microsoft SQL Server gibi herhangi bir ilişkisel veritabanı yönetim sisteminde gerçekleştirilebilir, ancak SQL sorguları oluşturmak ve yürütmek için Pythonic bir yaklaşım vardır.

İçindekiler

SQLite3

Bu, gerçek bir istemci-sunucu modeli çalıştırmaya gerek kalmadan hafif bir veritabanı oluşturmamızı sağlayan yerleşik Python kitaplığıdır. Verileri depolamak ve SQL komutlarını yürütmek için uygulamalar tarafından dahili olarak kullanılabilir. Paketin kullanımı kolaydır ve aynı şemanın Postgresql gibi herhangi bir üretim tabanlı veritabanında çoğaltılmasına izin verir. Şimdi veritabanını nasıl kuracağımızı görelim.

  • Standart ithalat beyanı:

sqlite3'ü sq olarak içe aktar

Kitaplık "sq" takma adı olarak içe aktarılır.

  • Şimdi, veritabanına bir bağlantı oluşturmamız gerekiyor. Bağlantı nesnesi bu amaca hizmet edecektir:

bağlantı = sq.connect(“example.db”)

Bu dosya daha önce oluşturulmamışsa, bu komut yürütülür yürütülmez oluşturulacaktır.

  • Veritabanına erişmek ve bilgi almak için bir imleç nesnesinin oluşturulması gerekir.

imleç = bağlantı.cursor()

Şimdi temel kurulum yapıldıktan sonra, ilgili tabloları oluşturarak verileri veritabanına aktarabiliriz, ancak ondan önce bazı SQL komutlarını revize edelim.

SQL'de Temel Komutlar

SQL, İngilizce okunabilir komutlar açısından mükemmeldir. Bunlar genellikle büyük harfle yazılır ve bu konuda herhangi bir kısıtlama yoktur. Bu genellikle, sorgu anahtar sözcüklerinin vurgulanması ve tablo özniteliklerinden ayırt edilebilir hale gelmesi için uygulanır. Ancak artık onları farklı bir renkte vurgulayan güçlü IDE'lerimiz olduğu için herhangi bir yöntem işe yarayabilir.

1. Tablo Oluştur

Bu, veritabanınızdaki veri tutma nesneleri, tablolar oluşturmanıza olanak tanır. Bir veritabanı, bir veya daha fazla ilişkiye sahip birçok tabloya sahip olabilir. Tablolarda, sahip olduğu değeri açıklayan her sütun için başlıklar bulunur. Tabloyu oluştururken sütun adını, tutacağı veri türünü ve boyutunu belirtmeniz gerekir. Sütun bir birincil anahtarsa, boş değerlere sahip olabilir ve benzeri gibi başka nitelikler ekleyebilirsiniz.

Temel bir tablo şu şekilde oluşturulabilir:

CREATE TABLE company_data (

kimlik int,

isim varchar (24),

no_of_employee int

);

2. SEÇ ve KİMDEN

Adından da anlaşılacağı gibi, tablolardan veri seçmek ve almak için kullanılır. Verilere göz atmanızı sağlayacak en önemli adımdır. Pandaların baş veya kuyruk işlevine benzer.

Bu komutları kullanan basit bir sorgu şöyle görünür:

<sütun_adı(lar)> SEÇ

<table_name>'DEN;

Tablodan tüm sütunları almak için tüm sütun adları yerine yıldız (*) koyabilirsiniz. LIMIT anahtar sözcüğü, maksimum satır sayısını tanımlamaya yardımcı olur. Bu sorguyu düşünün:

SEÇME *

Örnek_tablodan

SINIR 5;

3. Nerede

Where yan tümcesi, sorgu üzerindeki ek koşulları belirtmek için kullanılır. Sütunlar, herhangi bir özel karşılaştırma veya olumsuzlamalar için aralığı ekleyebilirsiniz.

Örneğin:

Müşteri_adı, şirket_adı SEÇ

FROM company_data

WHERE şirket_adı = 'upGrad';

4. Ekle

Bu cümle, değerleri veri tablolarına eklemek için kullanılır. Değerler, tablo oluştur komutunda sütun adlarının tabloya eklenmesiyle aynı sırada eklenir. Bir seferde birden fazla satır veya bir satır eklenebilir.

Örneğin, aşağıdaki sorgu bir tabloya 3 kayıt ekler:

INSERT INTO company_data (kimlik, ad, no_of_employees)

DEĞERLER

(1, 'şirket_A', 100),

(2, 'şirket_B', 200),

(3, 'şirket_C', 500);

Python aracılığıyla yürütme

Artık komutların farkında olduğunuza göre, bunları kodda yürütmenin zamanı geldi. Şimdiye kadar veritabanına bağlandık ve bir imleç nesnesi oluşturduk. Bu nesne, veritabanındaki komutların yürütülmesine yardımcı olacaktır:

imleç.execute(''' <QUERY> ''')

Sorgu bir dize olarak ve üçlü tırnak içinde iletilir. Bu değişiklik, siz bu değişikliği yapana kadar veritabanına yansıtılmayacaktır. Sonunda veritabanına olan bağlantının kapatılması, bu noktadan sonra yeni yürütme yapılmamasını sağlar.

Bu basit koda bakın:

sqlite3'ü sq olarak içe aktar

bağlantı = sq.connect(“example.db”)

imleç = bağlantı.cursor()

imleç.execute(”'

TABLO OLUŞTUR tablo1 (

kimlik int,

isim varchar (24)

)

”')

imleç.execute(”'

INSERT INTO tablo1 (kimlik, ad)

DEĞERLER

(1, 'yükseltme'),

(2, 'bloglar')

”')

imleç.execute(”'

SEÇME *

tablo1'DEN

”')

bağlantı.taahhüt()

bağlantı.kapat()

Önemli İpuçları

1. Sorgular dizeler olarak iletildiğinden, bunları f-string kullanarak değiştirmek, programı dinamik ve kullanıcı kontrollü hale getirmek için iyi bir seçenek gibi görünebilir, ancak SQL enjeksiyon saldırıları gibi bazı güvenlik sorunlarına neden olabilir. Bunlardan kaçınmak için “?” yer tutucusunu kullanın. sorgudaki bazı değerleri değiştirmek istediğiniz yerde. Örneğin:

imleç.execute('“SEÇ ? FROM ?''', sütun_adı, tablo_adı)

Kullanıcıdan sütun adını vermesini isteyebilirsiniz ve bu değer burada değiştirilecektir.

2. Sonuçları yinelemek için fetchone() ve fetchall() gibi işlevleri kullanın. Fetchone, sorgudaki bir sonraki satırı döndürür ve fetchall, imleç tarafından getirilen tüm satırları döndürür. Sonuçlar tanımlama grubu olarak döndürülür, böylece programdaki harici işlevler tarafından değiştirilemezler.

3. Veritabanına toplu değerler eklemek istiyorsanız, executemany() işlevini kullanabilir ve eklenecek değerleri içeren demetlerin listesini iletebilirsiniz. Örneğin:

to_add = [(1, 'merhaba') , (2, 'Dünya')]

imleç.executemany('tablo DEĞERLERİNE GİRİN (?, ?)', to_add)

Ayrıca Okuyun: Python Proje Fikirleri ve Konuları

Dünyanın en iyi Üniversitelerinden çevrimiçi veri bilimi kurslarını öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Çözüm

SQL en çok tercih edilen veritabanı dilidir ve anlaşılması kolaydır. Veri Bilimine yeni başlayanların çoğuna, veri alma sürecini iyileştirdiği ve Veri Mühendisliğinin nasıl yürütüldüğüne dair bir fikir verdiği için SQL uygulaması önerilir. Herhangi bir veritabanı manipülasyonu için standart dildir ve veritabanına daha hızlı erişim sağlar.

Veri bilimi hakkında bilgi edinmek istiyorsanız, çalışan profesyoneller için oluşturulan ve 10'dan fazla vaka çalışması ve proje, uygulamalı uygulamalı atölye çalışmaları, endüstri uzmanlarıyla mentorluk sunan IIIT-B & upGrad'ın Veri Biliminde PG Diplomasına göz atın, 1- endüstri danışmanlarıyla bire bir, en iyi firmalarla 400+ saat öğrenim ve iş yardımı.

SQL'deki kısıtlamalar hakkında ne biliyorsunuz?

Kısıtlamalar, tabloya ne tür verilerin girileceğini belirler. Tablonun oluşturulması sırasında belirtilirler ve tek bir alana veya birden çok alana uygulanabilirler. SQL'deki kısıtlamalar şunlardır:
NOT NULL- Bir alana NULL değerinin girilmesini engeller.
KONTROL- Bir alandaki tüm değerlerin verilen koşulu karşılayıp karşılamadığını kontrol eder.
VARSAYILAN- Herhangi bir değer girilmediyse, bir alana otomatik olarak varsayılan bir değer atar.
BENZERSİZ- Bir alana yalnızca benzersiz değerlerin girilmesine izin verir.
INDEX- Kayıtların daha hızlı alınmasını sağlayan bir alanı indeksler.
BİRİNCİL ANAHTAR - Bir tablodaki her kaydı benzersiz şekilde tanımlar.
YABANCI ANAHTAR - Tablolar arasındaki bağlantılara zarar verebilecek kısıtlama eylemleri.

Bir dizini ve türlerini açıklar mısınız?

Bir dizin veya bir veritabanı dizini, veri alma işlemini çok daha hızlı hale getiren özel bir arama tablosu olarak adlandırılabilir. Verileri daha hızlı aramak için daha fazla bellek ve ek yazma tüketir. Bir indeks 4 tip olabilir:
1. Benzersiz Dizin
2. Benzersiz Olmayan İndeks
3. Kümelenmiş Dizin

SQL'de ilişki nedir ve türleri nelerdir?

Birbiriyle ilgisi olan birden çok varlık veya birden çok maddi ve maddi olmayan nesne arasındaki ilişki, ilişki olarak bilinir. SQL'de 4 tür ilişki vardır:
1. Bire Bir
2. Bire Çok/Çoktan Bire
3. Çoktan Çoka
4. Kendinden referanslı ilişkiler.