Python SQLite - Daten auswählen

Mit der SELECT-Abfrage können Sie Daten 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   rilanka
Virat        Kohli        India
Rohit        Sharma       India

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)
]