zoukankan      html  css  js  c++  java
  • Pycharm 操作数据库

     view--->Tool Buttons,点击Pycharm右侧的Database

    1、连接数据库

      

     

       2、建立一个表,添加数据

     

      通过以上操作把用户名和密码储存到了数据库中

     3、连接登录数据库

    连接数据库

    # 1. 连接数据库
    conn = pymysql.connect(
        host="localhost",
        port=3306,  # 端口号是数字类型
        database="userinfo",  # 写自己本地的数据库名字
        user="root",
        password="3822515",
        charset="utf8"   # 千万记得没有-
    )
    cursor = conn.cursor()  # 获取输入SQL语句的光标对象
    sql = "select * from info;"
    ret = cursor.execute(sql)
    print(ret)
    # 关闭连接
    cursor.close()
    conn.close()
    import pymysql
    
    username = input("输入用户名:")
    pwd = input("请输入密码:")
    
    # if username == "erge" and pwd == "dashabi":
    #     print("登陆成功!")
    # else:
    #     print("滚~")
    
    # 拿到用户输入的用户名密码
    
    # 去数据库里面判断用户名和密码是否正确
    # 1. 连接数据库
    conn = pymysql.connect(
        host="localhost",
        port=3306,  # 端口号是数字类型
        database="userinfo",  # 写自己本地的数据库名字
        user="root",
        password="3822515",
        charset="utf8"   # 千万记得没有-
    )
    cursor = conn.cursor()  # 获取输入SQL语句的光标对象
    sql = "select * from info;"
    ret = cursor.execute(sql)
    print(ret)
    # 关闭连接
    cursor.close()
    conn.close()
    
    
    # 2. 判断 --> 只需要把检索条件写到sql语句中,去数据库执行就可以了
    
    # with open("userinfo.txt", "r", encoding="utf-8") as f:
    #     for line in f:
    #         # print(line.strip())
    #         u, p = line.strip().split("|")
    #         if u == username and p == pwd:
    #             print("登陆成功!")
    #             break
    #     else:
    #         print("go out~")
    Python连接数据库登录
    import pymysql
    
    # 获取用户输入
    username = input("输入用户名:")
    pwd = input("请输入密码:")
    
    # 连接数据库检索有没有该用户
    conn = pymysql.connect(
        host="localhost",
        port=3306,
        database="userinfo",
        user="root",
        password="3822515",
        charset="utf8"
    )
    cursor = conn.cursor()  # 获取光标
    # 拼接要执行的SQL语句
    sql = "select * from info where username='%s' and password='%s'" % (username, pwd)
    print(sql)
    print("=" * 120)
    # 执行SQL语句
    ret = cursor.execute(sql)
    if ret:
        print("登录成功")
    else:
        print("登录失败!")
    # 关闭光标对像
    cursor.close()
    # 关闭连接
    conn.close()
    登录校验MySQL

    登录校验MySQL--规避SQL注入

    import pymysql
    
    # 获取用户输入
    username = input("输入用户名:")
    pwd = input("请输入密码:")
    
    # 连接数据库检索有没有该用户
    conn = pymysql.connect(
        host="localhost",
        port=3306,
        database="userinfo",
        user="root",
        password="3822515",
        charset="utf8"
    )
    cursor = conn.cursor()  # 获取光标
    # 拼接要执行的SQL语句
    sql = 'select * from info where username=%s and password=%s'
    print(sql)
    print("=" * 120)
    # 执行SQL语句
    ret = cursor.execute(sql, [username, pwd])  # 让pymysql帮我们拼接SQL语句
    if ret:
        print("登录成功")
    else:
        print("登录失败!")
    # 关闭光标对像
    cursor.close()
    # 关闭连接
    conn.close()

    4、操作数据库

     增删改查参考

    """
    pymysql增操作
    """
    import pymysql
    
    conn = pymysql.connect(
        host="localhost",
        port=3306,
        database="userinfo",
        user="root",
        password="3822515",
        charset="utf8"
    )
    cursor = conn.cursor()
    
    # 拼接语句
    sql = "insert into info (username, password)VALUES (%s, %s)"
    # 执行
    data=("Ale",1882)
    try:
        cursor.execute(sql, data)
        conn.commit()
    except Exception as e:
        print("报错啦:",str(e))
        conn.rollback()  # 回滚
    # 对数据库做写操作一定要记得提交assword
    
    cursor.close()
    conn.close()
    pymysql增操作
    import pymysql
    
    conn = pymysql.connect(
        host="localhost",
        port=3306,
        database="userinfo",
        user="root",
        password="3822515",
        charset="utf8"
    )
    
    cursor = conn.cursor()
    # 创建班级的sql语句
    sql = "insert into info (username, password) VALUES (%s, %s)"
    
    data = [("alex1", "dashabi"), ("污Sir1","sha"), ("xiaoyima1", "nvshen")]
    try:
        cursor.executemany(sql, data)  # 内部实现for循环,批量执行插入语句
        # for i in data:
        #     cursor.execute(sql, i)
        conn.commit()  # 提交一次
    except Exception as e:
        print("错啦!")
        conn.rollback()
    
    cursor.close()
    conn.close()
    批量插入数据
    import pymysql
    
    conn = pymysql.connect(
        host="localhost",
        port=3306,
        database="userinfo",
        user="root",
        password="3822515",
        charset="utf8"
    )
    cursor = conn.cursor()
    
    # sql = "delete from info WHERE username=%s"
    sql = "delete from info WHERE id=%s"
    
    cursor.execute(sql,8)
    
    conn.commit()
    cursor.close()
    conn.close()
    删除数据操作
    import pymysql
    
    conn = pymysql.connect(
        host="localhost",
        port=3306,
        database="userinfo",
        user="root",
        password="3822515",
        charset="utf8"
    )
    
    cursor = conn.cursor()
    
    sql = "update info set password=%s where username=%s"
    
    cursor.execute(sql,["123456", "Ale"])
    
    conn.commit()
    cursor.close()
    conn.close()
    修改数据操作
    import pymysql
    
    conn = pymysql.connect(
        host="localhost",
        port=3306,
        database="userinfo",
        user="root",
        password="3822515",
        charset="utf8"
    )
    
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 指定返回的数据格式为字典格式
    
    sql = "select * from info"
    
    cursor.execute(sql)  # 返回的不是具体的数据而是受影响的行数
    # ret = cursor.fetchall()  # 返回所有的数据
    # ret = cursor.fetchone()  # 返回第一条的数据
    # print(ret)
    # ret = cursor.fetchone()  # 接着上一条返回一条数据
    # print(ret)
    
    ret = cursor.fetchmany(3)  # 查询具体多少条数据,这里查询前三条数据
    print(ret)
    # cursor.scroll(0, mode="absolute")  # 绝对移动,写多少就是移到多少,这里从第1条数据开始查
    cursor.scroll(-1, mode="relative")   #相对移动,这里-1表示光标往前移动数据到第2条数据,从第3条数据开始查
    ret = cursor.fetchall()
    print(ret)
    cursor.close()
    conn.close()
    查询数据操作
    import pymysql
    
    conn = pymysql.connect(
        host="localhost",
        port=3306,
        database="userinfo",
        user="root",
        password="3822515",
        charset="utf8"
    )
    
    cursor = conn.cursor()
    # 创建班级的sql语句
    sql1 = "insert into class (name) VALUES (%s)"
    # 创建学生的sql语句
    sql2 = "insert into student (name, cid) VALUES (%s, %s)"
    
    
    cursor.execute(sql1, "全栈9期")
    new_id = cursor.lastrowid  # 获取刚插入数据的ID值
    cursor.execute(sql2, ["小东北", new_id])
    
    conn.commit()
    cursor.close()
    conn.close()
    lastrowid作用
  • 相关阅读:
    改造vant日期选择
    css3元素垂直居中
    npm综合
    (转)网页加水印方法
    Mac下IDEA自带MAVEN插件的全局环境配置
    隐藏注册控件窗口
    High performance optimization and acceleration for randomWalk, deepwalk, node2vec (Python)
    How to add conda env into jupyter notebook installed by pip
    The Power of WordNet and How to Use It in Python
    背单词app测评,2018年
  • 原文地址:https://www.cnblogs.com/zh-xiaoyuan/p/12731244.html
Copyright © 2011-2022 走看看