การใช้งาน sqlite3 ใน Python
Post id: 24 , Date 01/01/2022
Facebook: https://www.facebook.com/PyDIY
1. การติดตั้ง sqlite3 ใน python
หากคุณใช้ python version 2.5 ขึ้นมา ไม่จำเป็นต้องติดตั้ง sqlite3 เพราะมันเป็น standard package ที่แนบมาใน python อยู่แล้ว
2. การสร้างฐานข้อมูล
วิธีที่ 1 ใช้โปรแกรม DB Browser for sqlite
วิธีนี้ง่ายครับ แต่คลิกตามเมนู และทำตามขั้นตอนของโปรแกรมก็พอ เหมาะสำหรับคนที่ไม่เคยสร้างฐานข้อมูลมาก่อน เผื่ออยากเห็นว่าหน้าตาฐานข้อมูลมันเป็นอย่างไร แต่หากคุณต้องสร้างฐานข้อมูลเดิมซ้ำๆ วิธีนี้ค่อนข้างจะเสียเวลาครับ เพราะต้องให้คนคลิกที่ละขั้นตอน
วิธีที่ 2 สร้างด้วย python
import sqlite3
db_local = 'sampleDB.db'
conn = sqlite3.connect(db_local)
c = conn.cursor()
conn.commit()
conn.close()
สั้นๆ แค่นี้แหละครับ เสร็จแล้ว พอกดรันเสร็จแล้ว เราจะเห็นไฟล์ฐานข้อมูลชื่อว่า sampleDB.db โผล่ขึ้นมาในโฟลเดอร์เดียวกันกับโฟลเดอร์ของโปรแกรมที่เรารัน
- หมายเหตุ กดรันครั้งเดียวพอนะครับ ไม่งั้นฐานข้อมูลอาจถูกเขียนทับและทำให้ข้อมูลเดิมหายเกลี้ยงได้ ดังนั้นไฟล์นี้ควรสร้างแยกไว้ต่างหากจากโปรแกรมหลัก เพราะเราจะสร้างฐานข้อมูลแค่ครั้งเดียวตอนเริ่มโปรเจ็คเท่านั้นแหละครับ
3. การสร้างตาราง
import sqlite3
db_local = 'sampleDB.db'
conn = sqlite3.connect(db_local)
c = conn.cursor()
c.execute("""
CREATE TABLE forex
(id INTEGER PRIMARY KEY AUTOINCREMENT,
symbol TEXT NOT NULL UNIQUE,
timeframe TEXT NOT NULL,
recomments TEXT NOT NULL,
price TEXT NOT NULL
)
""")
conn.commit()
conn.close()
เสร็จเรียบร้อยแล้วครับ (กดรันแค่ครั้งเดียวพอนะ) ถ้าเราเปิดโปรแกรม DB Browser for sqlite แล้วเลือกเปิดฐานข้อมูล sampleDB.db เราก็จะเห็นตารางหน้าตาแบบนี้
4. การเพิ่มข้อมูลลงในตาราง
import sqlite3
db_local = 'sampleDB.db'
conn = sqlite3.connect(db_local)
c = conn.cursor()
c.execute("""
INSERT INTO forex (symbol, timeframe, recomments, price) VALUES
('EURUSD', '30m', 'BUY', 1.13847),
('GBPUSD', '4h', 'BUY', 1.35417),
('USDJPY', '1h', 'SELL', 115.058),
('AUDUSD', '1d', 'NEUTRAL', 0.72750)
""")
conn.commit()
conn.close()
5. การแสดงผลข้อมูลในตาราง
import sqlite3
db_local = 'sampleDB.db'
conn = sqlite3.connect(db_local)
c = conn.cursor()
c.execute("""
SELECT * FROM forex
""")
sym_info = c.fetchall()
for info in sym_info:
print(info)
conn.commit()
conn.close()
ส่วนการ update หรือ delete ก็ไม่ต่างกันนะครับ แค่แทรกคำสั่ง SQL ลงไปตรงส่วนนี้
c.execute("""
----SQL Syntax---
""")
ก็เรียบร้อยแล้วครับ