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