• Navicat/Pytcharm连接MySQL


    Navicat/Pytcharm连接MySQL    >>>思维导图>>>中二青年

    Navicat连接MySQL

    • 测试+链接数据库

    • 新建库

    • 新建表,新增字段+类型+约束

    • 设计表:外键

    • 新建查询

    • 建立表模型

    • 批量加注释:ctrl+?键

    • 批量去注释:ctrl+shift+?键

    Pytcharm连接MySQL

    • 安装pymysql模块

    • 代码连接

    import pymysql
    # 链接
    conn=pymysql.connect(
      host='localhost',
      user='root',
      password='123',
      database='dbname',
      charset='utf8')  # 编码千万不要加- 如果写成了utf-8会直接报错
      autocommit = True  # 这个参数配置完成后  增删改操作都不需要在手动加conn.commit了
    # 游标
    cursor=conn.cursor()  # 执行完毕返回的结果集默认以元组显示
    cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)  
    # 产生一个游标对象  以字典的形式返回查询出来的数据 键是表的字段  值是表的字段对应的信息

    pymysql操作数据库

    user = input(">>>:").strip()
    pwd = input(">>>:").strip()
    sql='select * from userinfo where name="%s" and password="%s"' %(user,pwd)  # 注意%s需要加引号
    rows=cursor.execute(sql)  # 执行sql语句,返回sql查询成功的记录数目
    # 获取真实数据cursor.fetchone(),cursor.fetchall(),cursor.fetchmany(),类似管道取值,获取一条,所有,多条
    print(cursor.fetchone())  # 只获取一条数据
    print(cursor.fetchall())  # 获取所有的数据  返回的结果是一个列表
    cursor.scroll(1,'relative')  # 相对移动 relative相对于当前位置 往后移动几位
    cursor.scroll(3,'absolute')  # 绝对移动 absolute相对于起始位置 往后移动几位
    cursor.close()
    conn.close()

    sql注入问题

    # 不要手动去拼接查询的sql语句
    username = input(">>>:").strip()
    password = input(">>>:").strip()
    sql = "select * from user where username='%s' and password='%s'"%(username,password)
    # 用户名正确
    username >>>: jason' -- jjsakfjjdkjjkjs
    # 用户名密码都不对的情况
    username >>>: xxx' or 1=1 --asdjkdklqwjdjkjasdljad
    password >>>: ''
    """
    sql注入 就是利用注释等具有特殊意义的符号 来完成一些骚操作
    后续写sql语句  不要手动拼接关键性的数据
    而是让excute帮你去做拼接
    """

    增删改

    # 增
    sql = "insert into user(username,password) values(%s,%s)"
    rows = cursor.excute(sql,('jason','123'))
    # 修改
    sql = "update user set username='jasonDSB' where id=1"
    rows = cursor.excute(sql)
    """
    增和改单单执行excute并不会真正影响到数据,需要再执行conn.commit()才可以完成真正的增改
    """
    # 一次插入多行记录
    res = cursor,excutemany(sql,[(),(),()]

    END

  • 相关阅读:
    IndexOf、IndexOfAny 、Remove
    静态类、静态方法的使用
    面向对象 字段、方法、属性
    break、continue、return
    冒泡排序
    方法练习
    Oracle-查看oracle是否有表被锁
    教程-键盘扫描码
    网卡远程唤醒-远程开机再配合远程控制
    远程控制篇:在DELPHI程序中拨号上网
  • 原文地址:https://www.cnblogs.com/renvip/p/11396758.html
Copyright © 2020-2023  润新知