Python SQLite - Daten auswählen

Sie können Daten mit der SELCT-Abfrage aus einer SQLite-Tabelle abrufen. Diese Abfrage / Anweisung gibt den Inhalt der angegebenen Beziehung (Tabelle) in Tabellenform zurück und wird als Ergebnismenge aufgerufen.

Syntax

Es folgt die Syntax der SELECT-Anweisung in SQLite -

SELECT column1, column2, columnN FROM table_name;

Beispiel

Angenommen, wir haben mit der folgenden Abfrage eine Tabelle mit dem Namen CRICKETERS erstellt:

sqlite> CREATE TABLE CRICKETERS (
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Age int,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255)
);
sqlite>

Und wenn wir 5 Datensätze mit INSERT-Anweisungen als - eingefügt haben

sqlite> insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
sqlite> insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
sqlite> insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
sqlite>

Die folgende SELECT-Abfrage ruft die Werte der Spalten FIRST_NAME, LAST_NAME und COUNTRY aus der Tabelle CRICKETERS ab.

sqlite> SELECT FIRST_NAME, LAST_NAME, COUNTRY FROM CRICKETERS;
Shikhar  |Dhawan     |India
Jonathan |Trott      |SouthAfrica
Kumara   |Sangakkara |Srilanka
Virat    |Kohli      |India
Rohit    |Sharma     |India
sqlite>

Wie Sie sehen, gibt die SELECT-Anweisung der SQLite-Datenbank nur die Datensätze der angegebenen Tabellen zurück. Um eine formatierte Ausgabe zu erhalten, müssen Sie dieheader, und mode Verwenden der entsprechenden Befehle vor der SELECT-Anweisung wie unten gezeigt -

sqlite> .header on
sqlite> .mode column
sqlite> SELECT FIRST_NAME, LAST_NAME, COUNTRY FROM CRICKETERS;
First_Name Last_Name            Country
---------- -------------------- ----------
Shikhar    Dhawan               India
Jonathan   Trott                SouthAfric
Kumara     Sangakkara           Srilanka
Virat      Kohli                India
Rohit      Sharma               India
sqlite>

Wenn Sie alle Spalten jedes Datensatzes abrufen möchten, müssen Sie die Namen der Spalten wie unten gezeigt durch "*" ersetzen.

sqlite> .header on
sqlite> .mode column
sqlite> SELECT * FROM CRICKETERS;
First_Name Last_Name  Age        Place_Of_Birth Country
---------- ---------- ---------- -------------- ----------
Shikhar    Dhawan     33         Delhi          India
Jonathan   Trott      38         CapeTown       SouthAfric
Kumara     Sangakkara 41         Matale         Srilanka
Virat      Kohli      30         Delhi          India
Rohit      Sharma     32         Nagpur         India
sqlite>

In SQLite standardmäßig ist die Breite der Spalten 10 Werte über diese Breite (beachten Sie die Land - Säule von 2 zerhackt werden nd Zeile in obiger Tabelle). Sie können die Breite jeder Spalte mit dem gewünschten Wert einstellen.width Befehl, bevor Sie den Inhalt einer Tabelle wie unten gezeigt abrufen -

sqlite> .width 10, 10, 4, 10, 13
sqlite> SELECT * FROM CRICKETERS;
First_Name Last_Name  Age  Place_Of_B Country
---------- ---------- ---- ---------- -------------
Shikhar    Dhawan     33   Delhi      India
Jonathan   Trott      38   CapeTown   SouthAfrica
Kumara     Sangakkara 41   Matale     Srilanka
Virat      Kohli      30   Delhi      India
Rohit      Sharma     32   Nagpur     India
sqlite>

Daten mit Python abrufen

READ Operation für eine beliebige Datenbank bedeutet, einige nützliche Informationen aus der Datenbank abzurufen. Sie können Daten aus MYSQL mit der vom SQLite-Python-Modul bereitgestellten Methode fetch () abrufen.

Die Klasse sqlite3.Cursor bietet drei Methoden, nämlich fetchall (), fetchmany () und fetchone (), wobei

  • Die Methode fetchall () ruft alle Zeilen in der Ergebnismenge einer Abfrage ab und gibt sie als Liste von Tupeln zurück. (Wenn wir dies ausführen, nachdem wir einige Zeilen abgerufen haben, werden die verbleibenden zurückgegeben.)

  • Die Methode fetchone () ruft die nächste Zeile im Ergebnis einer Abfrage ab und gibt sie als Tupel zurück.

  • Die Methode fetchmany () ähnelt der Methode fetchone (), ruft jedoch anstelle einer einzelnen Zeile die nächste Reihe von Zeilen in der Ergebnismenge einer Abfrage ab.

Note - Eine Ergebnismenge ist ein Objekt, das zurückgegeben wird, wenn ein Cursorobjekt zum Abfragen einer Tabelle verwendet wird.

Beispiel

Im folgenden Beispiel werden alle Zeilen der EMPLOYEE-Tabelle mit der SELECT-Abfrage abgerufen. Aus der erhaltenen Ergebnismenge wird zunächst die erste Zeile mit der Methode fetchone () und anschließend die verbleibenden Zeilen mit der Methode fetchall () abgerufen.

Das folgende Python-Programm zeigt, wie Datensätze aus der im obigen Beispiel erstellten COMPANY-Tabelle abgerufen und angezeigt werden.

import sqlite3

#Connecting to sqlite
conn = sqlite3.connect('example.db')

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

#Retrieving data
cursor.execute('''SELECT * from EMPLOYEE''')

#Fetching 1st row from the table
result = cursor.fetchone();
print(result)

#Fetching 1st row from the table
result = cursor.fetchall();
print(result)

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Ausgabe

('Ramya', 'Rama priya', 27, 'F', 9000.0)
[('Vinay', 'Battacharya', 20, 'M', 6000.0),
   ('Sharukh', 'Sheik', 25, 'M', 8300.0),
   ('Sarmista', 'Sharma', 26, 'F', 10000.0),
   ('Tripthi', 'Mishra', 24, 'F', 6000.0)
]