Python SQLite - Chọn dữ liệu
Bạn có thể truy xuất dữ liệu từ bảng SQLite bằng cách sử dụng truy vấn SELECT. Truy vấn / câu lệnh này trả về nội dung của quan hệ được chỉ định (bảng) ở dạng bảng và nó được gọi là tập kết quả.
Cú pháp
Sau đây là cú pháp của câu lệnh SELECT trong SQLite:
SELECT column1, column2, columnN FROM table_name;
Thí dụ
Giả sử chúng ta đã tạo một bảng có tên CRICKETERS bằng truy vấn sau:
sqlite> CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age int,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
sqlite>
Và nếu chúng ta đã chèn 5 bản ghi vào nó bằng cách sử dụng câu lệnh INSERT như -
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>
Sau khi truy vấn SELECT truy xuất giá trị của các cột FIRST_NAME, LAST_NAME và COUNTRY từ bảng 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>
Như bạn quan sát, câu lệnh SELECT của cơ sở dữ liệu SQLite chỉ trả về các bản ghi của các bảng được chỉ định. Để có được đầu ra được định dạng, bạn cần đặtheader, và mode bằng cách sử dụng các lệnh tương ứng trước câu lệnh SELECT như hình dưới đây -
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
Nếu bạn muốn truy xuất tất cả các cột của mỗi bản ghi, bạn cần thay thế tên của các cột bằng "*" như hình dưới đây -
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>
Trong SQLite theo mặc định, chiều rộng của các cột là 10 giá trị ngoài chiều rộng này được cắt nhỏ (quan sát cột quốc gia của hàng thứ 2 trong bảng trên). Bạn có thể đặt chiều rộng của mỗi cột thành giá trị bắt buộc bằng cách sử dụng.width trước khi truy xuất nội dung của bảng như hình dưới đây -
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>
Truy xuất dữ liệu bằng Python
ĐỌC Hoạt động trên bất kỳ cơ sở dữ liệu nào có nghĩa là lấy một số thông tin hữu ích từ cơ sở dữ liệu. Bạn có thể tìm nạp dữ liệu từ MYSQL bằng phương thức fetch () được cung cấp bởi mô-đun python sqlite.
Lớp sqlite3.Cursor cung cấp ba phương thức cụ thể là fetchall (), fetchmany () và, fetchone () trong đó,
Phương thức fetchall () truy xuất tất cả các hàng trong tập kết quả của một truy vấn và trả về chúng dưới dạng danh sách các bộ giá trị. (Nếu chúng ta thực hiện điều này sau khi truy xuất một vài hàng, nó sẽ trả về những hàng còn lại).
Phương thức fetchone () tìm nạp hàng tiếp theo trong kết quả của một truy vấn và trả về nó dưới dạng một bộ giá trị.
Phương thức fetchmany () tương tự như fetchone () nhưng, nó truy xuất tập hợp các hàng tiếp theo trong tập kết quả của một truy vấn, thay vì một hàng.
Note - Tập kết quả là một đối tượng được trả về khi một đối tượng con trỏ được sử dụng để truy vấn một bảng.
Thí dụ
Ví dụ sau tìm nạp tất cả các hàng của bảng EMPLOYEE bằng cách sử dụng truy vấn SELECT và từ tập kết quả thu được ban đầu, chúng tôi đang truy xuất hàng đầu tiên bằng phương thức fetchone () và sau đó tìm nạp các hàng còn lại bằng phương thức fetchall ().
Chương trình Python sau đây cho thấy cách tìm nạp và hiển thị các bản ghi từ bảng COMPANY được tạo trong ví dụ trên.
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()
Đầu ra
('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)
]