Die wichtigsten SQL-Abfragen in Python, die jeder Python-Entwickler kennen sollte

Veröffentlicht: 2021-01-29

SQL steht für Structured Query Language, die bei der Verwaltung, Bearbeitung und Speicherung relationaler Datenbanken hilft. Eine relationale Datenbank umfasst Sammlungen von Tabellen, die in der einen oder anderen Form korreliert sind. Mehrere Tabellen ermöglichen es uns, verschiedene Entitäten der Zielinformationen zu trennen und zu vermeiden, dass Hunderte von Spalten in einer Tabelle zusammengefasst werden, was die Verwaltung der Datenbank erschweren könnte.

Es ist eine Abfragesprache und nicht die Datenbank selbst. Diese Abfragen können auf jedem relationalen Datenbankverwaltungssystem wie Oracle oder Microsoft SQL Server ausgeführt werden, aber es gibt einen pythonischen Ansatz zum Erstellen und Ausführen von SQL-Abfragen.

Inhaltsverzeichnis

SQLite3

Dies ist die in Python integrierte Bibliothek, mit der wir eine einfache Datenbank erstellen können, ohne dass ein tatsächliches Client-Server-Modell ausgeführt werden muss. Es kann intern von den Anwendungen verwendet werden, um Daten zu speichern und SQL-Befehle auszuführen. Das Paket ist einfach zu verwenden und ermöglicht die Replikation desselben Schemas in jeder produktionsbasierten Datenbank wie Postgresql. Sehen wir uns an, wie die Datenbank eingerichtet wird.

  • Standardimporterklärung:

importiere sqlite3 als sq

Die Bibliothek wird als Alias ​​„sq“ importiert.

  • Jetzt müssen wir eine Verbindung zur Datenbank herstellen. Das Verbindungsobjekt dient diesem Zweck:

Verbindung = sq.connect("beispiel.db")

Wenn diese Datei vorher nicht erstellt wurde, wird sie erstellt, sobald dieser Befehl ausgeführt wird.

  • Um auf Informationen aus der Datenbank zuzugreifen und sie abzurufen, muss ein Cursorobjekt erstellt werden.

Cursor = Verbindung. Cursor ()

Nachdem die grundlegende Einrichtung abgeschlossen ist, können wir die Daten in die Datenbank pushen, indem wir die entsprechenden Tabellen erstellen, aber vorher wollen wir einige SQL-Befehle überarbeiten.

Grundlegende Befehle in SQL

SQL ist ausgezeichnet in Bezug auf englisch lesbare Befehle. Diese werden normalerweise in Großbuchstaben geschrieben und es gibt diesbezüglich keine Einschränkung. Dies wird normalerweise so praktiziert, dass die Abfrageschlüsselwörter hervorgehoben werden und von Tabellenattributen unterscheidbar werden. Aber da wir jetzt leistungsstarke IDEs haben, die sie in einer anderen Farbe hervorheben, würde jede Methode funktionieren.

1. Tabelle erstellen

Auf diese Weise können Sie die Daten enthaltenden Objekte und Tabellen in Ihrer Datenbank erstellen. Eine Datenbank kann viele Tabellen mit einer oder vielen Relationen haben. Die Tabellen haben Überschriften für jede Spalte, die den Wert beschreibt, den sie enthält. Beim Erstellen der Tabelle müssen Sie den Spaltennamen, den Datentyp und die Größe angeben. Sie können andere Attribute hinzufügen, z. B. ob die Spalte ein Primärschlüssel ist, Nullwerte haben kann und so weiter.

Eine Basistabelle kann wie folgt erstellt werden:

TABELLE ERSTELLEN unternehmensdaten (

id int,

name Varchar (24),

no_of_employee int

);

2. AUSWÄHLEN und VON

Wie der Name schon sagt, wird es verwendet, um die Daten aus den Tabellen auszuwählen und abzurufen. Dies ist der wichtigste Schritt, mit dem Sie sich die Daten ansehen können. Es ähnelt der Kopf- oder Schwanzfunktion des Pandas.

Eine einfache Abfrage mit diesen Befehlen würde wie folgt aussehen:

SELECT <Spaltenname(n)>

FROM <Tabellenname>;

Um alle Spalten aus der Tabelle abzurufen, können Sie den Stern (*) anstelle aller Spaltennamen setzen. Das Schlüsselwort LIMIT hilft bei der Definition der maximalen Zeilenanzahl. Betrachten Sie diese Abfrage:

AUSWÄHLEN *

AUS Beispieltabelle

GRENZE 5;

3. Wo

Die where-Klausel wird verwendet, um die zusätzlichen Bedingungen über die Abfrage anzugeben. Sie können den Bereich für Spalten, jeden bestimmten Vergleich oder Negationen einschließen.

Zum Beispiel:

WÄHLEN Sie Kundenname, Firmenname

VON Firmendaten

WHERE Firmenname = 'upGrad';

4. Einfügen

Diese Klausel wird verwendet, um die Werte zu den Datentabellen hinzuzufügen. Die Werte werden in derselben Reihenfolge eingefügt, in der die Spaltennamen mit dem Befehl create table in die Tabelle eingefügt werden. Man kann mehrere Zeilen oder eine nach der anderen einfügen.

Die folgende Abfrage fügt beispielsweise 3 Datensätze in eine Tabelle ein:

INSERT INTO company_data (id, name, no_of_employees)

WERTE

(1, 'firmaz_A', 100),

(2, 'firma_B', 200),

(3, 'Firma_C', 500);

Ausführung über Python

Jetzt, da Sie die Befehle kennen, ist es an der Zeit, sie im Code auszuführen. Bisher sind wir mit der Datenbank verbunden und haben ein Cursorobjekt erstellt. Dieses Objekt hilft bei der Ausführung der Befehle in der Datenbank:

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

Die Abfrage wird als String und in dreifachen Anführungszeichen übergeben. Diese Änderung wird nicht in der Datenbank widergespiegelt, bis Sie diese Änderung festschreiben. Das Schließen der Verbindung zur Datenbank am Ende stellt sicher, dass nach diesem Zeitpunkt keine neuen Ausführungen mehr erfolgen.

Sehen Sie sich diesen einfachen Code an:

importiere sqlite3 als sq

Verbindung = sq.connect("beispiel.db")

Cursor = Verbindung. Cursor ()

cursor.execute(”'

TABELLE ERSTELLEN tabelle1 (

id int,

Namen Varchar (24)

)

”')

cursor.execute(”'

INSERT INTO table1 (ID, Name)

WERTE

(1, 'Aktualisierung'),

(2, 'blogs')

”')

cursor.execute(”'

AUSWÄHLEN *

VON Tabelle1

”')

Verbindung.commit()

connection.close()

Wichtige Tipps

1. Da die Abfragen als Zeichenfolgen übergeben werden, scheint eine Änderung mit f-string eine gute Option zu sein, um das Programm dynamisch und benutzergesteuert zu machen, aber es kann einige Sicherheitsprobleme wie SQL-Injection-Angriffe verursachen. Um diese zu vermeiden, verwenden Sie den Platzhalter „?“. überall dort, wo Sie einige Werte in der Abfrage ersetzen möchten. Zum Beispiel:

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

Sie können den Benutzer bitten, den Spaltennamen anzugeben, und dieser Wert wird hier ersetzt.

2. Verwenden Sie Funktionen wie fetchone() und fetchall(), um die Ergebnisse zu durchlaufen. Fetchone gibt die nächste Zeile in der Abfrage zurück und fetchall gibt alle vom Cursor abgerufenen Zeilen zurück. Die Ergebnisse werden als Tupel zurückgegeben, sodass sie nicht durch externe Funktionen im Programm geändert werden können.

3. Wenn Sie Massenwerte zur Datenbank hinzufügen möchten, können Sie die Funktion executemany() verwenden und die Liste der Tupel mit den hinzuzufügenden Werten übergeben. Zum Beispiel:

to_add = [(1, 'Hallo') , (2, 'Welt')]

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

Lesen Sie auch: Ideen und Themen für Python-Projekte

Lernen Sie Data Science-Kurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Fazit

SQL ist die am meisten bevorzugte Datenbanksprache und einfach zu verstehen. Den meisten Anfängern in Data Science wird empfohlen, SQL zu üben, da es den Datenabrufprozess verbessert und einen Einblick in die Durchführung von Data Engineering gibt. Es ist die Standardsprache für jede Datenbankmanipulation und bietet einen schnelleren Zugriff auf die Datenbank.

Wenn Sie neugierig sind, mehr über Data Science zu erfahren, schauen Sie sich das PG Diploma in Data Science von IIIT-B & upGrad an, das für Berufstätige entwickelt wurde und mehr als 10 Fallstudien und Projekte, praktische Workshops, Mentoring mit Branchenexperten, 1- on-1 mit Mentoren aus der Branche, mehr als 400 Stunden Lern- und Jobunterstützung bei Top-Unternehmen.

Was wissen Sie über Constraints in SQL?

Einschränkungen bestimmen, welche Art von Daten in die Tabelle eingegeben werden. Sie werden während der Erstellung der Tabelle angegeben und können auf ein einzelnes Feld oder mehrere Felder angewendet werden. Die Einschränkungen in SQL sind:
NOT NULL – Verhindert, dass ein NULL-Wert in ein Feld eingegeben wird.
CHECK- Überprüft, ob alle Werte in einem Feld die angegebene Bedingung erfüllen.
DEFAULT- Weist einem Feld automatisch einen Standardwert zu, wenn kein Wert eingegeben wurde.
EINZIGARTIG – Ermöglicht die Eingabe von nur eindeutigen Werten in ein Feld.
INDEX- Indiziert ein Feld, das einen schnelleren Abruf von Datensätzen ermöglicht.
PRIMARY KEY- Identifiziert jeden Datensatz in einer Tabelle eindeutig.
FOREIGN KEY- Beschränkt Aktionen, die die Verknüpfungen zwischen Tabellen beschädigen könnten.

Erklären Sie einen Index und seine Typen?

Ein Index oder ein Datenbankindex kann als spezielle Nachschlagetabelle bezeichnet werden, die den Datenabrufvorgang viel schneller macht. Es verbraucht mehr Speicher und zusätzliche Schreibvorgänge, um die Daten schneller zu durchsuchen. Ein Index kann aus 4 Typen bestehen:
1. Eindeutiger Index
2. Nicht eindeutiger Index
3. Gruppierter Index

Was ist eine Beziehung in SQL und welche Typen gibt es?

Eine Beziehung zwischen mehreren Entitäten oder mehreren materiellen und immateriellen Objekten, die etwas miteinander zu tun haben, wird als Beziehung bezeichnet. Es gibt 4 Arten von Beziehungen in SQL:
1. Eins-zu-eins
2. Eins-zu-Viele/Viele-zu-Eins
3. Viele-zu-Viele
4. Selbstreferenzierende Beziehungen.