Cele mai bune interogări SQL în Python pe care fiecare dezvoltator Python ar trebui să le cunoască

Publicat: 2021-01-29

SQL înseamnă limbajul de interogare structurat, care ajută la gestionarea, manipularea și stocarea bazelor de date relaționale. O bază de date relațională cuprinde colecții de tabele care sunt corelate într-o formă sau alta. Tabelele multiple ne permit să segregam diferite entități ale informațiilor țintă și să evităm ca sute de coloane să fie blocate într-un singur tabel, ceea ce ar putea îngreuna gestionarea bazei de date.

Este un limbaj de interogare și nu baza de date în sine. Aceste interogări pot fi efectuate pe orice sistem de gestionare a bazelor de date relaționale, cum ar fi Oracle, Microsoft SQL Server, dar există o abordare pythonic pentru a crea și executa interogări SQL.

Cuprins

SQLite3

Aceasta este biblioteca încorporată Python care ne permite să creăm o bază de date ușoară fără a fi nevoie să rulăm un model client-server real. Poate fi folosit intern de aplicații pentru a stoca date și a executa comenzi SQL. Pachetul este ușor de utilizat și permite replicarea aceleiași scheme în orice bază de date bazată pe producție, cum ar fi Postgresql. Să vedem cum să configurați baza de date.

  • Declarație standard de import:

importați sqlite3 ca sq

Biblioteca este importată ca alias „sq”.

  • Acum, trebuie să creăm o conexiune la baza de date. Obiectul de conexiune va servi acestui scop:

conexiune = sq.connect(„example.db”)

Dacă acest fișier nu a fost creat înainte, atunci va fi creat imediat ce această comandă este executată.

  • Pentru a accesa și a prelua informații din baza de date, trebuie creat un obiect cursor.

cursor = connection.cursor()

Acum că s-a făcut setarea de bază, putem împinge datele în baza de date prin crearea tabelelor respective, dar înainte de asta, să revizuim câteva comenzi SQL.

Comenzi de bază în SQL

SQL este excelent în ceea ce privește comenzile lizibile în engleză. Acestea sunt de obicei scrise cu majuscule și nu există nicio restricție în acest sens. Acest lucru este de obicei practicat astfel încât cuvintele cheie de interogare să fie evidențiate și să devină distinse de atributele tabelului. Dar, deoarece acum avem IDE-uri puternice care le evidențiază într-o culoare diferită, orice metodă ar funcționa.

1. Creați tabel

Acest lucru vă permite să creați obiecte care dețin date, tabele în baza de date. O bază de date poate avea mai multe tabele cu una sau mai multe relații. Tabelele au anteturi pentru fiecare coloană care descrie valoarea pe care o deține. La crearea tabelului, trebuie să specificați numele coloanei, tipul de date pe care le va păstra și dimensiunea. Puteți adăuga alte atribute, cum ar fi dacă coloana este o cheie primară, poate avea valori nule și așa mai departe.

Un tabel de bază poate fi creat ca:

CREATE TABLE date_companie (

id int,

numele varchar (24),

nr_de_angajat int

);

2. SELECTAȚI și FROM

După cum sugerează și numele, este folosit pentru a selecta și a prelua datele din tabele. Este cel mai important pas care vă va permite să aruncați o privire asupra datelor. Este similar cu funcția de cap sau coadă a panda.

O interogare simplă folosind aceste comenzi ar arăta astfel:

SELECTAȚI <numele_coloanelor>

FROM <nume_tabel>;

Pentru a prelua toate coloanele din tabel, puteți pune steaua (*) în locul tuturor numelor de coloane. Cuvântul cheie LIMIT ajută la definirea numărului maxim de rânduri. Luați în considerare această interogare:

SELECTAȚI *

DIN exemplu_tabel

LIMITA 5;

3. Unde

Clauza where este folosită pentru a specifica condițiile suplimentare asupra interogării. Puteți include intervalul pentru coloane, orice comparație specifică sau negații.

De exemplu:

SELECTAȚI nume_client, Nume_companie

FROM date_companie

WHERE nume_companie = 'upGrad';

4. Introduceți

Această clauză este folosită pentru a adăuga valorile la tabelele de date. Valorile sunt inserate în aceeași ordine în care numele coloanelor sunt adăugate în tabel în comanda create table. Se pot insera mai multe rânduri sau unul odată.

De exemplu, interogarea de mai jos inserează 3 înregistrări într-un tabel:

INSERT INTO company_data (id, nume, nr_de_angajați)

VALORI

(1, „companyz_A”, 100),

(2, „compania_B”, 200),

(3, „compania_C”, 500);

Se execută prin Python

Acum că sunteți la curent cu comenzile, este timpul să le executați în cod. Până acum suntem conectați la baza de date și am creat un obiect cursor. Acest obiect va ajuta la executarea comenzilor din baza de date:

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

Interogarea este transmisă ca șir și între ghilimele triple. Această modificare nu va fi reflectată în baza de date până când nu efectuați această modificare. Închiderea conexiunii la baza de date la sfârșit asigură că nu se vor face noi execuții după acest punct.

Uită-te la acest cod simplu:

importa sqlite3 ca sq

conexiune = sq.connect(„example.db”)

cursor = connection.cursor()

cursor.execute(”'

CREATE TABLE table1 (

id int,

nume varchar (24)

)

”')

cursor.execute(”'

INSERT INTO table1 (id, nume)

VALORI

(1, „actualizare”)

(2, „bloguri”)

”')

cursor.execute(”'

SELECTAȚI *

DIN tabelul 1

”')

connection.commit()

connection.close()

Sfaturi importante

1. Întrucât interogările sunt transmise ca șiruri de caractere, modificarea lor folosind f-string poate părea o opțiune bună pentru a face programul dinamic și controlat de utilizator, dar poate cauza unele probleme de securitate, cum ar fi atacurile de injecție SQL. Pentru a evita acestea, utilizați substituentul „?” oriunde doriți să înlocuiți unele valori din interogare. De exemplu:

cursor.execute('“SELECT ? FROM ?''', col_name, table_name)

Puteți cere utilizatorului să furnizeze numele coloanei și acea valoare va fi înlocuită aici.

2. Utilizați funcții precum fetchone() și fetchall() pentru a repeta rezultatele. Fetchone returnează următorul rând din interogare și fetchall returnează toate rândurile preluate de cursor. Rezultatele sunt returnate ca tuplu, astfel încât nu pot fi modificate de funcții externe din program.

3. Dacă doriți să adăugați valori în bloc la baza de date, atunci puteți utiliza funcția executemany() și puteți trece lista de tupluri care conțin valorile de adăugat. De exemplu:

to_add = [(1, „bună ziua”) , (2, „Lumea”)]

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

Citiți și: Idei și subiecte pentru proiecte Python

Învață cursuri de știință a datelor online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

SQL este cel mai preferat limbaj de bază de date și ușor de înțeles. Majoritatea începătorilor în știința datelor sunt sfătuiți să practice SQL, deoarece îmbunătățește procesul de recuperare a datelor și oferă o privire asupra modului în care se realizează ingineria datelor. Este limbajul standard pentru orice manipulare a bazei de date și oferă acces mai rapid la baza de date.

Dacă sunteți curios să aflați despre știința datelor, consultați Diploma PG în știința datelor de la IIIT-B și upGrad, care este creată pentru profesioniști care lucrează și oferă peste 10 studii de caz și proiecte, ateliere practice practice, mentorat cu experți din industrie, 1- on-1 cu mentori din industrie, peste 400 de ore de învățare și asistență profesională cu firme de top.

Ce știi despre constrângeri în SQL?

Constrângerile determină ce tip de date vor fi introduse în tabel. Ele sunt specificate în timpul creării tabelului și pot fi aplicate unui singur câmp sau mai multor câmpuri. Constrângerile din SQL sunt:
NOT NULL- Previne introducerea valorii NULL într-un câmp.
VERIFICARE- Verifică dacă toate valorile dintr-un câmp satisfac condiția dată.
DEFAULT- Atribuie automat o valoare implicită unui câmp dacă nu a fost introdusă nicio valoare.
UNIQUE - Permite introducerea numai a valorilor unice într-un câmp.
INDEX- Indexează un câmp care oferă o regăsire mai rapidă a înregistrărilor.
CHEIE PRIMARĂ - identifică în mod unic fiecare înregistrare dintr-un tabel.
CHEIE STRĂINĂ – Restricționează acțiunile care ar putea afecta legăturile dintre tabele.

Explicați un index și tipurile acestuia?

Un index sau un index al bazei de date poate fi denumit un tabel special de căutare care face operația de recuperare a datelor mult mai rapidă. Consumă mai multă memorie și scrieri suplimentare pentru a căuta datele mai rapid. Un index poate fi de 4 tipuri:
1. Index unic
2. Index non-unic
3. Index cluster

Ce este o relație în SQL și care sunt tipurile ei?

O relație între mai multe entități sau mai multe obiecte tangibile și intangibile care au ceva de-a face unele cu altele este cunoscută ca o relație. Există 4 tipuri de relații în SQL:
1. Unu-la-unu
2. One-to-Many/Many-to-One
3. Mulți-la-Mulți
4. Relații de auto-referință.