文章图片
文章图片
一.在pycharm2017 上实现python3.6与mysql数据库的连接
与其他的IDE不同,pycharm不需要额外下载mydqldb包等,pycharm里可以自动安装pymysql,功能与下载的mydqldb是一样的。
安装pycharm自带的pymysql
首先打开pycharm里的设置 settings->project->project Interpreter->双击击右面的pip-->在搜索框里输入pymysql-->然后选中版本点击install package,等一会提示successful就行了
文章图片
文章图片
文章图片
安装的过程中可能会出现"ImportError: No module named setuptools"的错误提示,可以先在上面输入框中查找安装setuptools在安装PyMySQL3
文章图片
数据库 MYSQLa
文章图片
文章图片
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)
文章图片
在写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'))
文章图片
下面代码均以占位符的形式实现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)
-
文章图片
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数据库增删改查操作】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)
文章图片
文章图片
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)
文章图片
文章图片
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)
文章图片
附加
一.插入操作
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()
文章图片
二.查询操作
execute方法:执行SQL、将结果从数据为获取到客户端:
文章图片
fetch*()方法:移动rownumber,返回数据。
文章图片
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()
文章图片
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- mysql|InnoDB数据页结构
- Python专栏|数据分析的常规流程
- javaweb|基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统
- mysql|一文深入理解mysql
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件