SQLAlchemy Table(表)类方式 - Table类和Column类

Table 构造方法

1 Table(name, metadata[, *column_list][, **kwargs])

参数说明:
  • name 表名
  • metadata 元数据对象
  • column_list 是列(Column或其他继承自SchemaItem的对象)列表
  • kwargs主要内容:
    • schema: (None)表的模式(一般默认是数据库名, 无需特别指定; Oracle中是owner, 当一个数据库由多个用户管理时,用户的默认数据库不是要连接的数据库时,需要指定此项)
    • autoload: (False)是否自动加载
    • autoload_replace: (True)是否自动用元数据中加载的列替换column_list中已经存在了的同名列
      • True时自动将column_list中已经存在了的列替换为从元数据中加载的同名列
      • False时会忽略元数据有,且column_list中已经存在了的列
    • autoload_with: 自动加载的引擎(Engine)或连接(Connection)对象
      • None

        • autoloadTrue时, 会从传递的metadata中寻找引擎或连接对象
      • 不为None
        • autoload不为True时, autoload会自动被修改为True
    • comment: 注释
    • extend_existing: (False)当表已经存在于元数据中时,如果元数据中存在与column_list中的列同名的列,column_list中同名的列会替换掉元数据中已经有的列
    • keep_existing: (False)当表已经存在于元数据中时,如果元数据中存在与column_list中的列同名的列,column_list中同名的列会被忽略
    • include_columns:(None)从元数据中只需加载的表的列名列表
    • mustexist: (False)表名是否一定需要存在于元数据中(不存在时引发异常)
常用SchemaItem子类:
  • PrimaryKeyConstraint
  • ForeignKeyConstraint
注意,在使用不同版本的SQLAlchemy时,以上参数中:
  • 老版本中可能部分参数还没有
  • 新版本中可能废弃了部分参数
  • keep_existingextend_existing互相排斥,不能同时传递为True
  • keep_existingextend_existing适用于新建表对象;如果要创建新的表,表明已经存在于meta.tables中时,需要指明任意一个参数,不然会报错。
  • useexisting已被废弃, 新版本使用extend_existing

Column的构造方法

Column([name, ]type_[, **kwargs])
参数说明:
  • name 字段名
  • type_ 字段数据类型,这里的数据类型包括:
    • SQLAlchemy中常用数据类型:

      • 整数: SmallIntegerIntegerBigInteger
      • 浮点数: FloatNumeric
      • 文本字符串: StringTextUnicodeUnicodeTextCHARVARCHAR
      • 二进制字符串: LargeBinaryBINARYVARBINARY
      • 日期时间: DateDateTimeTIMESTAMP
    • Constraint: 约束
    • ForeignKey: 外键
    • ColumnDefault: 列默认值
  • kwargs主要内容:
    • autoincrement: (False)是否是主键
    • default: (None)默认值
    • index: (None)索引
    • nullable: (True)是否可以为空(NULL)
    • primary_key: (False)是否是主键
    • server_default: (None)服务端(数据库中的函数)默认值
    • unique: (False)是否唯一
    • comment: (None)列注释

原文地址:https://www.cnblogs.com/srd945/p/9851227.html

时间: 2024-10-10 08:03:22

SQLAlchemy Table(表)类方式 - Table类和Column类的相关文章

转:Sql Server中的表访问方式Table Scan, Index Scan, Index Seek

0.参考文献 Table Scan, Index Scan, Index Seek SQL SERVER – Index Seek vs. Index Scan – Diffefence and Usage – A Simple Note oracle表访问方式 Index Seek和Index Scan的区别以及适用情况 1.oracle中的表访问方式 在oracle中有表访问方式的说法,访问表中的数据主要通过三种方式进行访问: 全表扫描(full table scan),直接访问数据页,查找

验证堆表(heap table)存储方式

验证堆表(heap table)存储方式 堆表(heap table)的存储方式: Oralce 数据库系统中最普通,最为常用的即为堆表.     堆表的数据存储方式为无序存储,也就是任意的DML操作都可能使得当前数据块存在可用的空闲空间.     处于节省空间的考虑,块上的可用空闲空间会被新插入的行填充,而不是按顺序填充到最后被使用的块上.     上述的操作方式导致了数据的无序性的产生.     当创建索引时,会根据指定的列按顺序来填充到索引块,缺省的情况下为升序.     新建或重建索引时

哈希表(hash table)基础概念

哈希是什么 引入:我们在学习数组的时候,使用数组元素的下标值即可访问到该元素,所花费的时间是O(1),与数组元素的个数n没有关系,这就是哈希方法的核心思想. 哈希方法:以关键值K为自变量,通过一定的函数关系h(K)(哈希函数)计算出对应的函数值,把这个值解释为结点的存储地址,将结点的关键码(key)和属性数据(value)一起存入此存储单元中.检索时,用同样的函数计算出地址,找到对应的数据. 哈希表:按哈希存储方式构造的存储结构称为哈希表(hash table) 举例:已知线性表关键码值集合为S

架构模式逻辑层模式之:表模块(Table Model)

表模块和领域模型比,有两个显著区别: 1:表模块中的类和数据库表基本一一对应,而领域模型则无此要求: 2:表模块中的类的对象处理表中的所有记录,而领域模型的一个对象代表表中的一行记录: 一般情况下,我们可以基于第二点来严格区分你的设计是表模块的,还是领域模型的.如:如果我们有许多订单,则领域模型的每一个订单都有一个对象,而表模块只有一个对象来处理所有订单(注意,这里的类,都是指业务逻辑层的类,而不是实体类.表模块的类的对象和常规的领域模型的对象很类似,但是关键区别是:它没有标识符来标出它所代表的

闪回之闪回表(flashback table)

背景知识 设置闪回数据库参数设置数据库闪回的三个参数:db_recovery_file_dest_size  闪回恢复区大小db_recovery_file_dest  闪回恢复区路径,该参数可以任意指定,闪回日志记录了数据库的前影像,该日志不会进行归档,一但停用数据库的闪回功能,该目录下的日志会自动清除db_flashback_retention_target  保留恢复最近多长时间的数据,单位为分钟.SQL> alter system set db_recovery_file_dest_si

Lua的Table表使用例子(便于使用查询)

一.table.insert() 1.1 1 local countries = {"China", "England", "Brazil"} 2 --尾插法(Pos不填,默认插入尾部) 3 table.insert(countries, "France") 4 --头插法(首部插入) 5 table.insert(countries, 1, "Australia") 6 7 dump(countries)

lua基础【三】唯一数据结构table表

--[[ 数据结构table对象(一种动态分配的对象) lua中的表操作,table类型实现了"关联数组的"."关联数组是一种具有特殊索引方式的数组" 可以通过下标或者字符串来索引它,table没有固定的大小,table是Lua仅有的数据结构, 既然这么说,就表明table的意义很重大,也极为重要 我们可以用table表示普通数组,字符表,集合记录,队列,也可以通过table 表示,模块(module),包(package),对象object table的创建是通过

UE4中使用数据表(Data Table)

本文依据官方文档数据驱动游戏性元素整理而来. 做过游戏的应该都清楚,如果游戏稍微有点规模,那么使用数据驱动来做游戏一般是必不可少的一步,一般也就是策划通过本表的方式来解决.下面我们来简单说一下UE4中如何使用DataTable来实现数据驱动开发. 顾名思义,数据表就是以有意义且有用的方式将各种相关的数据归类的表格, 其中,数据字段可以是任何有效的 UObject 属性,包括资产引用.在设计师将 CSV 文件导入数据表前,程序员必须创建行容器以指示引擎如何解释数据. 这些数据表包含了列名,这些列名

mysql复制表结构create table as和like的区别

对于MySQL的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢? create table t2 as select * from t1 where 1=2;或者 limit 0; as创建出来的t2表(新表)缺少t1表(源表)的索引信息,只有表结构相同,没有索引. create table t2 like t1 ; like 创建出来的新表包含源表的完整表结构和索引信息. 二者的用途:as用来创建相同表结构并复制源表数据.like