当前位置 : 主页 > 编程语言 > java >

【MySQL】Pymysql连接mysql

来源:互联网 收集:自由互联 发布时间:2022-06-30
打开pycharm 首先需要先安装pymysql库,安装方法可以使用​​pip install pymysql​​ 然后调用pymysql库中的​​connect​​函数进行数据库的连接 conn = pymysql.connect(host="localhost",user='root',passwo
  • 打开pycharm 首先需要先安装pymysql库,安装方法可以使用​​pip install pymysql​​
  • 然后调用pymysql库中的​​connect​​函数进行数据库的连接
  • conn = pymysql.connect(host="localhost",user='root',password='12345678',database="db2", charset='utf8')

    对于connect函数的参数说明,host是主机名,user与password对应系统数据库的用户名与密码,database是数据库的名字,charset设置utf8编码才可以显示出数据库中的中文

    3.连接好后创建​​cursor​​来进一步操作数据库

    cursor = conn.cursor()

    4 写SQL语句对数据库进行操作,并对已经创建好的​​cursor​​​对象执行​​execute​​​函数使SQL生效,cursor对象还可以执行​​fetchone()​​拿到查询的结果,fetchone只拿查询的第一条数据

    user = input("username:")
    pwd = input("password:")

    conn = pymysql.connect(host="localhost",user='root',password='12345678',database="db2")
    cursor = conn.cursor()
    # cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) #以字典形式返回查询结果
    sql = "select * from userinfo where username= %s and password= %s"
    #cursor.execute(sql,user)
    cursor.execute(sql,[user,pwd]) #格式化字符串有多个参数可以用列表形式,参数写在这里是为了防止SQL注入

    # sql = "select * from userinfo where username= %(u)s and password= %(p)s"
    # cursor.execute(sql,{'u':user,'p':pwd}) #格式化字符串有多个参数也可以用字典形式

    result = cursor.fetchone() #返回查询的第一条数据
    # result = cursor.fetchmany(4) #返回查询的4条数据
    # result = cursor.fetchall() #返回查询的所有数据

    cursor.close()
    conn.close()
    if result:
    print('登录成功')
    else:
    print('登录失败')

    注意上面每调用​​cursor. fetchone()​​都会改变,查询数据的位置,可以用scroll函数移动指针位置

    # cursor.scroll(1,mode='relative') # 相对当前指针位置移动
    # cursor.scroll(2,mode='absolute') # 相对绝对指针位置移动

    5 上述代码属于查询数据库的数据,对于增加数据,删除数据,修改数据的情况,还需要使用​​commit()​​修改的数据才生效

    插入数据的例子,插入1条或同时插入多条

    user = input("username:")
    pwd = input("password:")

    # 可增加,删,改

    # 插入1条数据
    # conn = pymysql.connect(host="localhost",user='root',password='',database="db666")
    # cursor = conn.cursor()
    # sql = "insert into userinfo(username,password) values('root','123123')"
    # 受影响的行数为1行
    # r = cursor.execute(sql)

    # conn.commit() #修改数据库后,要进行注册修改数据才生效
    # cursor.close()
    # conn.close()

    # 插入1条数据
    # conn = pymysql.connect(host="localhost",user='root',password='',database="db666")
    # cursor = conn.cursor()
    # sql = "insert into userinfo(username,password) values(%s,%s)"
    # cursor.execute(sql,(user,pwd,))

    #1次插入多条数据
    # sql = "insert into userinfo(username,password) values(%s,%s)"
    # 受影响的行数为两行
    # r = cursor.executemany(sql,[('egon','sb'),('laoyao','BS')])

    # conn.commit() #修改数据库后,要进行注册修改数据才生效
    # cursor.close()
    # conn.close()

    6 将数据表中含自增id的列,对于新插入的数据不知道自增id时,可以使用​​cursor.lastrowid​​进行查询

    import pymysql

    conn = pymysql.connect(host="localhost",user='root',password='',database="db666")
    cursor = conn.cursor()
    sql = "insert into userinfo(username,password) values('asdfasdf','123123')"
    cursor.execute(sql)
    conn.commit()
    print(cursor.lastrowid) #查询插入数据的自增id
    cursor.close()
    conn.close()


    【本文来源:美国服务器 https://www.68idc.cn 复制请保留原URL】
    上一篇:【MySQL】唯一索引,加SQL操作补充
    下一篇:没有了
    网友评论