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
posted @ 2019-10-04 00:13  luckinlee  阅读(559)  评论(0编辑  收藏  举报