Python PostgreSQL - Chọn dữ liệu
Bạn có thể truy xuất nội dung của một bảng hiện có trong PostgreSQL bằng cách sử dụng câu lệnh SELECT. Tại câu lệnh này, bạn cần chỉ định tên của bảng và nó trả về nội dung của nó ở định dạng bảng đượ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 PostgreSQL:
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:
postgres=# CREATE TABLE CRICKETERS (
First_Name VARCHAR(255), Last_Name VARCHAR(255), Age int,
Place_Of_Birth VARCHAR(255), Country VARCHAR(255)
);
CREATE TABLE
postgres=#
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ư -
postgres=# insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
INSERT 0 1
postgres=# insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
INSERT 0 1
postgres=# insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
INSERT 0 1
postgres=# insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
INSERT 0 1
postgres=# insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
INSERT 0 1
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.
postgres=# SELECT FIRST_NAME, LAST_NAME, COUNTRY FROM CRICKETERS;
first_name | last_name | country
------------+------------+-------------
Shikhar | Dhawan | India
Jonathan | Trott | SouthAfrica
Kumara | Sangakkara | Srilanka
Virat | Kohli | India
Rohit | Sharma | India
(5 rows)
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 -
postgres=# SELECT * FROM CRICKETERS;
first_name | last_name | age | place_of_birth | 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
(5 rows)
postgres=#
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ừ PostgreSQL bằng phương thức fetch () được cung cấp bởi psycopg2.
Lớp 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 lấy 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ị.
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ụ
Chương trình Python sau kết nối với cơ sở dữ liệu có tên mydb của PostgreSQL và truy xuất tất cả các bản ghi từ bảng có tên EMPLOYEE.
import psycopg2
#establishing the connection
conn = psycopg2.connect(
database="mydb", user='postgres', password='password', host='127.0.0.1', port= '5432'
)
#Setting auto commit false
conn.autocommit = True
#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)
]