Najpopularniejsze zapytania SQL w Pythonie, które powinien znać każdy programista Pythona

Opublikowany: 2021-01-29

SQL oznacza język Structured Query, który pomaga w zarządzaniu, manipulowaniu i przechowywaniu relacyjnych baz danych. Relacyjna baza danych zawiera kolekcje tabel, które są skorelowane w takiej lub innej formie. Wiele tabel pozwala nam na segregowanie różnych jednostek informacji docelowych i unikanie umieszczania setek kolumn w jednej tabeli, co może utrudnić zarządzanie bazą danych.

Jest to język zapytań, a nie sama baza danych. Zapytania te mogą być wykonywane w dowolnym systemie zarządzania relacyjnymi bazami danych, takim jak Oracle, Microsoft SQL Server, ale istnieje podejście Pythona do tworzenia i wykonywania zapytań SQL.

Spis treści

SQLite3

Jest to wbudowana biblioteka Pythona, która pozwala nam stworzyć lekką bazę danych bez konieczności uruchamiania rzeczywistego modelu klient-serwer. Może być używany wewnętrznie przez aplikacje do przechowywania danych i wykonywania poleceń SQL. Pakiet jest łatwy w użyciu i umożliwia replikację tego samego schematu w dowolnej produkcyjnej bazie danych, takiej jak Postgresql. Zobaczmy, jak skonfigurować bazę danych.

  • Standardowe oświadczenie importowe:

importuj sqlite3 jako sq

Biblioteka jest importowana jako alias „sq”.

  • Teraz musimy utworzyć połączenie z bazą danych. Do tego celu będzie służył obiekt połączenia:

połączenie = sq.connect("przykład.db")

Jeśli ten plik nie został wcześniej utworzony, zostanie utworzony zaraz po wykonaniu tego polecenia.

  • Aby uzyskać dostęp i pobrać informacje z bazy danych, należy utworzyć obiekt kursora.

kursor = połączenie.kursor()

Teraz, gdy podstawowa konfiguracja została wykonana, możemy przesłać dane do bazy danych, tworząc odpowiednie tabele, ale wcześniej zmieńmy niektóre polecenia SQL.

Podstawowe polecenia w SQL

SQL jest doskonały pod względem poleceń czytelnych w języku angielskim. Są one zwykle pisane wielkimi literami i nie ma co do tego żadnych ograniczeń. Jest to zwykle praktykowane w celu wyróżnienia słów kluczowych zapytań i umożliwienia ich odróżnienia od atrybutów tabeli. Ale ponieważ teraz mamy potężne IDE, które podświetlają je innym kolorem, każda metoda zadziała.

1. Utwórz tabelę

Pozwala to na tworzenie obiektów przechowujących dane, tabel w Twojej bazie danych. Baza danych może mieć wiele tabel z jedną lub wieloma relacjami. Tabele mają nagłówki dla każdej kolumny opisującej wartość, którą przechowują. Tworząc tabelę, musisz określić nazwę kolumny, rodzaj danych, które będzie przechowywać, oraz rozmiar. Możesz dodać inne atrybuty, na przykład jeśli kolumna jest kluczem podstawowym, może mieć wartości null i tak dalej.

Tabela podstawowa może być stworzona jako:

CREATE TABLE dane_firmy (

ID int,

imię varchar (24),

no_of_employee int

);

2. WYBIERZ i OD

Jak sama nazwa wskazuje, służy do wybierania i pobierania danych z tabel. Jest to najważniejszy krok, który pozwoli ci przyjrzeć się danym. Jest podobny do funkcji głowy lub ogona Pandy.

Proste zapytanie używające tych poleceń wyglądałoby tak:

SELECT <nazwy_kolumn>

Z <nazwa_tabeli>;

Aby pobrać wszystkie kolumny z tabeli, możesz umieścić gwiazdkę (*) zamiast wszystkich nazw kolumn. Słowo kluczowe LIMIT pomaga w określeniu maksymalnej liczby wierszy. Rozważ to zapytanie:

WYBIERZ *

Z przykładowa_tabela

LIMIT 5;

3. Gdzie

Klauzula where służy do określenia dodatkowych warunków zapytania. Możesz uwzględnić zakres kolumn, dowolne konkretne porównanie lub negacje.

Na przykład:

SELECT nazwa_klienta, nazwa_firmy

Z danych_firmy

GDZIE nazwa_firmy = 'upGrad';

4. Wstaw

Ta klauzula służy do dodawania wartości do tabel danych. Wartości są wstawiane w tej samej kolejności, w jakiej nazwy kolumn są dodawane do tabeli w poleceniu tworzenia tabeli. Można wstawić wiele wierszy lub jeden na raz.

Na przykład poniższe zapytanie wstawia 3 rekordy do tabeli:

WSTAW W dane firmy (identyfikator, imię i nazwisko, liczba_pracowników)

WARTOŚCI

(1, 'firma_A', 100),

(2, 'firma_B', 200),

(3, 'firma_C', 500);

Wykonywanie przez Pythona

Teraz, gdy znasz polecenia, nadszedł czas, aby wykonać je w kodzie. Na razie jesteśmy połączeni z bazą danych i stworzyliśmy obiekt kursora. Ten obiekt pomoże w wykonaniu poleceń na bazie danych:

cursor.execute(''' <ZAPYTANIE> ''')

Zapytanie jest przekazywane jako ciąg znaków oraz w potrójnych cudzysłowach. Ta zmiana nie zostanie odzwierciedlona w bazie danych, dopóki nie zatwierdzisz tej zmiany. Zamknięcie połączenia z bazą danych na końcu gwarantuje, że po tym punkcie nie zostaną wykonane żadne nowe wykonania.

Spójrz na ten prosty kod:

importuj sqlite3 jako sq

połączenie = sq.connect("przykład.db")

kursor = połączenie.kursor()

kursor.wykonaj(”'

UTWÓRZ TABELĘ tabela1 (

ID int,

imię varchar (24)

)

”')

kursor.wykonaj(”'

INSERT INTO table1 (id, nazwa)

WARTOŚCI

(1, 'uaktualnienie'),

(2, „blogi”)

”')

kursor.wykonaj(”'

WYBIERZ *

Z tabeli1

”')

połączenie.zatwierdź()

połączenie.zamknij()

Ważne wskazówki

1. Ponieważ zapytania są przekazywane jako ciągi, modyfikowanie ich za pomocą f-string może wydawać się dobrą opcją, aby program był dynamiczny i kontrolowany przez użytkownika, ale może powodować pewne problemy z bezpieczeństwem, takie jak ataki typu SQL injection. Aby ich uniknąć, użyj symbolu zastępczego „?” wszędzie tam, gdzie chcesz zastąpić niektóre wartości w zapytaniu. Na przykład:

cursor.execute('"WYBIERZ? Z ?''', nazwa_kolumny, nazwa_tabeli)

Możesz poprosić użytkownika o podanie nazwy kolumny, a ta wartość zostanie tutaj zastąpiona.

2. Użyj funkcji, takich jak fetchone() i fetchall(), aby przejrzeć wyniki. Fetchone zwraca następny wiersz w zapytaniu, a fetchall zwraca wszystkie wiersze pobrane przez kursor. Wyniki są zwracane jako krotka, więc nie mogą być modyfikowane przez funkcje zewnętrzne w programie.

3. Jeśli chcesz dodać wartości zbiorcze do bazy danych, możesz użyć funkcji executemany() i przekazać listę krotek zawierających wartości do dodania. Na przykład:

to_add = [(1, 'cześć') , (2, 'Świat')]

cursor.executemany('INSERT INTO table VALUES (?, ?)', to_add)

Przeczytaj także: Pomysły i tematy projektów Pythona

Ucz się online kursów nauki o danych z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

SQL jest najbardziej preferowanym i łatwym do zrozumienia językiem baz danych. Większości początkujących w Data Science zaleca się ćwiczenie języka SQL, ponieważ usprawnia on proces wyszukiwania danych i daje wgląd w to, jak przeprowadzana jest inżynieria danych. Jest to standardowy język do wszelkich manipulacji bazą danych i oferuje szybszy dostęp do bazy danych.

Jeśli jesteś zainteresowany nauką o danych, sprawdź IIIT-B i upGrad's PG Diploma in Data Science, który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z ekspertami z branży, 1- on-1 z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.

Co wiesz o ograniczeniach w SQL?

Ograniczenia określają, jaki typ danych zostanie wprowadzony do tabeli. Są one określane podczas tworzenia tabeli i można je zastosować do pojedynczego pola lub wielu pól. Ograniczenia w SQL to:
NOT NULL — zapobiega wprowadzeniu w polu wartości NULL.
CHECK — sprawdza, czy wszystkie wartości w polu spełniają podany warunek.
DEFAULT — automatycznie przypisuje do pola wartość domyślną, jeśli nie została wprowadzona żadna wartość.
UNIQUE — umożliwia wprowadzanie w polu tylko unikalnych wartości.
INDEKS — indeksuje pole, zapewniając szybsze wyszukiwanie rekordów.
KLUCZ PODSTAWOWY — jednoznacznie identyfikuje każdy rekord w tabeli.
KLUCZ ZAGRANICZNY- Ograniczenia działań, które mogą zaszkodzić powiązaniom między tabelami.

Wyjaśnij indeks i jego rodzaje?

Indeks lub indeks bazy danych można nazwać specjalną tabelą przeglądową, która znacznie przyspiesza operację pobierania danych. Zużywa więcej pamięci i dodatkowe zapisy w celu szybszego wyszukiwania danych. Indeks może mieć 4 typy:
1. Unikalny indeks
2. Nieunikalny indeks
3. Indeks klastrowy

Czym jest relacja w SQL i jakie są jej typy?

Relacja między wieloma podmiotami lub wieloma materialnymi i niematerialnymi obiektami, które mają ze sobą coś wspólnego, nazywana jest relacją. W SQL istnieją 4 typy relacji:
1. Jeden na jednego
2. Jeden-do-wielu/wielu-do-jednego
3. Wiele do wielu
4. Relacje do siebie.