• mysql基础(五)之pymysql


    pymysql模块:
    pip3 install pymysql -i https://pypi.douban.com/simple
    Python模块:对数据库进行操作(SQL语句)

    1. Python实现用户登录
    2. MySQL保存数据
    - 连接、关闭(游标)
    - execute() -- SQL注入
    - 增删改: conn.commit() 可以返回受影响的行数
    - fetchone fetchall
    - 获取插入数据自增ID
    -scroll 移动游标位置
     1 #实现增删改
     2 
     3 import pymysql
     4 conn = pymysql.connect(host='localhost',user='root',password='123',database='db1')
     5 cursor=conn.cursor()
     6 
     7 sql="insert into userinfo4(username,password) values('root','123123')"
     8 r = cursor.execute(sql)  # 返回受影响的行数
     9 
    10 sql = "insert into userinfo(username,password) values(%s,%s)"
    11 r = cursor.executemany(sql,[('egon','sb'),('laoyao','BS')])
    12 
    13 conn.commit()           # 增删改操作必须进行提交
    14 print(r)
    15 cursor.close()
    16 conn.close()
    17 
    18 
    19 # 查
    20 import pymysql
    21 conn = pymysql.connect(host="localhost",user='root',password='123',database="db1")
    22 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    23 sql = "select * from userinfo4"
    24 cursor.execute(sql)
    25 
    26 cursor.scroll(1,mode='relative')  # 相对当前位置移动
    27 cursor.scroll(2,mode='absolute') # 相对绝对位置移动
    28 result = cursor.fetchone()        #获取一行
    29 print(result)
    30 
    31 result = cursor.fetchall()        #获取全部
    32 print(result)
    33 
    34 result = cursor.fetchmany(2)      #获取指定行数  一般不用,而在sql语句中限定行数
    35 print(result)
    36 cursor.close()
    37 conn.close()
    38 
    39 
    40 #获取新插入数据的自增id       cursor.lastrowid
    41 # 当为一张表插入一行数据时,并不知道它的自增id是多少,那么在对他的相关联的表(外键)进行插入操作时可以使用lastrowid查看id
    42 import pymysql
    43 
    44 conn = pymysql.connect(host="localhost",user='root',password='123',database="db1")
    45 cursor = conn.cursor()
    46 sql = "insert into userinfo4(username,password) values('asdfasdf','123123')"
    47 cursor.execute(sql)
    48 conn.commit()
    49 print(cursor.lastrowid)
    50 cursor.close()
    51 conn.close()

    sql注入:

     1 import pymysql
     2 name= input('用户名')
     3 passwd=input('密码')
     4 conn =pymysql.connect(host='localhost',user='root',password='123',database='db1',charset='utf8')
     5 cursor=conn.cursor()
     6 
     7 cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)   #设置返回的数据的格式为字典
     8 
     9 
    10 sql='select * from userinfo4 where username="%s" and password="%s"'%(name,passwd)
    11 
    12 #sql='select * from userinfo4 where username="alex" -- " and password="%s"'%(name,passwd)
    13 
    14 cursor.execute(sql)
    15 result =cursor.fetchone()
    16 
    17 cursor.close()
    18 conn.close()
    19 
    20 if result:
    21     print('yes!')
    22 else:
    23     print('no')
    View Code

    Navicat(客户端)
    创建表
    新建查询
    转储sql文件

    数据备份:
    备份数据和表结构
    mysqldump -u root db1 > db1.sql -p 当前目录下
    备份表结构
    mysqldump -u root -d db1 > db1.sql -p
    导入数据库:
    create databases db5;
    mysql -u root -d db5 < db1.sql -p
  • 相关阅读:
    hdu 2822 Dogs (BFS+优先队列)
    hdu 2757 Ocean Currents(BFS+DFS)
    hdu2844 Coins(普通的多重背包 + 二进制优化)
    hdu1495 && pku3414
    hdu1054 Strategic Game(树形DP)
    FckEditor V2.6 fckconfig.js中文注释
    数字文本控件
    统计在线用户列表 for .net WebForm
    智能客户端
    模拟Confirm的Web自定义控件
  • 原文地址:https://www.cnblogs.com/liuguniang/p/7044367.html
Copyright © 2020-2023  润新知