Python之Mysql及SQLAlchemy操作总结
一、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操作总结相关推荐
- 【python MySQL 笔记】python和MySQL交互、操作
[python MySQL 笔记]python和MySQL交互.操作 目录 1. 数据准备 2. SQL演练 2.1 SQL语句强化练习 2.2. 将一个表拆为多个表 3. python操作MySQ ...
- Python在mysql中进行操作是十分容易和简洁的
首先声明一下,我用的是Windows系统! 1.在Python中对mysql数据库进行操作首先要导入pymysql模块,默认情况下,Python中是没有安装这个模块的, 可以在Windows的命令行 ...
- python读取mysql数据库_Python操作MySQL数据库9个实用实例
在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1. ...
- Python连接MySQL数据库及其操作
参考: python中连接mysql数据库,创建数据库和表,实现数据库增删改查操作示例代码(霸霸看了都说好) 0. 前提环境配置 参照文章Windows10环境下MySQL8版本安装教程及环境变量配置 ...
- python 连接mysql 字符集_Python 操作 MySQL 字符集的问题
使用 Python 操作 MySQL 有不少库供我们选择,比如 MySQLdb.mysqlclient.PyMySQL.peewee 和 SQLAIchemy 等.我使用的是 mysql-connec ...
- python 测试mysql数据库_Python操作MySQL数据库----继续安装和测试
接上篇,在上一篇中,我们安装好了python和sublime,下面我们需要安装MYSQL的相关软件. 1.安装MYSQL SERVER5.5.28,安装5.6版本的也可以,只是5.6版本安装完成之后没 ...
- python编写MySQL数据库查询/操作软件代码
#!/usr/bin/python # -*- coding: UTF-8 -*- import sys import PySide2 import os import time import xlr ...
- python数据存储系列教程——python中mysql数据库操作:连接、增删查改、指令执行
全栈工程师开发手册 (作者:陈玓玏) python教程全解 调试环境python3.6,调试python操作mysql数据库,首先要在本地或服务器安装mysql数据库.安装参考:http://blog ...
- mysql 空间数据操作,MySQL 空间数据 简单操作
在做的项目中需要,自己绘制区域图形,并存储起来,后面还有更新的需要,存文件不方面,想到现在数据库都支持空间数据库. 现在用的就是 MySQL ,就继续用 MySQL 来存储.管理空间数据.下面就做一些 ...
最新文章
- 根据痛点分析制作软件
- 如何解决Silverlight InitializeError #2103 - Invalid or malformed application: Check manifest
- Java:Java编程实现导出二维码
- GTK+ VS MFC
- 选择嵌套_Python if语句嵌套(入门必读)
- 文本搜索 高亮显示
- 两端对齐布局与text-align:justify
- 2019java形势,2019Java开发还有哪些发展
- Operations Manager 2007 R2系列之仪表板(多)视图
- Java历程-初学篇 Day02变量,数据类型和运算符
- TrackBack 技术规范
- Nginx 架构——【核心流程+模块介绍】
- 企业应用大数据探索发展新路径
- 【语音识别】基于matlab GUI声纹识别【含Matlab源码 1022期】
- WinCC数据报表控件
- 计算机工程好发论文么,计算机工程期刊发表论文有什么要求
- 爬虫学习(14):selenium自动化测试(三):鼠标和键盘操作
- Orange's:一个操作系统的实现 Descriptor 3宏详解
- elasticsearch SSL 证书过期解决办法
- 【产业互联网周报】奇安信科创板IPO过会;声网Agora登陆纳斯达克;国产光刻机双工件台供应商华卓精科科创板IPO获受理...
热门文章
- log parser 微软iis 日志分析
- 《Effective Java》读书笔记--创建和销毁对象
- 使用面向 iOS 的本机插件扩展 PhoneGap
- c++引用的自我见解
- 点滴积累【C#】---检验编号在本表中自动生成,与其他表无关
- 『03网络』 实验一:多功能浏览器的使用和个人Blog的创建和使用
- apple id无法创建_我如何为我的Apple收藏夹创建网站
- react 错误边界_React with GraphQL和错误边界中的自定义错误页面
- javascript晚绑定_JavaScript的应用,调用和绑定通过托管野餐来解释
- 古剑奇谭网络版服务器位置,《古剑奇谭网络版》服务器数据互通调研公告