Python SQLite - выбор данных
Вы можете получить данные из таблицы SQLite с помощью запроса SELECT. Этот запрос / инструкция возвращает содержимое указанного отношения (таблицы) в табличной форме и вызывается как набор результатов.
Синтаксис
Ниже приводится синтаксис оператора SELECT в SQLite:
SELECT column1, column2, columnN FROM table_name;
пример
Предположим, мы создали таблицу с именем CRICKETERS, используя следующий запрос -
sqlite> CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age int,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
sqlite>
И если мы вставили в него 5 записей, используя инструкции INSERT как -
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>
Следующий запрос SELECT извлекает значения столбцов FIRST_NAME, LAST_NAME и COUNTRY из таблицы CRICKETERS.
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>
Как вы заметили, оператор SELECT базы данных SQLite просто возвращает записи указанных таблиц. Чтобы получить форматированный вывод, вам нужно установитьheader, и mode используя соответствующие команды перед оператором SELECT, как показано ниже -
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
Если вы хотите получить все столбцы каждой записи, вам необходимо заменить имена столбцов на «*», как показано ниже -
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>
В SQLite по умолчанию ширина столбцов составляет 10 значений, превышающих эту ширину (обратите внимание на столбец страны во 2- й строке в приведенной выше таблице). Вы можете установить ширину каждого столбца на необходимое значение, используя.width перед извлечением содержимого таблицы, как показано ниже -
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
READ Операция с любой базой данных означает получение некоторой полезной информации из базы данных. Вы можете получить данные из MYSQL, используя метод fetch (), предоставляемый модулем sqlite python.
Класс sqlite3.Cursor предоставляет три метода, а именно fetchall (), fetchmany () и fetchone (), где,
Метод fetchall () извлекает все строки в наборе результатов запроса и возвращает их в виде списка кортежей. (Если мы выполним это после получения нескольких строк, он вернет оставшиеся).
Метод fetchone () выбирает следующую строку в результате запроса и возвращает ее как кортеж.
Метод fetchmany () похож на метод fetchone (), но он извлекает следующий набор строк в результирующем наборе запроса вместо одной строки.
Note - Набор результатов - это объект, который возвращается, когда объект курсора используется для запроса таблицы.
пример
В следующем примере извлекаются все строки таблицы EMPLOYEE с помощью запроса SELECT, и изначально из полученного набора результатов мы извлекаем первую строку с помощью метода fetchone (), а затем извлекаем оставшиеся строки с помощью метода fetchall ().
Следующая программа Python показывает, как получать и отображать записи из таблицы COMPANY, созданной в приведенном выше примере.
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()
Вывод
('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)
]