Python — MySQL 101
พื้นฐานการใช้งาน MySQL ร่วมกับภาษา Python

เครื่องมือในการพัฒนา
Python v3.6.5 => https://www.python.org/downloads/
XAMPP v7.2.6=> https://www.apachefriends.org/download.html
เริ่มต้นการใช้งาน
- กด Start Apache และ MySQL ใน XAMPP

2. กด Admin จาก MySQL เพื่อเข้าสู่ฐานข้อมูล phpMyAdmin

จะพบฐานข้อมูลแบบนี้

3. สร้าง Databases
Databases name : order_dbType : utf8_general_ci

จะได ้Databases ดังนี้

4. ติดตั้ง PyMySQL ใน Python
pip install PyMySQL

การเชื่อมต่อฐานข้อมูล
import pymysql
db = pymysql.connect("localhost", "root","","order_db",
use_unicode=True,charset="utf8")
cursor = db.cursor()cursor.execute("SELECT VERSION()")
ver = cursor.fetchone()
print("Database version : %s " % ver)
db.close()
ผลลัพธ์

การสร้างตารางข้อมูล
import pymysql
db = pymysql.connect("localhost", "root","", "order_db",
use_unicode=True,charset="utf8")
cursor = db.cursor()
cursor.execute('''CREATE TABLE custdetail(custID int(2) UNSIGNED NOT NULL AUTO_INCREMENT,
name varchar(50) DEFAULT NULL, address varchar(200) DEFAULT NULL,
tel varchar(20) DEFAULT NULL, primary key(custID))''')
db.close()
ผลลัพธ์สามารถดูได้จาก
order_db > Structure > custdetail > Structure

การแทรกข้อมูลลงในตาราง
import pymysql
db = pymysql.connect( "localhost", "root", "", "order_db",
use_unicode=True, charset="utf8")
cursor = db.cursor()
sql = '''INSERT INTO custdetail(name, address, tel)
VALUES ("โครงการบัณฑิตศึกษา", "18/18 ถ.บางนา-ตราด กม.18 บางพลี สมุทรปราการ","0-2337-0361")'''
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
db.close()
ผลลัพธ์สามารถดูได้จาก
order_db > Structure > custdetail > Browse

การเรียกดูข้อมูล
import pymysql
db = pymysql.connect( "localhost", "root", "", "order_db",
use_unicode=True, charset="utf8")
cursor = db.cursor()
sql = "SELECT name, tel FROM custdetail WHERE custID"
try:
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
name = row[0]
tel = row[1]
print(row[0],'\t\t\t', row[1])
#print ("Customer : %s,Tel. : %s" % name, tel)
except:
print ("Error: unable to fetch data")
db.close()
ผลลัพธ์

การอัพเดตข้อมูล
import pymysql
db = pymysql.connect( "localhost", "root", "", "order_db",
use_unicode=True, charset="utf8")
cursor = db.cursor()
sql = "UPDATE custdetail SET name = 'เส้งโห โลตัสพัทลุง', address='115 ม.2 ต.เขาเจียก อ.เมือง \
จ.พัทลุง 93000', tel = '074-620033' WHERE custID = 1"
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()sql = "SELECT * FROM custdetail WHERE custID = 1"
cursor.execute(sql)
row = cursor.fetchone()
print(row[0],'\t', row[1],'\t', row[2],'\t', row[3])
db.close()
ผลลัพธ์

การลบข้อมูล
import pymysql
db = pymysql.connect( "localhost", "root", "", "order_db",
use_unicode=True, charset="utf8")
cursor = db.cursor()
def show():
sql = "SELECT * FROM custdetail WHERE custID"
cursor.execute(sql)
results = cursor.fetchall()
for rows in results:
print(rows[0],'\t', rows[1],'\t', rows[2],'\t', rows[3])show()
sql = "DELETE FROM custdetail WHERE custID"
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
print('\n\n After delete data')
show()
db.close()
ผลลัพธ์


การลบตารางข้อมูล
import pymysql
db = pymysql.connect( "localhost", "root", "", "order_db",
use_unicode=True, charset="utf8")
cursor = db.cursor()
sql = "DROP TABLE custdetail"
cursor.execute(sql)
db.close()
ผลลัพธ์ Table custdetail จะหายไป

……………………………………………………………………………………….

……………………………………………………………………………………….