精华内容
下载资源
问答
  • python操作mysql数据库

    千次阅读 2021-03-02 20:14:58
    如果之前没有使用过python操作mysql数据库,需要先导入库 打开PyCharm,在下方找到Terminal,输入pip install mysqlclient即可,我已经安装完成了,所以提示的不一样,安装成功就可以。 代码 dao import MySQLdb #...

    前期准备

    如果之前没有使用过python操作mysql数据库,需要先导入库
    打开PyCharm,在下方找到Terminal,输入pip install mysqlclient即可,我已经安装完成了,所以提示的不一样,安装成功就可以。
    在这里插入图片描述

    代码

    dao

    import MySQLdb         #需要导入的库
    
    
    def insert(name, img, src, fen, con):              #实现的按列表导入数据库
        db = MySQLdb.connect("localhost", "root", "123456", "eighty", charset='utf8')
        cursor = db.cursor()
        for n, i, s, f, c in zip(name, img, src, fen, con):
            sql = '''
            insert into movie values(0,'%s','%s','%s','%s','%s')
            ''' % (n, i, s, f, c)
            cursor.execute(sql)
        db.commit()
    
    

    只需要将sql语句填写完整之后,除了查询,其他都可以按照这个模板进行操作。
    查询方法

    def getAll():
        db = MySQLdb.connect("localhost", "root", "123456", "eighty", charset='utf8')
        cursor = db.cursor()
        sql='''
        select * from movie
        '''
        cursor.execute(sql)
        results = cursor.fetchall()
        return results
    

    通过这种方式就可以实现python对mysql的操作

    展开全文
  • python 操作MySQL数据库

    千次阅读 2016-09-13 10:57:40
    python操作MySQL数据库 python小练习 初级代码 数据库

    银行转账demo

    思路:

    1. 首先要有一个表,存储转账人id和钱数,收款人的id和钱数。建表参考文章末尾创建数据表,并插入数据的代码。
    2. 验证两人是否存在,验证出款热年钱数是否大于转账钱数,最后一人出款,一人收款。
    3. 因此代码分为两大部分,主函数和类。类里边又包含各操作方法,和所有方法的调用执行。

    知识点:

    1. python 操作数据库,要安装一个Python和数据库交互的包MySQL-python,然后我们就可以使用MySQLdb这个包进行数据库操作了。
    2. cursor() – 获取操作游标
    3. execute(self, nameid, money) – 执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
    4. fetchall() – 返回查询到的所有记录
    5. rollback() – 回滚当前游标的所有操作,即当做什么也没发生
    6. 关闭数据库连接 , 需要分别的关闭指针对象和连接对象.
      cursor.close() 、conn.close()
    7. 在执行完插入或删除或修改操作后,需要调用一下conn.commit()方法进行提交.这样,数据才会真正保存在数据库中.
    #!/usr/bin/python
    # Filename:three.py
    import sys
    import MySQLdb
    
    #类
    class hq(object):
        def __init__(self,conn):
            self.conn = conn
    
     #验证两人是否存在
        def cunzai(self,nameid):
            cursor = self.conn.cursor()
            try:
                sql="select * from account where nameid=%s" %nameid
                cursor.execute(sql)
                print "cunzai:" + sql
                rs = cursor.fetchall()
                if len(rs) !=1:
                    raise Exception("%s bucunzai" % nameid)
            finally:
                cursor.close()
     #验证出款人钱够不够
        def enough_money(self,nameid,money):
            cursor = self.conn.cursor()
            try:
                sql = "select * from account where nameid=%s and money>%s" % (nameid,money)
                cursor.execute(sql)
                print "enough_money:" + sql
                rs = cursor.fetchall()
                if len(rs) !=1:
                    raise Exception("%s not have enough money" % nameid)
            finally:
                cursor.close()
    
      #减钱
        def reduce_money(self,nameid,money):
            cursor = self.conn.cursor()
            try:
                sql = "update account set money=money-%s where nameid= %s " % (money,nameid)
                cursor.execute(sql)
                print "reduce_money:" +sql
                if cursor.rowcount !=1:
                    raise Exception("%s reduce money fail" % nameid)
            finally:
                cursor.close()
    
     #加钱
        def add_money(self,nameid,money):
            cursor = self.conn.cursor()
            try:
                sql = "update account set money=money+%s where nameid= %s " % (money,nameid)
                cursor.execute(sql)
                print "add money:" + sql
                if cursor.rowcount !=1:
                    raise Exception("%s add money fail" % nameid)
            finally:
                cursor.close()
    
    #触发所有
        def transfer(self,source_acctid,target_acctid,money):
            try:
                self.cunzai(source_nameid)
                self.cunzai(target_nameid)
                self.enough_money(source_nameid,money)
                self.reduce_money(source_nameid,money)
                self.add_money(target_nameid,money)
                self.conn.commit()
            except Exception as e:
                self.conn.rollback()
                raise e
    #如果出现异常,就回滚当前游标的所有操作,并抛出异常
    
    #主函数
    if __name__ == "__main__":
        conn = MySQLdb.Connect(
                            host = 'localhost',
                            port = 3306,
                            user = 'root',
                            passwd = '',
                            db = 'mytest',
                            charset = 'utf8'
                            )
    
        source_nameid = sys.argv[1]
        target_nameid = sys.argv[2]
        money = sys.argv[3]
        #从命令行中获取三个参数分别作为出款人,收款人,转账金额
    
        tr_money = hq(conn)
    
        try:
            tr_money.transfer(source_nameid,target_nameid,money)
        except Exception as e:
            print "yichang" , str(e)
        finally:
            conn.close()

    命令行代码如下(例如该文件名称为test . py):

    $ python test.py  1   2   100
    #1给2转账100

    创建数据表,并插入数据

    #连接数据库
    conn = MySQLdb.Connect(
                            host = 'localhost',
                            port = 3306,
                            user = 'root',
                            passwd = '',
                            db = 'mytest',
                            charset = 'utf8'
                            )
    
    cursor = conn.cursor()
    #创建一个表存储数据
    sql_create = "create table if not exists account(nameid int, money  varchar(100)) "
    #插入两条数据
    sql_insert1 = "insert into account(nameid,money) values(13,120)"
    sql_insert2 = "insert into account(nameid,money) values(14,10)"
    #执行上述sql语句
    cursor.execute(sql_create)
    cursor.execute(sql_insert1)
    cursor.execute(sql_insert2)
    conn.close()

    参考慕课网python教程
    如果您有什么问题或建议,欢迎留言…^.^

    展开全文
  • Python操作mysql数据库

    千次阅读 多人点赞 2021-07-31 15:49:03
    利用Python来实现数据库的连接的话,其实很简单,我们主流使用的第三方库是pymysql这是一个使用python来实现的第三方库,当然在不同的框架中可以直接调用相关使用数据库的方法。那么这里先简单说一下怎么使用pymysql...

    前言

    (sql部分的笔记较多难以整理,先简单说明一下如何使用python进行数据库连接,此外由于Java的技术栈过长,接下来的学习将重新回归到python先实现效果,之后再使用Java进行实现,做进一步的优化)
    利用Python来实现数据库的连接的话,其实很简单,我们主流使用的第三方库是pymysql这是一个使用python来实现的第三方库,当然在不同的框架中可以直接调用相关使用数据库的方法。那么这里先简单说一下怎么使用pymysql实现数据库的连接。

    建立数据连接

    其实使用pymysql进行数据库的连接是非常简单的,第一步就是建立数据库连接(在python当中,这其实更像是使用了一个代理)

    import pymysql
    
    try:
        #建立连接
        conn=pymysql.connect(
            host='127.0.0.1',port=3306,user='Huterox',
            passwd='passwd',db='huterox',charset='utf8'
        )
    except pymysql.Error as err:
        print(err)
    

    操作流程

    下面为了更好的理解相关操作,请看下面的流程图,它将很好地反映这个pymysql的操作方式。
    在这里插入图片描述

    使用游标执行sql语句

    数据 增,删除,改

    这个数据的查询和这几个是不太一样的,说以下面再说。
    先展示以先当前的演示环境
    在这里插入图片描述
    现在我们在这里面插入数据

    
     Sqlcomm = """insert into hello(name,age) value(%s,%s)"""
     cursor.execute(Sqlcomm,("xx",15))
    
    
    import pymysql
    
    #建立连接
    conn=pymysql.connect(
        host='127.0.0.1',port=3306,user='Huterox',
        passwd='865989840',db='huterox',charset='utf8'
    )
    cursor = conn.cursor()
    
    try:
    
        Sqlcomm = """insert into hello(name) value(%s)"""
        cursor.execute(Sqlcomm,("小刚"))
    
        conn.commit()#提交
    except pymysql.Error as err:
        conn.rollback()#回滚
        print(err)
    finally:
        conn.close()
    

    在这里插入图片描述
    现在已经加入了,这一条,那么现在添加age和heigh的值

    update hello set age=15,heigh=185 where name=%s
    
    import pymysql
    
    #建立连接
    conn=pymysql.connect(
        host='127.0.0.1',port=3306,user='Huterox',
        passwd='865989840',db='huterox',charset='utf8'
    )
    cursor = conn.cursor()
    
    try:
    
        Sqlcomm = """update hello set age=15,heigh=185 where name=%s"""
        res = cursor.execute(Sqlcomm,"小刚")if res==1:
            #一条受影响,返回一
            print("修改成功")
        conn.commit()#提交
    except pymysql.Error as err:
        conn.rollback()#回滚
        print(err)
    finally:
        conn.close()
    

    在这里插入图片描述
    接下来就是删除了,那还不简单

    delete from hello where name=’小刚‘
    

    在这里插入图片描述

    数据的查找

    这个就有点区别了
    看代码

    import pymysql
    
    #建立连接
    conn=pymysql.connect(
        host='127.0.0.1',port=3306,user='Huterox',
        passwd='865989840',db='huterox',charset='utf8'
    )
    cursor = conn.cursor()
    
    try:
    
        Sqlcomm = """select name as 名字,age as 年龄, heigh as 身高 from hello"""
        cursor.execute(Sqlcomm)
        for row in cursor.fetchall():
            
            print(row)
    
        conn.commit()#提交
    except pymysql.Error as err:
        conn.rollback()#回滚
        print(err)
    finally:
        conn.close()
    

    cursor 有三个方法获取结果
    在这里插入图片描述
    这个一目了然,fetchall()就是全部结果
    这个返回结果是一个大元组,里面都是一个个小元组
    在这里插入图片描述
    那么在这里的化还可以设置为字典,也最好设置为字典。

    conn=pymysql.connect(
        host='127.0.0.1',port=3306,user='Huterox',
        passwd='pw',db='huterox',charset='utf8',
        cursorclass=pymysql.cursors.DictCursor
    )
    

    在这里插入图片描述

    注入防范

    这个在pymysql里面比较好的就是它会帮助我们自己完成防范,你只需要,把变量,也就是用户输入当作元组在execute()函数中放置,而不是在字符串里面拼接即可。
    在这里插入图片描述

    展开全文
  • Python操作MySQL数据库

    千次阅读 2016-05-22 12:04:42
    今天分享一下Python操作MySQL数据库相关的知识点。安装必需品 我这里安装的是 Python2.7 MySQL5.6版本 数据库连接MySQL-python-1.2.3.win-amd64-py2.7 这个版本的我在Sourceforge上面找了很久才找到,一定要注意...

    今天分享一下Python操作MySQL数据库相关的知识点。


    安装必需品


    • 我这里安装的是 Python2.7
    • MySQL5.6版本
    • 数据库连接MySQL-python-1.2.3.win-amd64-py2.7

    这个版本的我在Sourceforge上面找了很久才找到,一定要注意是安装的32位还是64位.链接如下:终极链接层

    测试一下

    打开命令行,若出现如下:

    Microsoft Windows [版本 6.1.7600]
    版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
    
    C:\Users\Administrator>python
    Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:40:30) [MSC v.1500 64 bit (
    AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import MySQLdb
    >>>
    
    

    就说明安装好了。

    如果是采取zip文件安装的话,需要cd到相关的目录,使用python setup.py install。来进行安装,当然也可以借助pip这款神器咯。

    数据库准备

    在MySQL中创建我们待会要进行测试的数据库。

    Server version: 5.6.24-log MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> show databases
        -> ;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | hibernate          |
    | mybatis            |
    | mysql              |
    | performance_schema |
    | practice           |
    | sakila             |
    | test               |
    | world              |
    +--------------------+
    
    mysql> create database python;
    Query OK, 1 row affected (0.03 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | hibernate          |
    | mybatis            |
    | mysql              |
    | performance_schema |
    | practice           |
    | python             |
    | sakila             |
    | test               |
    | world              |
    +--------------------+
    
    mysql> use python
    Database changed

    Python 代码测试

    下面就借助一个简单的小例子来进行演示咯。

    #coding:UTF-8
    
    import MySQLdb
    
    conn = MySQLdb.connect(
        host='localhost',
        port = 3306, # 切记这里是整数,而不是字符串!!!
        user = 'root',
        passwd = 'mysql',
        db = 'python',
    )
    
    curs = conn.cursor()
     # 创建一张数据库中的表
    curs.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")
    
     # 插入一条数据的记录
    # curs.execute("insert into student values('2','Mark','Class 3','20')")
    
     # 修改查询条件的数据 (这条语句不知道为什么,我的控制台执行的时候出错了。欢迎批评指正)
    # curs.execute("update student set class='Class 14' where name ='Mark'")
    
     # 删除查询条件的数据
    # curs.execute("delete from student where age ='20'")
    
    curs.close()
    conn.commit()
    conn.close()
    
    

    下面分别来讲一讲每一个命令的具体的功能

    // 创建一张名为student的表结构
     curs.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")
    
    // 查看数据库可见,那个db_test表是本人之前自己创建的
    
    mysql> show tables;
    +------------------+
    | Tables_in_python |
    +------------------+
    | db_test          |
    +------------------+
    1 row in set (0.00 sec)
    
    mysql> show tables;
    +------------------+
    | Tables_in_python |
    +------------------+
    | db_test          |
    | student          |
    +------------------+
    2 rows in set (0.00 sec)
    
    mysql>
    curs.execute("insert into student values('2','Mark','Class 3','20')")
    
    
    // 查看数据库结果
    mysql> select * from student;
    +------+------+---------+------+
    | id   | name | class   | age  |
    +------+------+---------+------+
    |    2 | Mark | Class 3 | 20   |
    +------+------+---------+------+
    1 row in set (0.00 sec)
    ·
    ·
    ·
    ·
    ·
    ·

    进阶版

    使用纯的SQL语句进行操作,很是麻烦。类似于Java的PreparedStatement的方式,Python也有类似于占位符的形式来操作数据库。如下:

    #coding=utf-8
    import MySQLdb
    
    conn= MySQLdb.connect(
            host='localhost',
            port = 3306,
            user='root',
            passwd='123456',
            db ='test',
            )
    cur = conn.cursor()
    
    #插入一条数据
    sqli="insert into student values(%s,%s,%s,%s)"
    cur.execute(sqli,('3','Huhu','2 year 1 class','7'))
    
    #一次插入多条记录
    sqli="insert into student values(%s,%s,%s,%s)"
    cur.executemany(sqli,[
        ('3','Tom','1 year 1 class','6'),
        ('3','Jack','2 year 1 class','7'),
        ('3','Yaheng','2 year 2 class','7'),
        ])
    
    # 获取表中的数据
    cur.execute("select * from student")
    cur.fetchone()
    
    # fetchone()方法可以帮助我们获得表中的数据,可是每次执行cur.fetchone() 获得的数据都不一样,换句话说我没执行一次,游标会从表中的第一条数据移动到下一条数据的位置,所以,我再次执行的时候得到的是第二条数据。
    # scroll(0,'absolute') 方法可以将游标定位到表中的第一条数据。
    
    
    
    #获得表中有多少条数据
    aa=cur.execute("select * from student")
    print aa
    
    #打印表中的多少数据
    info = cur.fetchmany(aa)
    for ii in info:
        print ii
    
    cur.close()
    conn.commit()
    conn.close()
    展开全文
  • Python操作MySQL数据库示例

    千次阅读 2015-10-14 20:31:09
    Python操作MySQL数据库示例 日期:2015年10月14日,作者:雨水 基础准备 安装MySQL数据库 $sudo apt-get install mysql-server 备注:本文所有操作在ubuntu操作系统 安装MySQLdb库 $sudo apt-get install python-...
  • python操作mysql数据库
  • Ubuntu16.04 Python操作MySQL数据库

    千次阅读 2017-10-20 21:30:10
    Ubuntu16.04 Python操作MySQL数据库第一步 安装MySQL数据库安装过程可以参考本人另一篇博客:Ubuntu16.04安装MySQL数据库和可视化工具MySQL Workbench第二步 安装MySQL-python驱动 下载驱动: 驱动下载地址 安装...
  • Python操作MySQL数据库9个实用实例

    千次阅读 2020-02-12 10:02:37
    这篇文章主要介绍了Python操作MySQL数据库9个实用实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,...
  • python操作mysql数据库

    千次阅读 2021-02-11 18:28:59
    python连接数据库 View Code 更多参数 创建表操作 复制代码 import pymysql 打开数据库连接 db = pymysql.connect(“localhost”,“testuser”,“test123”,“TESTDB” ) 使用 cursor() 方法创建一个游标对象 cursor...
  • Python操作MySQL数据库的三种方法

    万次阅读 多人点赞 2017-04-20 13:13:08
      MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。(2) 源码安装 MySQLdb: https://pypi.python.org/pypi/MySQL-python$ tar zxvf MySQL-...
  • python操作mysql数据库 1、环境准备: Linux 安装mysql: apt-get install mysql-server 安装python-mysql模块:apt-get install python-mysqldb Windows 下载安装mysql python操作mysql模块:...
  • 简单明了——小白看了都会的python操作mysql数据库

    千次阅读 多人点赞 2021-05-14 08:56:13
    python操作数据库1. 概述2. 安装PyMySQL3. 连接数据库:Connection 悄悄介绍自己: 本人是快升大四的小白,在山西上学,学习的是python方面的知识,希望能找到一个适合自己的实习公司,哪位大佬看上我的可以留下...
  • 十五、Python操作mysql数据库

    千次阅读 多人点赞 2021-05-29 18:09:59
    利用Navicat Premium 15软件连接mysql数据库,新建testdb数据库,并添加2个表usertest和userinfo。
  • Python操作mysql数据库,实现基本的增删改查
  • 1、什么是游标? 一张图讲述游标的功能: 图示说明: 2、使用游标的好处?   如果不使用游标功能,直接使用select查询,会一次性将结果集打印到屏幕上,你无法针对...1)以python连接mysql数据库为例 2)使...
  • 加上前段时间学习的MySQL,想将读取回来的开奖数据存放到数据库里试试看。  废话不多说,实操看看。 网页下载器 这部分就比较简单了,不过值得一提的是,response需要encoding一下才能正常识别出内容,不然就是...
  • python操作mysql数据库基本类封装

    千次阅读 2017-06-20 21:59:23
    # -*- coding: UTF-8 -*- import re import MySQLdb as mdb ...class MysqldbHelper(object): """操作mysql数据库,基本方法 """ def __init__(self , host="localhost", username="root", password="", port=3306,
  • #连接 mysql,获取连接的对象 con = mdb.connect('localhost', 'root', 'root', 'test'); with con: #仍然是,第一步要获取连接的 cursor 对象,用于执行查询 cur = con.cursor() #类似于其他语言的 query 函数, ...
  • Python操作MySQL数据库 - 安装驱动包

    千次阅读 2017-12-14 19:48:05
    安装python-mysqldb  只支持python2.x  方式一:执行命令  sudo apt-get install python-mysqldb   ... pip install mysql-python  报错:EnvironmentError: mysql_config not found  执行:
  • 背景:在构造测试场景的时候,往往会出现一次性要执行多条sql语句的情况,这时候为了避免每执行一条sql就连接一次数据库,可以加入 closeConn的参数,用以提高执行效率 1、前面的链接数据库,创建游标就不过多说明,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 208,031
精华内容 83,212
关键字:

python操作mysql数据库

python 订阅
mysql 订阅