Python SQLite - Verileri Seç

SELECT sorgusunu kullanarak bir SQLite tablosundan veri alabilirsiniz. Bu sorgu / ifade, belirtilen ilişkinin (tablo) içeriğini tablo biçiminde döndürür ve sonuç kümesi olarak adlandırılır.

Sözdizimi

Aşağıda, SQLite'daki SELECT ifadesinin sözdizimi verilmiştir -

SELECT column1, column2, columnN FROM table_name;

Misal

Aşağıdaki sorguyu kullanarak CRICKETERS adında bir tablo oluşturduğumuzu varsayalım -

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

Ve INSERT ifadelerini kullanarak 5 kayıt eklediysek -

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>

Aşağıdaki SELECT sorgusu, CRICKETERS tablosundan FIRST_NAME, LAST_NAME ve COUNTRY sütunlarının değerlerini alır.

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>

Gözlemlediğiniz gibi, SQLite veritabanının SELECT deyimi yalnızca belirtilen tabloların kayıtlarını döndürür. Biçimlendirilmiş bir çıktı elde etmek için,header, ve mode aşağıda gösterildiği gibi SELECT ifadesinden önce ilgili komutları kullanarak -

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

Her kaydın tüm sütunlarını geri almak istiyorsanız, aşağıda gösterildiği gibi sütunların adlarını "*" ile değiştirmeniz gerekir -

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>

Gelen SQLite'ta varsayılan sütun genişliği doğranır genişliği bunun ötesinde 10 değerleri (2 ülke sütun gözlenir nd yukarıdaki tabloda satır). Her bir sütunun genişliğini gerekli değere ayarlayabilirsiniz..width komutu, aşağıda gösterildiği gibi bir tablonun içeriğini almadan önce -

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>

Python Kullanarak Verileri Alma

Herhangi bir veritabanı üzerinde READ İşlemi, veritabanından bazı yararlı bilgileri almak anlamına gelir. Sqlite python modülü tarafından sağlanan fetch () yöntemini kullanarak MYSQL'den veri alabilirsiniz.

Sqlite3.Cursor sınıfı, fetchall (), fetchmany () ve fetchone () olmak üzere üç yöntem sağlar;

  • Fetchall () yöntemi, bir sorgunun sonuç kümesindeki tüm satırları alır ve bunları demetler listesi olarak döndürür. (Bunu birkaç satırı aldıktan sonra yürütürsek, kalanları döndürür).

  • Fetchone () yöntemi, bir sorgunun sonucundaki sonraki satırı getirir ve bunu bir demet olarak döndürür.

  • Fetchmany () yöntemi fetchone () yöntemine benzer, ancak tek bir satır yerine bir sorgunun sonuç kümesindeki sonraki satır kümesini alır.

Note - Sonuç kümesi, bir tabloyu sorgulamak için bir imleç nesnesi kullanıldığında döndürülen bir nesnedir.

Misal

Aşağıdaki örnek, EMPLOYEE tablosunun tüm satırlarını SELECT sorgusunu kullanarak ve başlangıçta elde edilen sonuç kümesinden alır, fetchone () yöntemini kullanarak ilk satırı alıyoruz ve ardından fetchall () yöntemini kullanarak kalan satırları alıyoruz.

Aşağıdaki Python programı, yukarıdaki örnekte oluşturulan COMPANY tablosundan kayıtların nasıl getirileceğini ve görüntüleneceğini gösterir.

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

Çıktı

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