一、Mysql命令总结

1.创建库

create database test1;

2.授权一个用户

grant all privileges on *.* to 'feng'@'%' identified by '1qaz@WSX';

3.创建表

create table Teacher(teaId int not null, teaname varchar(100), age int, sex enum('M', 'F'), phone int);

4.查询

select * from tabel_name where 条件1 and  条件2

5.增加

insert into table_name (id, name, age, sex, grander) values (1, 'feng', 30, 'M', 99), (2, 'ajing', 45, 'F', 88);

6.修改

update table_name set id=10 where 条件判断

7.删除

delete from table_name  where 条件判断
drop table table_name

8.联合查询

select a.id, b.name from A a join B b on a.id=b.tid

9.创建索引

create index idx_库名_表名_列名1_列名2 (列名1, 列名2)

10.查看sql是否走索引

explain select * from student where name='ling'

11.链接数据库

Python2 使用的是MySQLdb
python3 使用的pymysql  pip安装

 (1) 创建链接和游标
注意:在mysql连接中,尽量使用一个连接,确保mysql的并发数

conn = pymysql.connect(host='', port=, user='', passwd='', db='') cus = conn.curse()

(2)执行sql

sql = "select * from Student;"
cus.execute(sql)
cus.fetchone()  获取单个  返回值  tuple
cus.fetchall()  获取多个  返回值  list(单个元素是tuple)
cus.fetchmany(size=n)  获取多个

(3) 关闭游标和连接

cus.close()
conn.close()

注意结合try exception finally的使用

二、SQLAlchemy操作总结

1. 创建引擎

engine = create_engine('mysql+pymysql://username:password@hostname:port/db')

2. 创建session

DBsession = sessionmaker(bind=engine)
session = DBsession()

3.创建表

a. 获得engine
b. metadata = MetaData(engine)
c. student = Table('表名', metadata, Colume('id', Integer, primary_key=True), Colume('name', String(50)) d. metadata.create_all()

4.增加

(1) 先要有一个模型

Base = declarative_base(0
class Student(Base):     __tablename__ = 'student'     id = Column(Integer, primary_key=True)     name = Column(String(100), primary_key=True)

(2)导入模型类,实例化该类,

sutdent1 = Student(1, 'ling')
c. session.add(单实例)      session.add_all([实例1, 实例2])

5. 查询

filter和filter_by的区别
filter:可以使用>  < 等,但是列必须是: 表.列,   filter的等于号是==
session.query(Student).filter(Student.id>100)
filter 不支持组合查询 session.query(Student).filter(Studnet.id>100).filter(name=='ling') filter_by: 可以直接写列,不支持< >  filter_by 等于是== session.query(Student).filter_by(id==10) filter_by 可以支持组合查询 session.query(Student).filter_by(name=='ling' and id=='342') select * from student where name like '%ling%'; 模糊查询含有ling的关键字

模糊查询

session.query(Student).filter(Student.name like('%ling%'))

获取数据的时候有两个方法:
one()   tuple
all()   list(单个元素是tuple)
如果在查询中不写one(), 或者all()  出来的就是sql语句

6. 更新

(1) 先查出来
(2) 跟新一下类所对应的属性值就ok
(3) session.commit()

student1 = session.query(Student).filter(Student.id==1001)
student1.name = "test"
session.commit()

7. 删除

(1)先查出来
(2)直接调用delete()方法就可以
(3) 提交一下

8.统计, 分组,排序

统计:count()
只需要在查出来以后, 把one或者all替换成count()
统计有多少个

分组:group_by
查出来以后,把one或者all替换成group_by(属性)

转载于:https://www.cnblogs.com/xiaogangcun/p/9040836.html

Python之Mysql及SQLAlchemy操作总结相关推荐

  1. 【python MySQL 笔记】python和MySQL交互、操作

    [python MySQL 笔记]python和MySQL交互.操作 目录 1. 数据准备 2.  SQL演练 2.1 SQL语句强化练习 2.2. 将一个表拆为多个表 3. python操作MySQ ...

  2. Python在mysql中进行操作是十分容易和简洁的

    首先声明一下,我用的是Windows系统! 1.在Python中对mysql数据库进行操作首先要导入pymysql模块,默认情况下,Python中是没有安装这个模块的,  可以在Windows的命令行 ...

  3. python读取mysql数据库_Python操作MySQL数据库9个实用实例

    在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1. ...

  4. Python连接MySQL数据库及其操作

    参考: python中连接mysql数据库,创建数据库和表,实现数据库增删改查操作示例代码(霸霸看了都说好) 0. 前提环境配置 参照文章Windows10环境下MySQL8版本安装教程及环境变量配置 ...

  5. python 连接mysql 字符集_Python 操作 MySQL 字符集的问题

    使用 Python 操作 MySQL 有不少库供我们选择,比如 MySQLdb.mysqlclient.PyMySQL.peewee 和 SQLAIchemy 等.我使用的是 mysql-connec ...

  6. python 测试mysql数据库_Python操作MySQL数据库----继续安装和测试

    接上篇,在上一篇中,我们安装好了python和sublime,下面我们需要安装MYSQL的相关软件. 1.安装MYSQL SERVER5.5.28,安装5.6版本的也可以,只是5.6版本安装完成之后没 ...

  7. python编写MySQL数据库查询/操作软件代码

    #!/usr/bin/python # -*- coding: UTF-8 -*- import sys import PySide2 import os import time import xlr ...

  8. python数据存储系列教程——python中mysql数据库操作:连接、增删查改、指令执行

    全栈工程师开发手册 (作者:陈玓玏) python教程全解 调试环境python3.6,调试python操作mysql数据库,首先要在本地或服务器安装mysql数据库.安装参考:http://blog ...

  9. mysql 空间数据操作,MySQL 空间数据 简单操作

    在做的项目中需要,自己绘制区域图形,并存储起来,后面还有更新的需要,存文件不方面,想到现在数据库都支持空间数据库. 现在用的就是 MySQL ,就继续用 MySQL 来存储.管理空间数据.下面就做一些 ...

最新文章

  1. 根据痛点分析制作软件
  2. 如何解决Silverlight InitializeError #2103 - Invalid or malformed application: Check manifest
  3. Java:Java编程实现导出二维码
  4. GTK+ VS MFC
  5. 选择嵌套_Python if语句嵌套(入门必读)
  6. 文本搜索 高亮显示
  7. 两端对齐布局与text-align:justify
  8. 2019java形势,2019Java开发还有哪些发展
  9. Operations Manager 2007 R2系列之仪表板(多)视图
  10. Java历程-初学篇 Day02变量,数据类型和运算符
  11. TrackBack 技术规范
  12. Nginx 架构——【核心流程+模块介绍】
  13. 企业应用大数据探索发展新路径
  14. 【语音识别】基于matlab GUI声纹识别【含Matlab源码 1022期】
  15. WinCC数据报表控件
  16. 计算机工程好发论文么,计算机工程期刊发表论文有什么要求
  17. 爬虫学习(14):selenium自动化测试(三):鼠标和键盘操作
  18. Orange's:一个操作系统的实现 Descriptor 3宏详解
  19. elasticsearch SSL 证书过期解决办法
  20. 【产业互联网周报】奇安信科创板IPO过会;声网Agora登陆纳斯达克;国产光刻机双工件台供应商华卓精科科创板IPO获受理...

热门文章

  1. log parser 微软iis 日志分析
  2. 《Effective Java》读书笔记--创建和销毁对象
  3. 使用面向 iOS 的本机插件扩展 PhoneGap
  4. c++引用的自我见解
  5. 点滴积累【C#】---检验编号在本表中自动生成,与其他表无关
  6. 『03网络』 实验一:多功能浏览器的使用和个人Blog的创建和使用
  7. apple id无法创建_我如何为我的Apple收藏夹创建网站
  8. react 错误边界_React with GraphQL和错误边界中的自定义错误页面
  9. javascript晚绑定_JavaScript的应用,调用和绑定通过托管野餐来解释
  10. 古剑奇谭网络版服务器位置,《古剑奇谭网络版》服务器数据互通调研公告