Mysql-Sqlalchemy-多表操作
import sqlalchemy from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
'''Column导入'''
from sqlalchemy import Column, String, Integer, DATE,ForeignKey
'''导入游标'''
from sqlalchemy.orm import sessionmaker,relationship engine =create_engine("mysql+pymysql://xiaopang:521521@192.168.50.129/oldboydb",
encoding='utf-8') #可以加echo=True显示数据
'''生成orm基类'''
Base =declarative_base() class Student(Base):
__tablename__ = 'student' # 表名
id = Column(Integer, primary_key=True)
name =Column(String(32),nullable=False)
register_date = Column(DATE, nullable=False) def __repr__(self):
return "< %s name:%s >" % (self.id,self.name) class StudyRecord(Base):
__tablename__ = "study_record"
id = Column(Integer, primary_key=True)
day =Column(Integer,nullable=False)
status = Column(String(32),nullable=False)
stu_id =Column(Integer,ForeignKey("student.id")) student = relationship("Student", backref="my_study_record") def __repr__(self):
return "< %s day:%s status:%s>" % (self.student.name,self.day,self.status)
Base.metadata.create_all(engine) # 创建表结构
Session_class=sessionmaker(bind=engine)
Session=Session_class() # 生成session实例相当于cursor游标 '''多表插入数据'''
# s1 =Student(name="goupang",register_date="2018-06-01")
# s2 =Student(name="siwanyi",register_date="2018-06-02")
# s3 =Student(name="yaosini",register_date="2018-06-03")
# s4 =Student(name="xiaopang",register_date="2018-06-04") # study_obj1=StudyRecord(day=1,status="Yes",stu_id=1)
# study_obj2=StudyRecord(day=2,status="No",stu_id=1)
# study_obj3=StudyRecord(day=3,status="Yes",stu_id=1)
# study_obj4=StudyRecord(day=1,status="Yes",stu_id=2) #Session.add_all([study_obj1,study_obj2,study_obj3,study_obj4]) '''多表查询'''
stu_obj=Session.query(Student).filter().first()
#调用my_study_record就是StudyRecord里面的所有属性(所有字段的数据)
print(stu_obj.my_study_record)
Session.commit()#提交
思路及过程:两个表互相取数据,通过ralationship关系连接,写到内存中

Mysql-Sqlalchemy-多表操作的更多相关文章
- SQLAlchemy多表操作
目录 SQLAlchemy多表操作 一对多 数据准备 具体操作 多对多 数据准备 操作 其它 SQLAlchemy多表操作 一对多 数据准备 models.py from sqlalchemy.ext ...
- MySQL之多表操作
前言:之前已经针对数据库的单表查询进行了详细的介绍:MySQL之增删改查,然而实际开发中业务逻辑较为复杂,需要对多张表进行操作,现在对多表操作进行介绍. 前提:为方便后面的操作,我们首先创建一个数据库 ...
- mysql 库与表操作
1. 库操作 1.1. 创建数据库 语法规则:create database 库名; CREATE DATABASE dt55; 在创建库时,希望指定编码语法:create database 库名 c ...
- 数据库之 MySQL --- 数据处理 之 表操作、CRUD(六)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一. 表操作 创建数据库CREATE DATABASE demo-- 删除数据库DROP DATABAS ...
- python爬取信息到数据库与mysql简单的表操作
python 爬取豆瓣top250并导入到mysql数据库中 import pymysql import requests import re url='https://movie.douban.co ...
- 学习MySQL之单表操作(二)
##单表操作 ##创建表 CREATE TABLE t_employee( empno ), ename ), job ), MGR ), Hiredate DATE DEFAULT '0000-00 ...
- Mysql之数据表操作
数据表操作: 查看当前数据库中所有的表: show tables; 查看当前使用数据库: select database(); 使用数据表: use 表名; 创建数据表: create table 数 ...
- Day13 SQLAlchemy连表操作和堡垒机
一.数据库操作 1.创建表.插入数据和一对多查询 #!/usr/bin/env python # -*- coding: utf-8 -*- # Author: wanghuafeng from sq ...
- Mysql之库表操作(胖胖老师)
SQL概念:结构化查询语言(SQL = Structured Query Language),也是一种编程语言(数据库查询和程序设计语言),可以用于数据的存取及查询,更新,管理关系型数据库系统ps: ...
- MySQL删除超大表操作
======================================================================== 问题原因 通常情况下,会使用innodb_file_p ...
随机推荐
- python 找出数组重复的元素
""" 从头扫到尾,只要当前元素值与下标不同,就做一次判断,numbers[i]与numbers[numbers[i]], 相等就认为找到了重复元素,返回true,否则就 ...
- 【8583】ISO8583各域段的说明
[ISO8583各域段的说明] 1,信息类型(message type)定义位图位置:-格式:定长类型:N4描述:数据包的第一部分,定义数据包的类型.数据类型由数据包的发起者设定,应遵循以下要求:数据 ...
- 信息学竞赛一本通提高版AC题解—例题1.1活动安排
书中代码有误.书中为sort(a+1,a+n+1,Cmp). // // Created by yuxi on 19-1-13. // /* * * <信息学竞赛一本通-提高版>全部AC解 ...
- 04 MySQL之函数
01-数学函数 数学函数主要用来处理数值数据. # 1.绝对值函数 ABS(x) 和 返回圆周率的函数 PI() ABS(x) 返回x的绝对值. 例: mysql> select ABS(2), ...
- String类的常用方法以及知识点总结
一,String的简介: 查阅API中的String类的描述,发现String 类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 一旦这个 ...
- Scala API - 泛型
- list中包含多个相同值时,List中的indexOf(Object o)方法的返回值
查一下Java API,List下的indexOf(Object o)方法的返回值为list列表中首个元素出现位置的索引,找不到时返回-1
- HBase管理与监控——强制删除表
在用phoenix创建Hbase表时,有时会提示创建失败,发现Hbase中又已创建成功, 但这些表在进行enable.disable.drop都无效,也无法删除: hbase(main)::> ...
- Java集合(6):理解Map
映射表的基本思想是维护键-值对的关联,通过键来寻找值.下面是标准Java类库中几种Map的实现: (1) HashMap:Map基于散列表的实现,插入和查询键值对的开销是固定的.可以通过构造器设置容量 ...
- new URLSearchParams( )用法说明
URLSearchParams 接口定义了一些实用的方法来处理 URL 的查询字符串. 方法:该接口不继承任何属性. URLSearchParams.append() 插入一个指定的键/值对作为新的搜 ...