【SQLAlchemy】第3节:常用的字段及其约束
1 导包
from sqlalchemy import create_engine
from sqlalchemy. ext. declarative import declarative_base
from sqlalchemy import Column, Integer, SmallInteger, BigInteger, Float, Numeric, String, Text, Date, DateTime, Time, TIMESTAMP, Boolean, Unicode, UnicodeText, LargeBinary
2 常用的字段类型
关键字
对应SQL中的类型
Integer
int
SmallInteger
smallint
BigInteger
bigint
Float(m,d)
float(m,d)
DECIMAL(m,d)或Numeric(m,d)
decimal(m,d)
String(n)
varchar(n)
Text
text
Datetime
datetime
Date
date
Time
time
TIMESTAMP
timestamp
Boolean
boolean
Unicode
可变长度的Unicode字符串
UnicodeText
可变长度字符串,用于存储较长的字符串
LargeBinary
二进制文件
3 常用约束
关键字
说明
primary_key
主键
autoincrement
自增
nullable
是否可以为Null,默认nullable=True
unique
唯一,默认unique=False
default
默认值,支持字段引用
index
是否建立索引
4 例子
from sqlalchemy import create_engine
from sqlalchemy. ext. declarative import declarative_base
from sqlalchemy import Column, String, Integer, SmallInteger, DateTime, Date, Numeric
import datetime
engine = create_engine(
'mysql+pymysql://root:12345@localhost:3306/db_sqlalchemy_notebook' ,
echo= False
)
Base = declarative_base( )
class User ( Base) :
__tablename__ = 'user'
id = Column( Integer, primary_key= True )
account = Column( String( 16 ) , nullable= False )
name = Column( String( 100 ) , nullable= False , default= account)
password = Column( String( 32 ) , nullable= False )
money = Column( Numeric( 10 , 2 ) , default= 0 , nullable= False )
imgpath = Column( String( 100 ) )
gender = Column( SmallInteger, default= 0 , nullable= False )
age = Column( SmallInteger)
email = Column( String( 100 ) )
qq = Column( String( 16 ) )
tel = Column( String( 11 ) )
createDatetime = Column( DateTime, default= datetime. datetime. now( ) , nullable= False )
updateDatetime = Column( DateTime, default= datetime. datetime. now( ) , nullable= False )