zoukankan      html  css  js  c++  java
  • MySQL py模块的链接Navicat可视化工具

     数据库可视化工具Navicat

     1 基本操作:

      1 库 表 字段 记录(增删改查)

      2 添加主建,添加自增。

      3 添加外键,外键的链接

      4 模型建表,模型添加外键。(逆向数据库到模型,运行SQL文件导入SQL数据,导入时注意字符编码)

      5 新建查询,美化SQL语句。注释方法于pycharm相同。

    Pymysql 模块的使用

     1 下载安装pymsql模块。

     2 基本参数配置

    conn=pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user='root',
        password='123',
        database='day41',
        charset='utf8'
    )
    cursor=conn.cursor(pymysql.cursors.DictCursor)   # 将查询的结果做成字典格式。
    res=cursor.execute('select * from course')  # 执行sql语句,返回查询到的数据条数。
    print(cursor.fetchone()) # 获取一条查询结果,
    print(cursor.fetchone()) # 在上次fetchone的基础上,再获取一条查询结果,
    # cursor.scroll(1,'relative') # 移动光标,相对移动,相对上一条向后移动一个数据位置。
    cursor.scroll(0,'absolute') # 移动光标,绝对移动,从第一天数据开始计数。
    print(cursor.fetchall()) # 获取所有查询到的数据。

     3 校验账户及密码

    import pymysql
    
    conn=pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user='root',
        password='123',
        database='day41',
        charset='utf8',
        autocommit = True # 及时更新到数据库
    )
    cursor=conn.cursor(pymysql.cursors.DictCursor)
    while True:
        name=input('username>>:')
        password=input('password>>:')
        # sql='insert into userinfo(name,pwd) values (%s,%s)'
        sql='select * from userinfo where name=%s and pwd=%s'
        res=cursor.execute(sql,(name,password)) # 模块语法,将sql语句及字段交给执行,它来拼接字符串,避免查询漏洞。
        conn.commit() # 确认数据无误之后 commit之后才会将数据真正修改到数据库
        if res:
            print('验证成功')
        else:
            print('用户名或密码错误!')

      4 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 >>>: ''

    5 增删改

    #
    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,[(),(),()]
  • 相关阅读:
    杭电ACM1.1.4
    杭电ACM1.2.1 Elevator
    杭电ACM1.2.3 QuickSum
    杭电ACM1.2.5 Balloon Comes!
    ProxySQL 读写分离实践
    MySQL 5.7 新特性之初始化
    MySQL高可用架构之MHA 原理与实践
    CentOS 7 快速初始化脚本 for MySQL
    基于Mysql 5.7 GTID 搭建双主Keepalived 高可用
    MySQL 5.7 新特性之增强半同步复制
  • 原文地址:https://www.cnblogs.com/guanchao/p/10877655.html
Copyright © 2011-2022 走看看