Bạn sẽ tìm hiểu các thao tác MySQL SELECT sau đây từ Python bằng cách sử dụng mô-đun 'Trình kết nối MySQL'
- Thực thi truy vấn CHỌN và xử lý tập kết quả được truy vấn trả về trong Python
- Sử dụng các biến Python trong mệnh đề where của truy vấn CHỌN để chuyển các giá trị động
- Sử dụng các phương thức
Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed
9,
0 vàcursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
1 của lớp con trỏ để tìm nạp tất cả hoặc các hàng giới hạn từ một bảngcursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
Đọc thêm
- Giải bài tập Python MySQL
- Đọc Hướng dẫn Python MySQL [Hướng dẫn đầy đủ]
Mục lục
- điều kiện tiên quyết
- Các bước để tìm nạp hàng từ bảng cơ sở dữ liệu MySQL
- Sử dụng các biến Python làm tham số trong MySQL Select Query
- Chọn các hàng giới hạn từ bảng MySQL bằng cách sử dụng tìm nạp và tìm nạp
- Ví dụ để lấy ít hàng hơn từ bảng MySQL bằng cách sử dụng tìm nạp của con trỏ
- Tìm nạp một hàng từ bảng MySQL bằng tìm nạp của con trỏ
- Python Tìm nạp hàng MySQL bằng cách sử dụng tên cột
- Chọn giá trị cột MySQL thành Biến Python
- Bước tiếp theo
điều kiện tiên quyết
Trước khi di chuyển xa hơn, hãy chắc chắn rằng bạn có những điều sau đây tại chỗ. –
- Tên người dùng và mật khẩu để kết nối MySQL
- Tên bảng MySQL mà bạn muốn chọn dữ liệu
Đối với bài học này, tôi đang sử dụng bảng 'Máy tính xách tay' có trong máy chủ MySQL của tôi
Nếu một bảng không có trong máy chủ MySQL của bạn, bạn có thể tham khảo bài viết của chúng tôi để tạo một bảng MySQL từ Python
Bạn cũng có thể tải xuống tệp truy vấn SQL chứa các truy vấn SQL để tạo bảng và dữ liệu để bạn có thể sử dụng bảng này cho các thao tác INSERT của mình
Các bước để tìm nạp hàng từ bảng cơ sở dữ liệu MySQL
Thực hiện theo các bước sau. –
Cách chọn từ bảng MySQL bằng Python
- Kết nối với MySQL từ Python
Tham khảo kết nối cơ sở dữ liệu MySQL trên Python để kết nối với cơ sở dữ liệu MySQL từ Python bằng mô-đun MySQL Connector
- Xác định truy vấn CHỌN SQL
Tiếp theo, hãy chuẩn bị một truy vấn SQL SELECT để tìm nạp các hàng từ một bảng. Bạn có thể chọn tất cả hoặc các hàng giới hạn dựa trên yêu cầu của bạn. Nếu điều kiện where được sử dụng, thì nó quyết định số lượng hàng cần tìm nạp.
Ví dụ,
2. Điều này sẽ trả về hàng số 10.cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
- Nhận đối tượng con trỏ từ kết nối
Tiếp theo, sử dụng phương thức
3 để tạo đối tượng con trỏ. Phương thức này tạo một đối tượngcursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
4 mớicursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
- Thực thi truy vấn SELECT sử dụng phương thức exec[]
Thực hiện truy vấn chọn bằng phương thức
5cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
- Trích xuất tất cả các hàng từ một kết quả
Sau khi thực hiện thành công thao tác Chọn, hãy sử dụng phương thức
6 của đối tượng con trỏ để lấy tất cả các hàng từ kết quả truy vấn. nó trả về một danh sách các hàngcursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
- Lặp lại từng hàng
Lặp lại danh sách hàng bằng vòng lặp for và truy cập từng hàng riêng lẻ [Truy cập dữ liệu cột của từng hàng bằng tên cột hoặc số chỉ mục. ]
- Đóng đối tượng con trỏ và đối tượng kết nối cơ sở dữ liệu
sử dụng phương pháp
7 vàcursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
8 để đóng các kết nối mở sau khi công việc của bạn hoàn thànhcursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
Ví dụ
Trong ví dụ này, chúng tôi đang tìm nạp tất cả các hàng từ bảng Máy tính xách tay và sao chép chúng vào các biến Python để chúng tôi có thể sử dụng nó trong chương trình của mình
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
0đầu ra. –
Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed
Ghi chú. Sử dụng các phương pháp sau để tìm nạp dữ liệu được trả về bởi một
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
5
30 để lấy tất cả các hàngcursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
31 để tìm nạp một hàngcursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
32 để tìm nạp các hàng giới hạncursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
Sử dụng các biến Python làm tham số trong MySQL Select Query
Chúng ta thường cần truyền các biến cho SQL select query trong mệnh đề where để kiểm tra một số điều kiện. Giả sử ứng dụng muốn lấy giá máy tính xách tay bằng cách cung cấp bất kỳ id máy tính xách tay nào khi chạy. Để xử lý yêu cầu như vậy, chúng ta cần sử dụng truy vấn được tham số hóa
Truy vấn được tham số hóa là một truy vấn trong đó các phần giữ chỗ [_______133] được sử dụng cho các tham số và các giá trị tham số được cung cấp tại thời điểm thực hiện
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
Ví dụ
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
3đầu ra
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
9Chọn các hàng giới hạn từ bảng MySQL bằng cách sử dụng tìm nạp và tìm nạp
Trong một số trường hợp, việc tìm nạp tất cả các hàng từ một bảng là một nhiệm vụ tốn thời gian nếu một bảng chứa hàng nghìn hàng
Nếu tìm nạp tất cả các hàng, chúng tôi cần thêm dung lượng và thời gian xử lý. Vì vậy, điều cần thiết là sử dụng phương thức
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
0 của lớp con trỏ để tìm nạp ít hàng hơnCú pháp của con trỏ
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
0cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
2Các phương thức fetchmany[] của con trỏ trả về số hàng được chỉ định bởi đối số kích thước, giá trị mặc định của đối số kích thước là một. Ví dụ: nếu kích thước được chỉ định là 5, thì nó sẽ trả về năm hàng
Ghi chú. Nếu một bảng chứa một hàng nhỏ hơn kích thước đã chỉ định, thì sẽ có ít hàng hơn được trả về
Cú pháp của
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
1cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
4Phương thức này tìm nạp tập hợp các hàng tiếp theo của kết quả truy vấn và trả về một danh sách các bộ dữ liệu. Nếu không còn hàng nào nữa, nó sẽ trả về một danh sách trống
Phương thức này trả về một bản ghi hoặc Không có nếu không còn hàng nào nữa
Phương thức
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
1 được sử dụng nội bộ bởi Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed9 và
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
0 để tìm nạp các hàngVí dụ để lấy ít hàng hơn từ bảng MySQL bằng cách sử dụng tìm nạp của con trỏ
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
8đầu ra
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
9Ghi chú. Nếu bạn gặp lỗi MySQL Unread result set buffered=True trong kết nối như
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
90Tìm nạp một hàng từ bảng MySQL bằng tìm nạp của con trỏ
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
1đầu ra. –
Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed0
Python Tìm nạp hàng MySQL bằng cách sử dụng tên cột
Bạn cũng có thể truy xuất kết quả bằng tên cột thay vì id. Ví dụ, bạn muốn làm một cái gì đó như thế này
Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed1
Nếu bạn cố gắng tìm nạp dữ liệu trực tiếp bằng tên cột, bạn sẽ nhận được thông báo
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
91Để chọn các bản ghi từ bảng MySQL của tôi bằng tên cột, chúng ta chỉ cần thay đổi cách tạo con trỏ. Thay thế việc tạo con trỏ tiêu chuẩn bằng đoạn mã sau và bạn đã sẵn sàng tìm nạp các bản ghi từ bảng MySQL của tôi bằng tên cột
Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed2
Tại sao đặt
cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
92? Trong ví dụ sau, tôi đã chọn tất cả các bản ghi từ bảng MySQL của mình bằng cách sử dụng tên cột thay vì chỉ mục số nguyên của cột
Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed3
đầu ra
Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed4
Chọn giá trị cột MySQL thành Biến Python
Hãy xem cách thực thi Truy vấn SQL CHỌN sau đây và lưu trữ giá trị cột của bảng vào một biến Python để xử lý thêm
Nếu bạn thực thi đoạn mã dưới đây, bạn sẽ nhận được {u’Price’. u'7000′}
Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed5
Bạn có thể nhận được đầu ra như
Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed6
Hãy xem cách chỉ trích xuất giá trị cột [7000] và lưu nó vào một biến để thực hiện một số phép tính để bạn có thể giảm giá 10% cho giá trị đó
Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed7
đầu ra
Total number of rows in Laptop is: 7 Printing each laptop record Id = 1 Name = Lenovo ThinkPad P71 Price = 6459.0 Purchase date = 2019-08-14 Id = 2 Name = Area 51M Price = 6999.0 Purchase date = 2019-04-14 Id = 3 Name = MacBook Pro Price = 2499.0 Purchase date = 2019-06-20 Id = 4 Name = HP Pavilion Power Price = 1999.0 Purchase date = 2019-01-11 Id = 5 Name = MSI WS75 9TL-496 Price = 5799.0 Purchase date = 2019-02-27 Id = 6 Name = Microsoft Surface Price = 2330.0 Purchase date = 2019-07-23 Id = 7 Name = Acer Predator Triton Price = 2435.0 Purchase date = 2019-08-15 MySQL connection is closed8
Hãy hiểu ví dụ này
- Bạn có thể thấy trong ví dụ trên sau khi tìm nạp một hàng bằng cách sử dụng
31, chúng tôi đã chuyển đổi giá trị cột thành loại phù hợp bằng cách sử dụngcursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
94cursor.execute["SELECT Price FROM Laptop WHERE id = "ID from application"]
- Chúng tôi đã truy xuất giá trị chỉ mục thứ 0 từ tập hợp kết quả
Bước tiếp theo
Để thực hành những gì bạn đã học trong bài viết này, vui lòng giải một dự án Bài tập về cơ sở dữ liệu Python để thực hành và thành thạo các thao tác với Cơ sở dữ liệu Python