龙空技术网

python3连接MySQL数据库,并执行数据库的基本增删改查操作

一口芝士焗 407

前言:

此刻同学们对“pythonmysql结果集”大体比较讲究,你们都需要知道一些“pythonmysql结果集”的相关内容。那么小编同时在网上汇集了一些有关“pythonmysql结果集””的相关内容,希望朋友们能喜欢,小伙伴们快快来了解一下吧!

python3连接MySQL数据库我们需要安装pymysql

pip install pymysql

安装好后直接import pymysql就可以导入第三方库

连接数据库

conn = pymysql.connect(    host="localhost",  # 指示host表明是本地MySQL还是远程    user="root",  # 用户名    password="root",  # 密码    db="db4",  # 要连接的数据库名    charset="utf8mb4",  # 指定字符集,可以解决中文乱码    cursorclass=pymysql.cursors.DictCursor  # 固定写法,类似于jdbc里边的加载驱动)

数据库增删改查(简单写法) 在连接了数据库之后我们就要进行数据库的增删改查

"""查"""sql = "select * from user"cursor = conn.cursor()  # 创建一个名为cursor的指针对象result = cursor.execute(sql)  # 执行查询操作,返回的result是受影响的行数data = cursor.fetchone()  #该方法是获取数据库结果的第一条数据,用元祖表示,若没有则是null (在python中用None表示)datas = cursor.fetchall()  # 该方法得到查询的所有结果,用元祖表示出来# 进行数据处理,数据处理完就可以关闭指针和链接curosr.close()conn.close()'''如果sql语句中有可变的参数可以进行一下方式的处理'''sql = "select * from user where id = %s" % 23  # python的字符串处理'''不过这种处理方式容易产生sql注入问题execute()这个方法其实留有参数的位置,execute(sql语句, 参数位置)所以我们可以写作如下'''sql = "select * from user where id = %s and username = %s"cursor = conn.cursor()result = cursor.execute(sql, (12, 'zhangsan'))# 这样就可以有效防止sql注入,或者我们也可以写做如下sql = cursor.mogrify(select * from user where id = %s and username=%s, (12, 'zhangsan'))cursor = conn.cursor()result = cursor.execute(sql)
"""增"""conn = pymysql.connect(    host="localhost",    user="root",    password="root",    db="db4",     charset="utf8mb4",    cursorclass=pymysql.cursors.DictCursor)cursor = conn.cursor()sql = "insert into user (username, password) values(%s, %s)"result = cursor.execute(sql, ("zhangsan", "123456"))conn.commit()  ''' 注意这里要提交事务,才可以插入成功 '''cursor.close()conn.close()'''值得一提的是。pymysql还提供了executemany()这个神奇的方法,可以一次插入很多条数据''''''如下所示'''sql = "insert into user (username, password) values(%s, %s)"params = [('zhanshen','123'), ('lemon', '123'), ('wangsi', '1234')]result = cursor.executemany(sql, params)cursor.close()conn.close()'''这里的params可以是一个大列表,里边是一个个的元祖参数,或者也可以是一个大元祖,里边是元祖参数'''params = cursor.
"""改"""conn = pymysql.connect(    host="localhost",    user="root",    password="root",    db="db4",     charset="utf8mb4",    cursorclass=pymysql.cursors.DictCursor)cursor = conn.cursor()sql = "update user set password = %s where username = %s"result = cursor.execute(sql, ("zhangsan", "123456"))conn.commit()  cursor.close()conn.close()''' 这里并没有什么特别需要注意的,和insert方法一样,删也是一个道理(偷懒省去,滑稽) '''

下面我们可以用with as来改善代码

```python conn = pymysql.connect( host="localhost", user="root", password="root", db="db4", charset="utf8mb4", cursorclass=pymysql.cursors.DictCursor )

try: with conn.cursor() as cursor: sql = "select * from user" result = cursor.execute(sql) print(result)

with conn.cursor() as cursor:    sql = "insert into user (username, password) values (%s, %s)"    result = cursor.execute(sql, ('zhanshen', '123'))    conn.commit()

finally: conn.close() '''有木有发现用了with as就可以不用关闭cursor,因为with as会自动帮我们关闭'''

标签: #pythonmysql结果集