Devdit
 

Python ดึงข้อมูลจาก MySQL

5.3K

บทความนี้สอนเขียนโปรแกรมภาษา Python เพื่อดึงข้อมูลจาก MySQL ด้วย Connector ของ MySQL และใช้คำสั่ง SELECT * FROM ของภาษา SQL โดยมีขั้นตอนดังนี้

 

1. สร้างฐานข้อมูลชื่อ db_example และรันคำสั่ง SQL ด้านล่าง

CREATE TABLE book (
id int(11) NOT NULL AUTO_INCREMENT,
title char(255) NOT NULL,
price int(11) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO book (id, title, price) VALUES
(NULL, 'Python', 199),
(NULL, 'PHP', 180),
(NULL, 'Java', 200)

 

2. เขียนโค้ด Python เพื่อเชื่อมต่อฐานข้อมูล

import mysql.connector

cnx = mysql.connector.connect(user='root', password='', host='127.0.0.1', database='db_example')
cnx.close()

 

3. เขียนโค้ดเพื่อดึงข้อมูลจาก MySQL

cur = cnx.cursor()
cur.execute("SELECT * FROM book")

records = cur.fetchall()
for row in records:
    print(row[0])
    print(row[1])
    print(row[2])
    print("\n")
    
cnx.close()

คำอธิบาย

1. คำสั่ง SELECT * FROM book ของ SQL เพื่อดึงข้อมูลจากตาราง book

2. ประมวลผลคำสั่ง SQL ด้วยคำสั่ง execute ของภาษา Python

3. ใช้คำสั่ง fetchall เพื่อดึงข้อมูลทั้งหมดมาเก็บไว้ที่ตัวแปร records

4. ใช้คำสั่ง for loop เพื่อวนลูปข้อมูลทั้งหมดในตัวแปร records มาเก็บไว้ในตัวแปร row แบบที่ละแถว และแสดงผลออกสู่หน้าจอด้วยคำสั่ง print 

5. ส่วน row[0] คือ Column แรกในตารางข้อมูล เรียงไปเรื่อยๆ เช่น 0 = id, 1 = title และ 2 = price

 

ตัวอย่าง โปรแกรมแบบเต็ม

import mysql.connector

cnx = mysql.connector.connect(user='root', password='', host='127.0.0.1', database='db_example')

cur = cnx.cursor()
cur.execute("SELECT * FROM book")

records = cur.fetchall()
for row in records:
    print(row[0])
    print(row[1])
    print(row[2])
    print("\n")

cnx.close()
แก้ไข 3 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ