138.python内置模块sqlalchemy进行sql操作详解

文章目录

本文只针对于sqlalchemy连接mysql

sqlalchemy官方

安装

复制代码
pip3 install sqlalchemy

使用

参数解释

  1. 创建一个引擎,目的是连接到我们的数据库上
    root: mysql 用户名
    password: 密码
    host: 主机ip
    dataBaseName: 数据库名字

    create_engine('mysql+pymysql://root:password@host:3306/dataBaseName',echo=True)

  2. 打开数据库的连接会话

    session = sessionmaker(engine)

  3. 保证线程安全

    db_session = scoped_session(session)

  4. 获取基类

    Base = declarative_base()

详解demo

我的user

连接我的数据库

复制代码
import hashlib
import json
from sqlalchemy import create_engine, Column, Integer, String, Table, func
from sqlalchemy.orm import sessionmaker, scoped_session, declarative_base
from sqlalchemy import or_
from sqlalchemy.sql.elements import and_

# 创建一个引擎,目的是连接到我们的数据库上
engine = create_engine('mysql+pymysql://root:lh334421@127.0.0.1:3306/myDataBase',echo=True)
# 打开数据库的连接会话
session = sessionmaker(engine)
# 保证线程安全
db_session = scoped_session(session)
# 获取基类
Base = declarative_base()

表链接

复制代码
class User(Base):
    __table__ = Table("user",Base.metadata,autoload_with=engine)
查询
  1. 查询所有

    result01 = db_session.query(User).all()
    print(result01)

  2. 查询判断( < > = or and like limit sum )

    result = db_session.query(User).filter(User.user_id < 10).all()

    result = db_session.query(User).filter(User.user_id > 10).all()

    result = db_session.query(User).filter(User.user_id > 10).limit(10).all()

    result = db_session.query(User).filter(User.user_id > 10).limit(10).offset(2).all()

    result = db_session.query(User).filter(or_(User.user_id == 1, User.user_id == 2)).all()

    result = db_session.query(User).filter(and(User.user_id == 1, User.username == '1@qq.com')).all()

    result = db_session.query(func.sum(User.user_id)).all()

    result = db_session.query(User).order_by(User.user_id.desc()).all()

    result = db_session.query(User).order_by(User.username.like("%@qq.com")).all()

删除
复制代码
result = db_session.query(User).filter(User.user_id == 1).delete()
增加
复制代码
params = {
   "username": '"张三",
   "nickname": "zs",
   "password": 123,
   "picture": "1.png",
}
user = User(**params)
db_session.add(user)
db_session.commit()
相关推荐
古月居GYH2 小时前
【数据分析】如何在PyCharm中高效配置和使用SQL
ide·sql·pycharm
计算机毕设定制辅导-无忧学长6 小时前
西门子 PLC 与 Modbus 集成:S7-1500 RTU/TCP 配置指南(一)
服务器·数据库·tcp/ip
程序员柳7 小时前
基于微信小程序的校园二手交易平台、微信小程序校园二手商城源代码+数据库+使用说明,layui+微信小程序+Spring Boot
数据库·微信小程序·layui
梦在深巷、7 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
IT乌鸦坐飞机7 小时前
ansible部署数据库服务随机启动并创建用户和设置用户有完全权限
数据库·ansible·centos7
IT_10247 小时前
Spring Boot项目开发实战销售管理系统——数据库设计!
java·开发语言·数据库·spring boot·后端·oracle
祁思妙想8 小时前
八股学习(三)---MySQL
数据库·学习·mysql
惊骇世俗王某人9 小时前
1.MySQL之如何定位慢查询
数据库·mysql
程序员张39 小时前
SQL分析与打印-p6spy组件
spring boot·sql·mybatis·mybatisplus·p6spy
秦歌6669 小时前
向量数据库-Milvus快速入门
数据库·milvus