一、Mysql命令总结

1.创建库

  1. create database test1;

2.授权一个用户

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

3.创建表

  1. create table Teacher(
  2. teaId int not null,
  3. teaname varchar(100),
  4. age int,
  5. sex enum('M', 'F'),
  6. phone int);

4.查询

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

5.增加

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

6.修改

  1. update table_name set id=10 where 条件判断

7.删除

  1. delete from table_name  where 条件判断
  2. drop table table_name

8.联合查询

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

9.创建索引

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

10.查看sql是否走索引

  1. explain select * from student where name='ling'

11.链接数据库

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

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

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

(2)执行sql

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

(3) 关闭游标和连接

  1. cus.close()
  2. conn.close()

注意结合try exception finally的使用

二、SQLAlchemy操作总结

1. 创建引擎

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

2. 创建session

  1. DBsession = sessionmaker(bind=engine)
  2. session = DBsession()

3.创建表

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

4.增加

(1) 先要有一个模型

  1. Base = declarative_base(0
  2. class Student(Base):
  3.     __tablename__ = 'student'
  4.     id = Column(Integer, primary_key=True)
  5.     name = Column(String(100), primary_key=True)

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

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

5. 查询

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

模糊查询

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

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

6. 更新

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

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

7. 删除

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

8.统计, 分组,排序

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

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

Python之Mysql及SQLAlchemy操作总结的更多相关文章

  1. python对mysql进行简单操作

    python 连接MySQL数据库,进行简单操作 一.连接MySQL数据库,关闭连接 import pymysql db = pymysql.connect(host="xxx.xxx.x. ...

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

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

  3. python中mysql数据库的操作-sqlalchemy

    MySQLdb支持python2.*,不支持3.* ,python3里面使用PyMySQL模块代替 python3里面如果有报错  django.core.exceptions.ImproperlyC ...

  4. Python之MySQL库表操作

    一:库操作 1.1 增 # 语法 # create database 库名 default charset utf8; create database db1 default charset utf8 ...

  5. python之MySQL学习——数据操作

    1.增 import pymysql as ps # 打开数据库连接 db = ps.connect(host=', database='test', charset='utf8') # 创建一个游标 ...

  6. python之(mysql数据库操作)

    前言:关心3步骤(此文章只针对python自动化根基展开描述) 什么是mysql数据库操作?  答:利用python对mysql数据库进行增, 删, 改, 查 操作 为什么要用python对mysql ...

  7. 通过python给mysql建表

    一.python连接mysql from sqlalchemy import create_engine # 数据库数据 HOSTNAME = '127.0.0.1' # linux本地 PORT = ...

  8. Python操作MySQL之SQLAlchemy

      SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结 ...

  9. python对Mysql操作和使用ORM框架(SQLAlchemy)

    python对mysql的操作 Mysql 常见操作 数据库操作 创建数据库 create database fuzjtest 删除数据库 drop database fuzjtest 查询数据库 s ...

随机推荐

  1. 生活的 tricks

    1. 远距离传递 传真(需要附近有传真机):发 QQ.微信拍照,自己打印: 2. 超市的设计 如果是两层的话,入口一定在第一楼,出口在第二楼,也即当你需要出去的时候,需要贯穿整个超市: 用的在第一楼: ...

  2. svn for vs

    现在官方下载需要注册一堆的东西,为方便群众使用在这里提供一个新版的下载. http://files.cnblogs.com/wfcfan/AnkhSvn-2.5.12266.rar

  3. B1821 [JSOI2010]Group 部落划分 Group 二分答案&&并查集

    这个题正解是最小生成树,但是...最大值最小?一看就是二分答案啊!不用多想,直接二分答案加暴力验证就行了. 题干: Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒 ...

  4. B1295 [SCOI2009]最长距离 最短路

    就是一道最短路的裸题,直接跑spfa就行了.(spfa死了) 最后在答案处判断是否障碍物太多,然后就直接找最大值就行. (数据特别水,我错误算法60) 题干: Description windy有一块 ...

  5. 协议-网络-安全协议:SSH(安全外壳协议)

    ylbtech-协议-网络-安全协议:SSH(安全外壳协议) SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立 ...

  6. PCB MS SQL表值函数与CLR 表值函数 (例:字符串分割转表)

    将字符串分割为表表经常用到,这里 SQL表值函数与CLR  表值函数,两种实现方法例出来如下: SELECT * FROM FP_EMSDB_PUB.dbo.SqlSplit('/','1oz/1.5 ...

  7. Sorting It All Out(拓扑排序)

    http://poj.org/problem?id=1094 1.判断所给关系是否为合法的拓扑序列,若存在环,输出 "Inconsistency found after %d relatio ...

  8. NOIP 2015 DAY2

    跳石头 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N 块 ...

  9. [Apple开发者帐户帮助]三、创建证书(2)创建开发者ID证书

    您可以使用开发人员帐户或Xcode 创建最多五个开发者ID应用程序证书和最多五个开发人员ID安装程序证书.(要在Xcode中创建开发者ID证书,请转到Xcode帮助中的管理签名证书.) 所需角色:帐户 ...

  10. 计算某个时间段(2017-10-01 2017-12-01)内svn更新文件的MD5

    #!/bin/sh svn up svn log -v -r {$1}:{$2} | grep / | grep -v xxx | sort -f -u | uniq | awk -F 'xxxx' ...