Python|Python之MySQL数据库增删改查操作

Python|Python之MySQL数据库增删改查操作
文章图片

Python|Python之MySQL数据库增删改查操作
文章图片

一.在pycharm2017 上实现python3.6与mysql数据库的连接
与其他的IDE不同,pycharm不需要额外下载mydqldb包等,pycharm里可以自动安装pymysql,功能与下载的mydqldb是一样的。
安装pycharm自带的pymysql
首先打开pycharm里的设置 settings->project->project Interpreter->双击击右面的pip-->在搜索框里输入pymysql-->然后选中版本点击install package,等一会提示successful就行了
Python|Python之MySQL数据库增删改查操作
文章图片


Python|Python之MySQL数据库增删改查操作
文章图片


Python|Python之MySQL数据库增删改查操作
文章图片

安装的过程中可能会出现"ImportError: No module named setuptools"的错误提示,可以先在上面输入框中查找安装setuptools在安装PyMySQL3
Python|Python之MySQL数据库增删改查操作
文章图片

数据库 MYSQLa
Python|Python之MySQL数据库增删改查操作
文章图片

Python|Python之MySQL数据库增删改查操作
文章图片

1.Python之连接数据库

import pymysql# 获取连接对象conn,建立数据库的连接 def get_conn(): conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='school') # db:表示数据库名称 #进行连接数据库服务端(host 访问服务端的ip,user 访问服务端的用户,password访问服务端的用户密码,database 访问服务端的数据库,charset 访问时采用的编码方式) return conn

2.Python之插入操作
import pymysqldef get_conn(): conn = pymysql.connect(host='localhost',port=3306, user='root', passwd='root', db='school')# db:表示数据库名称 return conndef insert(sql): conn = get_conn() cur = conn.cursor() result = cur.execute(sql) print(result) conn.commit() cur.close() conn.close()if __name__ == '__main__': sql = "INSERT INTO student VALUES('120','zhang','12'); " insert(sql)

Python|Python之MySQL数据库增删改查操作
文章图片

在写sql语句的时候,需要避免直接写sql语句,而是采用占位符的方式来,防止sql的注入。
  • sql占位符形式实现
def insert(sql, args): conn = get_conn() cur = conn.cursor() result = cur.execute(sql, args) print(result) conn.commit() cur.close() conn.close()# 在写sql语句的时候,需要避免直接写sql语句,而是采用占位符的方式来,防止sql的注入。 # sql占位符形式实现 if __name__ == '__main__': sql = 'INSERT INTO student VALUES(%s,%s,%s); ' insert(sql, ('2', 'wang', '10'))

Python|Python之MySQL数据库增删改查操作
文章图片

下面代码均以占位符的形式实现sql语句。
  • 插入多条语句实现
import pymysqldef get_conn(): conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='school') return conndef insert_many(sql, args): conn = get_conn() cur = conn.cursor() result = cur.executemany(query=sql, args=args) print(result) conn.commit() cur.close() conn.close()if __name__ == '__main__': sql = 'insert into student VALUES (%s,%s,%s)' args = [('003', 'li', '11'), ('004', 'sun', '12'), ('005', 'zhao', '13')] insert_many(sql=sql, args=args)

  • Python|Python之MySQL数据库增删改查操作
    文章图片
import pymysql conn=pymysql.connect(host='localhost',user='root',password='root',database='school') ## 连接mysql数据库并创建句柄 (host连接的机器,user连接的用户,password连接的密=密码,database连接的数据库 ) coursor=conn.cursor() ##创建游标 ste=coursor.execute('insert into student(Sno,Sname,Ssex) VALUES (000,212,11)') ##通过游标执行SQL命令语句 conn.commit() ##进行提交(在对数据库中的内容进行修改时,需要进行提交内容方可进行保存) coursor.close() ##关闭游标执行操作 conn.close() ##断开连接

Python|Python之MySQL数据库增删改查操作
文章图片

【Python|Python之MySQL数据库增删改查操作】3.Python之更新操作
import pymysqldef get_conn(): conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='school')# db:表示数据库名称 return conndef update(sql,args): conn = get_conn() cur = conn.cursor() result = cur.execute(sql,args) print(result) conn.commit() cur.close() conn.close()if __name__ == '__main__': sql = 'UPDATE student SET Sname=%s WHERE Sno = %s; ' args = ('wangprince', '2') update(sql, args)

Python|Python之MySQL数据库增删改查操作
文章图片
Python|Python之MySQL数据库增删改查操作
文章图片

4.Python之删除操作
import pymysqldef get_conn(): conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='school')# db:表示数据库名称 return conndef delete(sql,args): conn = get_conn() cur = conn.cursor() result = cur.execute(sql,args) print(result) conn.commit() cur.close() conn.close()if __name__ == '__main__': sql = 'DELETE FROM student WHERE Sno = %s; ' args = ('2',) # 单个元素的tuple写法 delete(sql,args)

Python|Python之MySQL数据库增删改查操作
文章图片
Python|Python之MySQL数据库增删改查操作
文章图片

5.Python之查询操作
import pymysqldef get_conn(): conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='school') return conndef query(sql,args): conn = get_conn() cur = conn.cursor() cur.execute(sql,args) results = cur.fetchall() print(type(results))# 返回 tuple元组类型for row in results: print(row) id = row[0] name = row[1] age = row[2] print('Sno: ' + str(id) + 'Sname: ' + name + 'Ssex: ') passconn.commit() cur.close() conn.close()if __name__ == '__main__': sql = 'SELECT* FROM student; ' query(sql,None)

Python|Python之MySQL数据库增删改查操作
文章图片

附加
一.插入操作
import pymysqlconn = pymysql.connect(host='localhost', port=3306, db='school', user='root', passwd='root', charset='utf8') cur = conn.cursor() sql = "insert into student(Sno,Sname,Ssex) values('100','黄蓉','woman')" cur.execute(sql) conn.commit() cur.close() conn.close()

Python|Python之MySQL数据库增删改查操作
文章图片

二.查询操作
execute方法:执行SQL、将结果从数据为获取到客户端:
Python|Python之MySQL数据库增删改查操作
文章图片

fetch*()方法:移动rownumber,返回数据。
Python|Python之MySQL数据库增删改查操作
文章图片

import pymysqlconn = pymysql.connect(host='localhost', port=3306, db='school', user='root', passwd='root', charset='utf8') cur = conn.cursor() sql = "select Sno,Sname,Ssex from student" cur.execute(sql) # result = cur.fetchone() result = cur.fetchall() for data in result: print(data) cur.close() conn.close()

Python|Python之MySQL数据库增删改查操作
文章图片



    推荐阅读