【MySQL】Pymysql连接mysql

  1. 打开pycharm 首先需要先安装pymysql库,安装方法可以使用pip install pymysql

  2. 然后调用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()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bug 挖掘机

支持洋子

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值