pymysql模块操作数据库与mysql数据备份

Posted luckinlee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pymysql模块操作数据库与mysql数据备份相关的知识,希望对你有一定的参考价值。

  • 链接参数

    host='127.0.0.1'  #计算机的IP地址
    port=3306             #数据库的端口号
    user='root'           #数据库的用户名
    password='root'       #用户密码
    database='lucky'  #要连接数据库名
    charset='utf8'        #链接数据的编码格式
  • 代码示例

    import pymysql
    1:#查询
    conn = pymysql.connect(
      host='127.0.0.1', #主机
      port=3306, #端口号
      user='root',#用户名
      password='666', #密码
      database='day43', #需要连接的库
      charset='utf8'#指定编码
    )
    cursor = conn.cursor()#获取游标,默认获取的是元祖嵌套形式的数据
    sql = "select * from dep;" #sql语句
    ret = cursor.execute(sql) #ret 受影响的行数
    print(cursor.fetchall())  #取出所有的
    print(cursor.fetchmany(3))  #取出多条不写参数默认是取一条
    print(cursor.fetchone())  #取出单条
    
    cursor.scroll(3,'absolute')  #绝对移动,按照数据最开始位置往下移动3条
    cursor.scroll(3,'relative')  #相对移动,按照当前光标位置往下移动3条
    '''
    cursor 获取游标的时候默认获取的是元祖套元祖的数据类型,可以指定使用字段的方式,来获取字典的数据格式
    '''
    #字典格式的游标
    cursor = conn.cursor(pymysql.cursors.DictCursor)
  • pymysql插入数据

    #插入
    conn = pymysql.connect(
      host='127.0.0.1', #主机
      port=3306, #端口号
      user='root',#用户名
      password='666', #密码
      database='day43', #需要连接的库
      charset='utf8'#指定编码
    )
    cursor = conn.cursor()#获取游标,默认获取的是元祖嵌套形式的数据
    sql = "insert into t1 values (3,'xx3',18);" #sql语句
    ret = cursor.execute(sql) #ret 受影响的行数
    conn.commit()  #增删改操作时,需要进行提交
  • sql注入解决方案

    #sql注入:解决方案
      cursor.execute(sql,[参数1,参数2...])
     import pymysql
    
    conn = pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user='root',
        password='666',
        database='day43',
        charset='utf8',
    )
    while 1:
        username = input('请输入用户名:')
        password = input('请输入密码:')
        cursor = conn.cursor(pymysql.cursors.DictCursor)
        sql = "select * from userinfo where username=%s and password=%s;"
        #cursor.execute(sql,[uname,pword]) ,其实它本质也是帮你进行了字符串的替换,只不过它会将uname和pword里面的特殊字符给过滤掉。
        ret = cursor.execute(sql,[username,password])
        #ret我们说是得到的行数,如果这个行数不为零,说明用户输入的用户名和密码存在,如果为0说名存在
        if ret:#如果输入的用户名和密码错误,这个结果为0,如果正确,这个结果为1
            print('登录成功')
        else:
            print('账号或者密码错误,请重新输入!!!')
  • 获取插入的最后一条数据的自增ID

    import pymysql
    conn=pymysql.connect(host='localhost',user='root',password='123',database='egon')
    cursor=conn.cursor()
    sql='insert into userinfo(name,password) values("xxx","123");'
    rows=cursor.execute(sql)
    print(cursor.lastrowid) #在插入语句后查看
    conn.commit()
    cursor.close()
    conn.close()

Mysql数据库数据备份和恢复

#使用mysqldump实现数据库的备份
mysqldump -uroot -p -B -d 库名 > f:数据库备份练习crm2stru.sql
Enter password: ***
'''
mysqldump也是mysql数据库的一个命令,-u用户名,-p密码 -B指的是在备份数据的时候,备份的数据增加建库的语句和use语句,>号后面指定路径数据备份保存的路径和文件名
'''
#利用mysql命令回复数据
'''
恢复数据首先要把数据库中原来的库删除,然后把备份的数据导入进来,<号表示得就是要导入进来,后面写上备份数据的路径,运行就可以回复数据
'''
mysql -u用户名 -p 密码 库名 < f:数据库备份练习crm2stru.sql

以上是关于pymysql模块操作数据库与mysql数据备份的主要内容,如果未能解决你的问题,请参考以下文章

mysql索引与pymysql模块

python中操作MySQL:pymysql模块

第二百七十九节,MySQL数据库-pymysql模块

Python基础(十六)-操作数据库pymysql模块

pymysql和sqlalchemy模块操作mysql数据库

48-mysql-Navicat数据库查询题目讲解(多表操作)python操作MySQLsql注入问题pymysql模块增删改查数据操作