SQLAlchemy - Phương ngữ

SQLAlchemy sử dụng hệ thống phương ngữ để giao tiếp với nhiều loại cơ sở dữ liệu khác nhau. Mỗi cơ sở dữ liệu có một trình bao bọc DBAPI tương ứng. Tất cả các phương ngữ đều yêu cầu phải cài đặt trình điều khiển DBAPI thích hợp.

Các phương ngữ sau được bao gồm trong API SQLAlchemy -

  • Firebird
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • PostgreSQL
  • SQL
  • Sybase

Đối tượng Engine dựa trên URL được tạo bởi hàm create_engine (). Các URL này có thể bao gồm tên người dùng, mật khẩu, tên máy chủ và tên cơ sở dữ liệu. Có thể có các đối số từ khóa tùy chọn cho cấu hình bổ sung. Trong một số trường hợp, đường dẫn tệp được chấp nhận và trong những trường hợp khác, “tên nguồn dữ liệu” thay thế các phần “máy chủ lưu trữ” và “cơ sở dữ liệu”. Dạng điển hình của URL cơ sở dữ liệu như sau:

dialect+driver://username:password@host:port/database

PostgreSQL

Phương ngữ PostgreSQL sử dụng psycopg2làm DBAPI mặc định. pg8000 cũng có sẵn dưới dạng thay thế Python thuần túy như hình dưới đây:

# 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

Phương ngữ MySQL sử dụng mysql-pythonlàm DBAPI mặc định. Có nhiều MySQL DBAPI có sẵn, chẳng hạn như MySQL-connector-python như sau:

# 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

Phương ngữ Oracle sử dụng cx_oracle làm DBAPI mặc định như sau:

engine = create_engine('oracle://scott:[email protected]:1521/sidname')
engine = create_engine('oracle+cx_oracle://scott:tiger@tnsname')

Microsoft SQL Server

Phương ngữ SQL Server sử dụng pyodbclàm DBAPI mặc định. pymssql cũng có sẵn.

# pyodbc
engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')

# pymssql
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')

SQLite

SQLite kết nối với cơ sở dữ liệu dựa trên tệp, sử dụng mô-đun tích hợp sẵn trong Python sqlite3theo mặc định. Khi SQLite kết nối với các tệp cục bộ, định dạng URL hơi khác. Phần "tệp" của URL là tên tệp của cơ sở dữ liệu. Đối với đường dẫn tệp tương đối, điều này yêu cầu ba dấu gạch chéo như hình dưới đây:

engine = create_engine('sqlite:///foo.db')

Và đối với đường dẫn tệp tuyệt đối, ba dấu gạch chéo được theo sau bởi đường dẫn tuyệt đối như dưới đây:

engine = create_engine('sqlite:///C:\\path\\to\\foo.db')

Để sử dụng cơ sở dữ liệu SQLite: memory:, hãy chỉ định một URL trống như được cung cấp bên dưới -

engine = create_engine('sqlite://')

Phần kết luận

Trong phần đầu tiên của hướng dẫn này, chúng ta đã học cách sử dụng Ngôn ngữ biểu thức để thực thi các câu lệnh SQL. Ngôn ngữ biểu thức nhúng các cấu trúc SQL trong mã Python. Trong phần thứ hai, chúng ta đã thảo luận về khả năng ánh xạ quan hệ đối tượng của SQLAlchemy. API ORM ánh xạ các bảng SQL với các lớp Python.