Hướng dẫn select where mysql python - chọn nơi python mysql



Câu lệnh SELECT được sử dụng để đọc các giá trị từ cơ sở dữ liệu.

Phương thức fetchall()

Python cung cấp phương thức fetchall() trả về dữ liệu được lưu trữ bên trong bảng dưới dạng các hàng. Chúng ta có thể lặp lại kết quả để có được các hàng riêng lẻ.

Ví dụ 1

import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT * FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()

Kết quả:

('The Mac', 10001, 25000.0, 101, 'Hanoi')
('Vinh', 10002, 26000.0, 101, 'Hanoi')
('Trung', 10003, 26000.0, 102, 'Danang')
('Tân', 10004, 10000.0, 101, 'Hanoi')
('Quân', 10005, 30000.0, 103, 'HCM')

Ví dụ 2: đọc cột cụ thể

import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()

Kết quả:

('The Mac', 10001, 25000.0)
('Vinh', 10002, 26000.0)
('Trung', 10003, 26000.0)
('Tân', 10004, 10000.0)
('Quân', 10005, 30000.0)



Ví dụ 2: đọc cột cụ thể

Phương thức fetchone()

Phương thức fetchone() được sử dụng để chỉ tìm nạp một hàng từ bảng. Phương thức fetchone () trả về hàng tiếp theo của tập kết quả.

import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp hàng đầu tiên từ đối tượng con trỏ  
    result = cur.fetchone()
    print(result);
    
    # tìm nạp hàng tiếp theo từ đối tượng con trỏ  
    result = cur.fetchone()
    print(result);

except:
    myconn.rollback()

myconn.close()

Kết quả:

('The Mac', 10001, 25000.0)
('Vinh', 10002, 26000.0)


Ví dụ 2: đọc cột cụ thể

Phương thức fetchone() được sử dụng để chỉ tìm nạp một hàng từ bảng. Phương thức fetchone () trả về hàng tiếp theo của tập kết quả.

import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    print("Name    ID    Salary")
    
    for row in result:
        print("%s    %d    %d"%(row[0],row[1],row[2]))

except:
    myconn.rollback()

Kết quả:

Name    ID    Salary
The Mac    10001    25000
Vinh    10002    26000
Trung    10003    26000
Tân    10004    10000
Quân    10005    30000



Để học tốt bài này, các bạn cần phải biết cách insert dữ liệu vào table trong MySQL với Python. Các bạn có thể đọc lại bài Thêm (insert) và xóa (delete) dữ liệu trong MySQL với Python để biết cách insert dữ liệu vào table trong MySQL.

Lưu ý, chúng ta đang sử dụng MySQL được tích hợp sẵn trong XAMPP. Các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách cài đặt XAMPP và khởi chạy MySQL., chúng ta đang sử dụng MySQL được tích hợp sẵn trong XAMPP. Các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách cài đặt XAMPP và khởi chạy MySQL.

Các ví dụ insert và where dữ liệu sẽ thực hiện trên table gochocit_posts trong database gochocit. Database và table này đã được tạo trong bài Tạo database và tạo table trong MySQL với Python. Các bạn cần đọc lại để xem cấu trúc của database và dữ liệu của table trên.insertwhere dữ liệu sẽ thực hiện trên table gochocit_posts trong database gochocit. Database và table này đã được tạo trong bài Tạo database và tạo table trong MySQL với Python. Các bạn cần đọc lại để xem cấu trúc của database và dữ liệu của table trên.

Hướng dẫn select where mysql python - chọn nơi python mysql

Hướng dẫn select where mysql python - chọn nơi python mysql

Câu lệnh

import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()
0 giúp lấy ra các dòng dữ liệu của table trong MySQL.
import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()
0
giúp lấy ra các dòng dữ liệu của table trong MySQL.

import mysql.connector
# create connection to MySQL
mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="",
  database = "gochocit"
)
mycursor = mydb.cursor()

sql = "SELECT * FROM gochocit_posts"
mycursor.execute(sql)
myresult = mycursor.fetchall()

print("type of myresult:", type(myresult))
for x in myresult:
  print(x)
# disconnect from MySQL
mydb.close()
Kết quả
type of myresult: 
(1, 'Vinh Lê', 'Đây là bài số 1', 'Nội dung bài số 1', datetime.datetime(2022, 3, 27, 19, 46, 5))
(2, 'Vinh Lê', 'Đây là bài số 2', 'Nội dung bài số 2', datetime.datetime(2022, 3, 27, 19, 47, 6))
(3, 'Vinh Lê', 'Đây là bài số 3', 'Nội dung bài số 3', datetime.datetime(2022, 3, 27, 19, 48, 7))
(4, 'Vinh Lê', 'Đây là bài số 4', 'Nội dung bài số 4', datetime.datetime(2022, 3, 27, 19, 49, 8))
(5, 'Vinh Lê', 'Đây là bài số 5', 'Nội dung bài số 5', datetime.datetime(2022, 3, 27, 19, 50, 9))

Hàm

import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()
1 trả về một danh sách (list) chứa tất cả các dòng dữ liệu truy vấn được.
import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()
1
trả về một danh sách (list) chứa tất cả các dòng dữ liệu truy vấn được.

Trong ví dụ trên, chúng ta sử dụng

import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()
2 để lấy ra tất cả các cột dữ liệu trong table. Tuy nhiên, chúng ta có thể chỉ định một vài cột được SELECT ra.
import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()
2
để lấy ra tất cả các cột dữ liệu trong table. Tuy nhiên, chúng ta có thể chỉ định một vài cột được SELECT ra.

('The Mac', 10001, 25000.0, 101, 'Hanoi')
('Vinh', 10002, 26000.0, 101, 'Hanoi')
('Trung', 10003, 26000.0, 102, 'Danang')
('Tân', 10004, 10000.0, 101, 'Hanoi')
('Quân', 10005, 30000.0, 103, 'HCM')
0
Kết quả
('The Mac', 10001, 25000.0, 101, 'Hanoi')
('Vinh', 10002, 26000.0, 101, 'Hanoi')
('Trung', 10003, 26000.0, 102, 'Danang')
('Tân', 10004, 10000.0, 101, 'Hanoi')
('Quân', 10005, 30000.0, 103, 'HCM')
1

Khi SELECT dữ liệu trong table thì có thể lấy ra được nhiều dòng dữ liệu. Nhưng nếu chỉ muốn lấy dòng dữ liệu đầu tiên SELECT được, chúng ta có thể dùng hàm

import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()
3 của module MySQL Connector trong Python.SELECT dữ liệu trong table thì có thể lấy ra được nhiều dòng dữ liệu. Nhưng nếu chỉ muốn lấy dòng dữ liệu đầu tiên SELECT được, chúng ta có thể dùng hàm
import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()
3
của module MySQL Connector trong Python.

('The Mac', 10001, 25000.0, 101, 'Hanoi')
('Vinh', 10002, 26000.0, 101, 'Hanoi')
('Trung', 10003, 26000.0, 102, 'Danang')
('Tân', 10004, 10000.0, 101, 'Hanoi')
('Quân', 10005, 30000.0, 103, 'HCM')
2
Kết quả
('The Mac', 10001, 25000.0, 101, 'Hanoi')
('Vinh', 10002, 26000.0, 101, 'Hanoi')
('Trung', 10003, 26000.0, 102, 'Danang')
('Tân', 10004, 10000.0, 101, 'Hanoi')
('Quân', 10005, 30000.0, 103, 'HCM')
3

2. Sử dụng mệnh đề WHERE trong MySQL với Python

Mệnh đề WHERE giúp lấy ra những dòng dữ liệu cụ thể, thỏa một điều kiện nào đó.WHERE giúp lấy ra những dòng dữ liệu cụ thể, thỏa một điều kiện nào đó.

('The Mac', 10001, 25000.0, 101, 'Hanoi')
('Vinh', 10002, 26000.0, 101, 'Hanoi')
('Trung', 10003, 26000.0, 102, 'Danang')
('Tân', 10004, 10000.0, 101, 'Hanoi')
('Quân', 10005, 30000.0, 103, 'HCM')
4
Kết quả
('The Mac', 10001, 25000.0, 101, 'Hanoi')
('Vinh', 10002, 26000.0, 101, 'Hanoi')
('Trung', 10003, 26000.0, 102, 'Danang')
('Tân', 10004, 10000.0, 101, 'Hanoi')
('Quân', 10005, 30000.0, 103, 'HCM')
5

Trong ví dụ trên, chúng ta chỉ lấy ra dòng dữ liệu nào có ID=5.ID=5.

Chúng ta có thể sử dụng

import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()
4 để đặt chổ cho giá trị cần lọc dữ liệu trong mệnh đề WHERE.
import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()

try:
    # select dữ liệu từ database
    cur.execute("SELECT name, id, salary FROM Employee")
    
    # tìm nạp các hàng từ đối tượng con trỏ  
    result = cur.fetchall()

    for x in result:
        print(x); 

except:
    myconn.rollback()

myconn.close()
4
để đặt chổ cho giá trị cần lọc dữ liệu trong mệnh đề WHERE.

('The Mac', 10001, 25000.0, 101, 'Hanoi')
('Vinh', 10002, 26000.0, 101, 'Hanoi')
('Trung', 10003, 26000.0, 102, 'Danang')
('Tân', 10004, 10000.0, 101, 'Hanoi')
('Quân', 10005, 30000.0, 103, 'HCM')
6
Kết quả
('The Mac', 10001, 25000.0, 101, 'Hanoi')
('Vinh', 10002, 26000.0, 101, 'Hanoi')
('Trung', 10003, 26000.0, 102, 'Danang')
('Tân', 10004, 10000.0, 101, 'Hanoi')
('Quân', 10005, 30000.0, 103, 'HCM')
5

Với mệnh đề WHERE, chúng ta cũng có thể chọn những dòng dữ liệu nào bắt đầu, bao gồm hoặc kết thúc bằng một chữ cái hoặc cụm từ nhất định với LIKE và % đại diện cho các ký tự.WHERE, chúng ta cũng có thể chọn những dòng dữ liệu nào bắt đầu, bao gồm hoặc kết thúc bằng một chữ cái hoặc cụm từ nhất định với LIKE% đại diện cho các ký tự.

('The Mac', 10001, 25000.0, 101, 'Hanoi')
('Vinh', 10002, 26000.0, 101, 'Hanoi')
('Trung', 10003, 26000.0, 102, 'Danang')
('Tân', 10004, 10000.0, 101, 'Hanoi')
('Quân', 10005, 30000.0, 103, 'HCM')
8
Kết quả
('The Mac', 10001, 25000.0, 101, 'Hanoi')
('Vinh', 10002, 26000.0, 101, 'Hanoi')
('Trung', 10003, 26000.0, 102, 'Danang')
('Tân', 10004, 10000.0, 101, 'Hanoi')
('Quân', 10005, 30000.0, 103, 'HCM')
9

Trong ví dụ trên, chúng ta muốn lấy ra những dòng dữ liệu nào mà post_content có bao gồm số ‘2′.post_content có bao gồm số ‘2′.

  • Các thao tác trên cấu trúc dữ liệu Dictionary trong Python
  • Hàm (function) và cách xây dựng hàm trong Python
  • Đối tượng (object) và cách sử dụng đối tượng trong Java
  • Giới thiệu môn học Lập trình Arduino cơ bản
  • Tính kế thừa (inheritance) trong Java