SQLAlchemy - ภาษาถิ่น
SQLAlchemy ใช้ระบบภาษาถิ่นเพื่อสื่อสารกับฐานข้อมูลประเภทต่างๆ แต่ละฐานข้อมูลมีตัวห่อ DBAPI ที่สอดคล้องกัน ภาษาถิ่นทั้งหมดต้องการให้ติดตั้งไดรเวอร์ DBAPI ที่เหมาะสม
ภาษาถิ่นต่อไปนี้รวมอยู่ใน SQLAlchemy API -
- Firebird
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- SQL
- Sybase
อ็อบเจ็กต์ Engine ตาม URL ถูกสร้างขึ้นโดยฟังก์ชัน create_engine () URL เหล่านี้อาจรวมถึงชื่อผู้ใช้รหัสผ่านชื่อโฮสต์และชื่อฐานข้อมูล อาจมีอาร์กิวเมนต์คำหลักที่เป็นทางเลือกสำหรับการกำหนดค่าเพิ่มเติม ในบางกรณีเส้นทางของไฟล์ได้รับการยอมรับและในบางกรณี "ชื่อแหล่งข้อมูล" จะแทนที่ส่วนของ "โฮสต์" และ "ฐานข้อมูล" รูปแบบทั่วไปของ URL ฐานข้อมูลมีดังนี้ -
dialect+driver://username:password@host:port/database
PostgreSQL
ภาษา PostgreSQL ใช้ psycopg2เป็น DBAPI เริ่มต้น นอกจากนี้ pg8000 ยังสามารถใช้แทน Pure-Python ได้ดังที่แสดงด้านล่าง:
# default
engine = create_engine('postgresql://scott:tiger@localhost/mydatabase')
# psycopg2
engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')
# pg8000
engine = create_engine('postgresql+pg8000://scott:tiger@localhost/mydatabase')
MySQL
ภาษา MySQL ใช้ mysql-pythonเป็น DBAPI เริ่มต้น มี MySQL DBAPI มากมายเช่น MySQL-connector-python ดังนี้ -
# default
engine = create_engine('mysql://scott:tiger@localhost/foo')
# mysql-python
engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')
# MySQL-connector-python
engine = create_engine('mysql+mysqlconnector://scott:tiger@localhost/foo')
Oracle
ภาษา Oracle ใช้ cx_oracle เป็น DBAPI ดีฟอลต์ดังนี้ -
engine = create_engine('oracle://scott:[email protected]:1521/sidname')
engine = create_engine('oracle+cx_oracle://scott:tiger@tnsname')
Microsoft SQL Server
ภาษา SQL Server ใช้ pyodbcเป็น DBAPI เริ่มต้น pymssql ก็มี
# pyodbc
engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')
# pymssql
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')
SQLite
SQLite เชื่อมต่อกับฐานข้อมูลแบบไฟล์โดยใช้โมดูลในตัว Python sqlite3โดยค่าเริ่มต้น. เนื่องจาก SQLite เชื่อมต่อกับไฟล์ในเครื่องรูปแบบ URL จึงแตกต่างกันเล็กน้อย ส่วน "ไฟล์" ของ URL คือชื่อไฟล์ของฐานข้อมูล สำหรับเส้นทางไฟล์สัมพัทธ์ต้องใช้เครื่องหมายทับสามตัวดังที่แสดงด้านล่าง -
engine = create_engine('sqlite:///foo.db')
และสำหรับเส้นทางไฟล์สัมบูรณ์เครื่องหมายทับสามตัวจะตามด้วยพา ธ สัมบูรณ์ดังที่ระบุด้านล่าง -
engine = create_engine('sqlite:///C:\\path\\to\\foo.db')
ในการใช้ฐานข้อมูล SQLite: memory: ระบุ URL ว่างตามที่ระบุด้านล่าง -
engine = create_engine('sqlite://')
สรุป
ในส่วนแรกของบทช่วยสอนนี้เราได้เรียนรู้วิธีใช้ Expression Language เพื่อดำเนินการคำสั่ง SQL ภาษานิพจน์ฝังโครงสร้าง SQL ในโค้ด Python ในส่วนที่สองเราได้กล่าวถึงความสามารถในการทำแผนที่ความสัมพันธ์ของวัตถุของ SQLAlchemy ORM API แมปตาราง SQL กับคลาส Python