博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-5-13
阅读量:6893 次
发布时间:2019-06-27

本文共 3766 字,大约阅读时间需要 12 分钟。

hot3.png

demon1.py:

#!/ usr / bin / env python

# -  *  - 编码:utf-8  -  *  -

#@时间:2018/5/13 20:04

# @作者:lingxiangxiang

# @File:demon1.py

“””

创建一个测试库

创建数据库测试;

授权一个用户

将*。*的所有权限授予'1qaz @ WSX'标识的'xiang'@'%';

创建表

创建表student(id int not null);

查询

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

增加

(1,'ling',25,'M',99),(2,'ajing',45,'F',88)插入到table_name(id,name,age,sex,grander)

update table_name set id = 10 where条件判断

删除

从table_name中删除where条件判断

drop table table_name

联合查询

从a.id = b.tid中的a a b B上选择a.id,b.name

创建索引

创建索引idx_库名_表名_列名1_列名2(列名1,列名2)

查看SQL是否走索引

解释select * from student where name ='ling'

链接数据库

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()获取单个返回值元组

cus.fetchall()获取多个返回值列表(单个元素是元组)

cus.fetchmany(size = n)获取多个

3.关闭游标和连接

cus.close()

conn.close()

注意结合最后的使用

SQLAlchemy的

创建引擎

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

2.创建会话

DBsession = sessionmaker(bind =引擎)

session = DBsession()

3.创建表

一个。获得发动机

湾 元数据=元数据(引擎)

C。student = Table('表名',元数据,Colume('id',Integer,primary_key = True),Colume('name',String(50))

d。metadata.create_all()

4.增加

一个。先要有一个模型

Base = declarative_base(0

班级学生(基础):

    __tablename__ ='学生'

    id = Column(Integer,primary_key = True)

    name = Column(String(100),primary_key = True)

湾 导入模型类,实例化该类,

sutdent1 =学生(1,'ling')

C。session.add(单实例)session.add_all([实例1,实例2])

5.查询

过滤和filter_by的区别

filter:可以使用> <等,但是列必须是:表。列,filter的等于号是==

session.query(学生).filter(Student.id> 100)

过滤器不支持组合查询

session.query(学生).filter(Studnet.id> 100).filter(名称== '灵')

filter_by:可以直接写列,不支持<> filter_by等于是==

session.query(学生).filter_by(ID == 10)

filter_by可以支持组合查询

session.query(Student).filter_by(name =='ling'and id =='342')

从学生中选择*如%ling%';

模糊查询含有玲的关键字

模糊查询

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

获取数据的时候有两个方法:

一个()元组

all()list(单个元素是元组)

如果在查询中不写一(),或者所有()出来的就是sql语句

6.更新

先查出来

2.跟新一下类所对应的属性值就ok

3. session.commit()

student1 = session.query(Student).filter(Student.id == 1001)

student1.name =“test”

session.commit()

7.删除

先查出来

2.直接调用delete()方法就可以

3.提交一下

8.统计,分组,排序

统计:COUNT()

只需要在查出来以后,把一个或者全部替换成count()

统计有多少个

分组:GROUP_BY

查出来以后,把一个或者全部替换成GROUP_BY(属性)

 

demon2.py:

#!/ usr / bin / env python

# -  *  - 编码:utf-8  -  *  -
#@时间:2018/5/13 20:55
# @作者:lingxiangxiang
# @File:demon2.py

from sqlalchemy import create_engine,Integer,String,Column

来自 sqlalchemy.ext.declarative import declarative_base
从 sqlalchemy.orm 进口 sessionmaker

Base = declarative_base()
班级 学生(基础):
    __tablename__ =  '学生'
    id  = Column(Integer,primary_key = True)
    name = Column(String(100))
    年龄=列(整数)
    address = Column(String(100))

def  update(session):
    student1 = session.query(Student).filter(Student.id ==  1001).one()
    student1.name = ' test123 '
    session.commit()
    student2 = session.query(Student).filter(Student.id ==  1001).one()
    打印(student2.name)
DEF  删除(会话):
    session.query(Student).filter(Student.id ==  1001).delete()
    session.commit()

def  插入(会话):

    student1 =学生(id = 1004,姓名= ' ling ',年龄= 28,地址= ' shanxi ')
    session.add(student1)
    session.commit()

def  count(session):

    numnber = session.query(Student).filter()。count()
    打印(“总学生是{0} ”. format(numnber))

def  groupBy(session):

    groupByAge = session.query(Student).group_by(Student.age).all()
    打印(groupByAge)
    对于我在 groupByAge中:
        打印(i.id,i.name,i.age,i.address)

def  orderBy(session):

    orderByAge = session.query(Student).order_by(Student.age.desc())。all()
    for x in orderByAge:
        打印(x.id,x.name,x.age,x.address)

def  main():

    engine = create_engine(' mysql + pymysql:// xiang:xiang@192.168.48.136/sqlalchemy ')
    DBsession = sessionmaker(bind =引擎)
    session = DBsession()
    #插入(会话)
    #更新(会话)
    #删除(会话)
    #计数(会话)
    # GROUPBY(会话)
    排序依据(会话)

 

转载于:https://my.oschina.net/u/3803404/blog/1812413

你可能感兴趣的文章
定义中国网络安全市场战略高度,绿盟科技为“互联网+”保驾护航
查看>>
python 自定义 包 模块 打包 安装
查看>>
ubuntu桌面的标题栏和启动栏消失问题[亲测可用]
查看>>
Cloud technology in today's job market
查看>>
3月31日云栖精选夜读:数据科学咨询:想要转型毫无头绪?看了本文你不慌
查看>>
程序猿日记S01E03
查看>>
如何解决域名解析不生效问题?
查看>>
Android开发者指南(9) —— ProGuard
查看>>
MySQL · 答疑解惑 · 物理备份死锁分析
查看>>
字符串指针修改问题
查看>>
JavaScript权威设计--跨域,XMLHttpRequest(简要学习笔记十九)
查看>>
跨入流式计算时代,用不着洪荒之力——在阿里云容器服务上一键部署JStorm
查看>>
通过JCONSOLE监控TOMCAT的JVM使用情况
查看>>
jquery editable plugin--点击编辑文字插件
查看>>
[Java] TreeMap、HashMap、LindedHashMap的区别
查看>>
javascript 常用自定义方法
查看>>
MariaDB · 新特性 · 窗口函数
查看>>
thinkphp 3.2分布式数据库读写分离扩展阅读
查看>>
iOS流布局UICollectionView系列二——UICollectionView的代理方法
查看>>
mac 配置jdk1.8(小白教程)
查看>>