SQLAlchemy常用数据类型

本文介绍了SQLAlchemy中常用的数据类型,如整型、浮点型、双精度浮点型、字符串、布尔型、定点类型、枚举类型以及日期/时间类型。还展示了如何在数据库中映射这些类型,并通过示例代码创建了一个包含这些类型的新闻表。
摘要由CSDN通过智能技术生成
Integer :整形,映射到数据库中是 int 类型。
Float :浮点类型,映射到数据库中是 float 类型。他占据的 32 位。
Double :双精度浮点类型,映射到数据库中是 double 类型,占 据64 (SQLALCHEMY 中没有 )
String :可变字符类型,映射到数据库中是 varchar 类型 .
Boolean :布尔类型,映射到数据库中的是 tinyint 类型。
DECIMAL :定点类型。是专门为了解决浮点类型精度丢失的问 题的。在存储钱相关的字段的时候建议大家都使用这个数据类型。
Enum :枚举类型。指定某个字段只能是枚举中指定的几个值, 不能为其他值。
Date :存储时间,只能存储年月日。映射到数据库中是 date 类 型。
DateTime :存储时间,可以存储年月日时分秒毫秒等。映射到 数据库中也是datetime 类型。
Time :存储时间,可以存储时分秒。映射到数据库中也是 time 类型。
Text :存储长字符串。一般可以存储 6W 多个字符。如果超出了 这个范围,可以使用LONGTEXT 类型。映射到数据库中就是 text类型。
LONGTEXT :长文本类型,映射到数据库中是 longtext 类型。

 代码实现

# SQLAlchemy常见的数据类型
from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base,sessionmaker

from sqlalchemy import Column,Integer,Float,DECIMAL,String,Boolean,Enum,Date,DateTime,Time,Text
import enum
# 数据库的变量
HOST = '127.0.0.1'
PORT = 3306
DATA_BASE = 'itbz'
USER = 'root'
PWD = '123456'
DB_URL = f'mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}'

# 创建引擎
engine = create_engine(DB_URL)
# 创建一个基类
Base = declarative_base()
Session = sessionmaker(engine)

class TagEnum(enum.Enum):
    python ='python'
    flask = 'Flask'
    mysql = 'Mysql'

class News(Base):
    __tablename__='t_news'
    id = Column(Integer,primary_key=True,autoincrement=True)
    # 可能会精度丢失
    price1 = Column(Float)
    price2 = Column(DECIMAL)
    is_delete = Column(Boolean)
    tag1 = Column(Enum('Python','Flask','Mysql'))
    tag2 = Column(Enum(TagEnum))
    create_time = Column(Date)
    update_time = Column(DateTime)
    delete_time = Column(Time)
    content = Column(Text)

if __name__ == '__main__':
    Base.metadata.create_all(engine)

添加表执行成功

添加数据

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy的Column定义中常用的属性有: 1. type:指定列的数据类型常用数据类型有String、Integer、Boolean、DateTime等。例如: ```python from sqlalchemy import Column, String class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) ``` 2. primary_key:指定列是否为主键。例如: ```python from sqlalchemy import Column, Integer, String class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) ``` 3. unique:指定列的值是否唯一。例如: ```python from sqlalchemy import Column, Integer, String class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50), unique=True) ``` 4. nullable:指定列是否可以为NULL。例如: ```python from sqlalchemy import Column, Integer, String class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50), nullable=False) ``` 5. default:指定列的默认值。例如: ```python from sqlalchemy import Column, Integer, String, DateTime, func class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50), nullable=False) created_at = Column(DateTime, default=func.now()) ``` 6. index:指定列是否创建索引。例如: ```python from sqlalchemy import Column, Integer, String, Index class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) email = Column(String(50), unique=True, index=True) idx_name_email = Index('idx_name_email', name, email) ``` 7. server_default:指定数据库端默认值。例如: ```python from sqlalchemy import Column, Integer, String class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) status = Column(Integer, server_default='0') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值