SQLAlchemy Core-테이블 생성

이제 테이블 생성 기능을 사용하는 방법에 대해 설명하겠습니다.

SQL 표현식 언어는 테이블 열에 대해 표현식을 구성합니다. SQLAlchemy Column 개체는column 차례로 표시되는 데이터베이스 테이블에서 Tableobject. 메타 데이터에는 인덱스, 뷰, 트리거 등과 같은 테이블 및 관련 개체의 정의가 포함됩니다.

따라서 SQLAlchemy Metadata의 MetaData 클래스 개체는 Table 개체 및 관련 스키마 구성의 모음입니다. 여기에는 Engine 또는 Connection에 대한 선택적 바인딩뿐만 아니라 Table 개체 컬렉션이 있습니다.

from sqlalchemy import MetaData
meta = MetaData()

MetaData 클래스의 생성자는 기본적으로 바인딩 및 스키마 매개 변수를 가질 수 있습니다. None.

다음으로, 위의 메타 데이터 카탈로그 내에서 테이블을 모두 정의합니다. the Table construct, 일반 SQL CREATE TABLE 문과 유사합니다.

Table 클래스의 객체는 데이터베이스의 해당 테이블을 나타냅니다. 생성자는 다음 매개 변수를 사용합니다.

이름 테이블 이름
메타 데이터 이 테이블을 보유 할 MetaData 객체
열 클래스의 하나 이상의 개체

열 개체는 column 안에 database table. 생성자는 이름, 유형 및 primary_key, autoincrement 및 기타 제약과 같은 기타 매개 변수를 사용합니다.

SQLAlchemy는 Python 데이터를 여기에 정의 된 최상의 일반 열 데이터 형식과 일치시킵니다. 일반 데이터 유형 중 일부는-

  • BigInteger
  • Boolean
  • Date
  • DateTime
  • Float
  • Integer
  • Numeric
  • SmallInteger
  • String
  • Text
  • Time

만들려면 students table 대학 데이터베이스에서 다음 스 니펫을 사용하십시오-

from sqlalchemy import Table, Column, Integer, String, MetaData
meta = MetaData()

students = Table(
   'students', meta, 
   Column('id', Integer, primary_key = True), 
   Column('name', String), 
   Column('lastname', String), 
)

create_all () 함수는 엔진 개체를 사용하여 정의 된 모든 테이블 개체를 만들고 메타 데이터에 정보를 저장합니다.

meta.create_all(engine)

student 테이블이있는 SQLite 데이터베이스 college.db를 만드는 완전한 코드가 아래에 제공됩니다.

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///college.db', echo = True)
meta = MetaData()

students = Table(
   'students', meta, 
   Column('id', Integer, primary_key = True), 
   Column('name', String), 
   Column('lastname', String),
)
meta.create_all(engine)

create_engine () 함수의 echo 속성이 True, 콘솔은 다음과 같이 테이블 생성을위한 실제 SQL 쿼리를 표시합니다.

CREATE TABLE students (
   id INTEGER NOT NULL,
   name VARCHAR,
   lastname VARCHAR,
   PRIMARY KEY (id)
)

college.db는 현재 작업 디렉토리에 생성됩니다. 학생 테이블이 생성되었는지 확인하려면 다음과 같은 SQLite GUI 도구를 사용하여 데이터베이스를 열 수 있습니다.SQLiteStudio.

아래 이미지는 데이터베이스에 생성 된 학생 테이블을 보여줍니다-