-
打开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()