Bei der Python-Programmierung ist es oft notwendig, mit Datenbanken zu arbeiten. Eines der beliebtesten Datenbankmanagementsysteme ist SQL, mit dem wir in diesem Artikel arbeiten werden. Es gibt oft eine Situation, in der wir den Namen der Tabelle in der Datenbank herausfinden müssen. In diesem Tutorial werden wir uns ansehen, wie man dies mit Python macht.
Zuerst müssen wir eine Bibliothek für die Arbeit mit Datenbanken in Python installieren. Eine der beliebtesten ist die SQLite3-Bibliothek, mit der Sie mit SQLite-Dateidatenbanken arbeiten können. Um die Bibliothek zu installieren, können Sie den pip-Paketmanager mit folgendem Befehl verwenden: pip install sqlite3.
Nach der Installation der Bibliothek können wir mit der Arbeit mit der Datenbank beginnen. Zuerst müssen Sie mithilfe der Funktion eine Verbindung mit der Datenbank herstellen connect aus der sqlite3-Bibliothek. Sie müssen den Pfad zur Datenbankdatei als Funktionsargument angeben. Wenn die Datenbank nicht vorhanden ist, wird sie automatisch erstellt.
Nach erfolgreicher Verbindung mit der Datenbank können wir die Namen aller Tabellen mit einer Methode herausfinden execute. Eine SQL-Abfrage muss als Argument an die Methode übergeben werden "SELECT name FROM sqlite_master WHERE type='table'". Das resultierende Ergebnis enthält die Namen aller Tabellen in der Datenbank.
Schritt 1: Herstellen einer Verbindung mit einer SQL-Datenbank
Bevor Sie mit SQL beginnen und den Tabellennamen herausfinden können, müssen Sie eine Verbindung mit der Datenbank herstellen. Sie können das pyodbc-Modul in Python verwenden, um dies zu tun.
Zu Beginn müssen Sie dieses Modul mit dem Befehl installieren:
pip install pyodbc
Nach erfolgreicher Installation des Moduls benötigen wir Informationen, um eine Verbindung zur Datenbank herzustellen. Es ist wichtig, die folgenden Parameter zu kennen:
| Parameter | Die Beschreibung |
|---|---|
| Driver | Der Name des Treibers, der zum Herstellen einer Verbindung mit der Datenbank verwendet werden soll (z. B. "ODBC Driver 17 for SQL Server") |
| Server | Die Adresse des Datenbankservers (z. B. "localhost" oder "myserver.example.com ") |
| Database | Name der Datenbank |
| UID | Benutzername der Datenbank |
| PWD | Kennwort des Datenbankbenutzers |
Nachdem Sie die erforderlichen Informationen erhalten haben, können Sie eine Verbindung mit der Datenbank herstellen. Dazu muss die pyodbc-Funktion verwendet werden.connect() :
import pyodbc# Информация для подключенияdriver = "ODBC Driver 17 for SQL Server"server = "localhost"database = "mydatabase"uid = "myusername"pwd = "mypassword"# Подключение к базе данныхconn = pyodbc.connect(driver=driver, server=server, database=database, uid=uid, pwd=pwd)
Nachdem dieser Code ausgeführt wurde, speichert die Variable conn ein Datenbankverbindungsobjekt, mit dem Sie SQL-Abfragen ausführen und Ergebnisse abrufen können.
Schritt 2: Wählen Sie die Datenbank und die Tabelle aus
Nachdem Sie erfolgreich eine Verbindung zum Datenbankserver hergestellt haben, müssen Sie die gewünschte Datenbank und die Tabelle auswählen, mit der Sie arbeiten möchten.
Dazu müssen Sie den Namen der Datenbank kennen. Wenn Sie es nicht kennen, können Sie die Funktion DATABASES ANZEIGEN verwenden, um eine Liste aller verfügbaren Datenbanken abzurufen. Mit der USE-Anweisung können Sie dann die gewünschte Datenbank auswählen:
- Stellen Sie eine Verbindung zum Datenbankserver her
- Führen Sie eine SHOW DATABASES-Abfrage aus, um eine Liste der Datenbanken abzurufen
- Wählen Sie mithilfe der USE-Anweisung die gewünschte Datenbank aus
Nachdem Sie die Datenbank ausgewählt haben, müssen Sie die Tabelle auswählen, mit der Sie arbeiten möchten. Wenn Sie den Tabellennamen kennen, können Sie die USE-Anweisung verwenden, um die Tabelle auszuwählen:
- Führen Sie eine SHOW TABLES-Abfrage aus, um eine Liste aller Tabellen in der ausgewählten Datenbank abzurufen
- Wählen Sie die gewünschte Tabelle mithilfe der USE-Anweisung aus
Wenn Sie den Tabellennamen nicht kennen, können Sie eine SELECT * FROM information_schema-Abfrage verwenden.tables WHERE table_schema = 'Datenbankname' , um eine Liste aller Tabellen in der ausgewählten Datenbank abzurufen. Ersetzen Sie Datenbankname durch den Namen Ihrer Datenbank.
Nachdem Sie eine Tabelle ausgewählt haben, können Sie mit Python verschiedene Abfragen für die Daten in der ausgewählten Tabelle ausführen.
Schritt 3: Abrufen des Tabellennamens
Eine Möglichkeit, den Tabellennamen abzurufen, besteht darin, SQL-Abfragen zu verwenden, um Informationen über die Struktur der Datenbank abzurufen. In Python kann dies mit der psycopg2-Bibliothek für die Arbeit mit PostgreSQL erfolgen.
Beispielcode zum Abrufen des Tabellennamens:
import psycopg2# Подключение к базе данныхconn = psycopg2.connect(database="mydatabase", user="myuser", password="mypassword", host="localhost", port="5432")# Создание курсора для выполнения SQL-запросовcur = conn.cursor()# Выполнение SQL-запроса для получения списка таблицcur.execute("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'")# Получение списка таблицtables = cur.fetchall()for table in tables:print(table[0])# Закрытие курсора и соединенияcur.close()conn.close()
Durch die Ausführung dieses Codes wird eine Liste der Tabellennamen angezeigt, die sich im Schema 'public' der Datenbank befinden.
Schritt 4: Verwenden Sie Python, um den Tabellennamen abzufragen
Nachdem wir nun eine Verbindung zur Datenbank hergestellt und einen Cursor erstellt haben, sind wir bereit, eine Abfrage auszuführen, um den Tabellennamen abzurufen. Dazu verwenden wir die execute() -Methode, die die als Argument übergebenen SQL-Abfragen ausführt. In unserem Fall möchten wir eine SELECT table_name FROM information_schema-Abfrage ausführen.tables WHERE table_schema = 'public' , um alle Tabellennamen aus dem Schema "public" abzurufen.
import psycopg2# Установка соединения с базой данныхconn = psycopg2.connect(database="mydatabase", user="myuser", password="mypassword", host="localhost", port="5432")print("Успешное соединение с базой данных")# Создание курсораcur = conn.cursor()# Выполнение SQL-запросаcur.execute("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'")# Получение результатовrows = cur.fetchall()for row in rows:print(row[0])# Закрытие курсора и соединенияcur.close()conn.close()
Vergessen Sie nicht, den Cursor und die Verbindung zu schließen, nachdem Sie die Datenbank beendet haben, wie im Codebeispiel gezeigt
Schritt 5: Verarbeiten des Abfrageergebnisses
Nachdem Sie die Abfrage ausgeführt haben und das Ergebnis erhalten haben, müssen Sie sie zur späteren Verwendung in Python verarbeiten.
Der erste Schritt besteht darin, die Daten aus dem Abfrageergebnis zu extrahieren. Wenn die Abfrage mehrere Zeilen zurückgibt, wird empfohlen, eine Schleife zu verwenden, um jede Zeile zu durchlaufen und die erforderlichen Werte abzurufen.
In Python können Sie die Methoden fetchone() und fetchall() zum Abrufen von Daten verwenden. Die fetchone() -Methode gibt eine Ergebniszeile zurück, und die fetchall() -Methode gibt alle Ergebniszeilen als Liste zurück.
Beispiel für die Verwendung der fetchone() -Methode:
result = cursor.fetchone()while result is not None:# обработка данныхresult = cursor.fetchone()
Beispiel für die Verwendung der fetchall() -Methode:
results = cursor.fetchall()for result in results:# обработка данных
Nachdem die Daten abgerufen wurden, können sie für verschiedene Zwecke verwendet werden, z. B. zum Abrufen des Tabellennamens. Wenn das Abfrageergebnis einen Tabellennamen enthält, kann es mit Standardmethoden für die Arbeit mit Strings in Python verarbeitet werden.
In diesem Schritt haben wir gelernt, wie man das Abfrageergebnis verarbeitet und die notwendigen Daten daraus extrahiert.