sqlalchemy in查询优化_SQLAlchemy(3)

目录

`SQLAlchemy`

  1.简介

  2.什么是`ORM`

  3.开启`MySQL`的查询日志

  4.`SQLAlchemy`与数据库的逻辑对应

  5.连接数据库

  6.创建会话`Session`

  7.创建映射(`Model`)

    1.`Column`的数据类型

    2.`Column`列级别约束

    3.表级别约束

  8.单表操作

    1.表的操作-增(`insert into`)

    2.表的操作-删(`delete`)

    3.表的操作-改(`update`)

    4.表的操作-查(`select`) 

      1.基本查询

      2.查询时的`where`子句

      3.查询返回的列表(多个实例)以及标量(一个实例)

      4.聚合查询

  9.事务回滚

  10.外键约束

  11.基本关系模式

     1.一对多

        2.一对多双向关系

        3.一对一关系

       4.多对多关系-中间表无意义

       5.多对多关系-中间表有意义

  12.双向关系中数据的查询和添加

  13.`cascade`级联

      1.一对多模式中`relationship`的影响

      2.`relationship`中`cascade`参数设置

  14.`relationship`中使用`order_by`排序

dbd6e441ad71351554df2784dd8c9ece.png

34195d94edd0817b7c7a620101c6e83e.png

8.单表操作

首先,我们先连接到数据库中.(为了操作方便,使用jupiter-notebook).

  1. 在创建之前,还是确认一下要连接的数据库中文件.

 use sql_learn;show tables like 'u%';
  1. 创建连接

 from sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,String# 1.创建engineengine = create_engine('mysql+pymysql://root:[email protected]:3306/sql_learn')# 2.创建SessionSession = sessionmaker(bind=engine)# 3.实例化Sessionsession = Session()# 4.创建Model# 创建基类Base = declarative_base()# 创建映射class User(Base):    __tablename__ = 'users'        id = Column(Integer, nullable=False, primary_key = True)    name = Column(String(45))    fullname = Column(String(45))    password = Column(String(45))        def __repr__(self):        """非必须,说明"""        return '.format(self.name, self.fullname, self.password)

971c0d5b65e2250cb58886df49c2dfb9.png

以下是利用session对象的query 去增删改查数据库中的表.

1.表的操作-增(insert into)

在前面的文章中介绍过mysql中表的操作(http://22j.co/cndH).

现在学习使用python操作mysql数据库.

mysql 数据库中增加数据使用insert into 语句,对应到sqlalchemy  中,它使用的是session 的方法.

我们先来创建表:

 Base.metadata.create_all(engine)

mysql中查看:

 mysql [email protected]:sql_learn> show tables like 'u%';                                                                                                                                                         +--------------------------+| Tables_in_sql_learn (u%) |+--------------------------+| users                    |+--------------------------+mysql [email protected]:sql_learn> desc users;                                                                                                                                                       
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值