Python操做MySQL总结

模块的安装和配置

本人用的是ubuntu系统下虚拟环境的python3,故要先进到虚拟环境再下载pymysql。先用workon查看虚拟环境叫什么?再进入用pip下载。python

进入后输入命令行:pip3 install pymysql,若是提示须要升级pip版本,按照其指定命令输入便可。若是你用的是ubuntu下的python,就不须要进入虚拟环境就能够直接pip安装。mysql

安装完成后,在cd到下图的指定文件下,使用sudo打开文件输入密码,最后修改指定部分。sql

将bind-address的127.0.0.1改成0.0.0.0,IP地址127.0.0.1是只有本地才能链接,0.0.0.0是全部的ip都能访问。数据库

python操做MySQL

首先导包ubuntu

import pymysql

再创建和数据库的链接,配置pymysql.connect链接数据库。mysql的端口号是3306.fetch

con = pymysql.connect(
host = '127.0.0.1',
port = 3306,
user = 'wanglong',
password = '12580',
db = 'mydb', #数据库名
charset = 'utf8')

再定义游标,以后利用python操做数据库的语句都是基于这个游标。命令行

cur = con.cursor()

利用execute执行MySQL语句3d

a = cur.execute('show tables')
print (a)

上面的结果是6,返回的表格的数目。进入数据库执行相应语句效果以下:code

若是想输出上图的具体数据,就要用fetchone或fetchall来提取数据。blog

cur.execute('show tables')
d = cur.fetchone()
f = cur.fetchall()
print (d)
print (*f)#拆包
('choose',)
('col',) ('course',) ('stu',) ('stu_for',) ('test',)

能够发现,再取出全部数据时,其第一条数据并无取出,缘由是在取出全部数据前实行了取出一条数据的命令。

我还能够建一张新表,以下所示:

tb = '''
create table test(
id int primary key auto_increment,
name varchar(20)
)
'''
cur.execute(tb)

须要注意的是,当咱们利用execute语句执行mysql的插入、删除、更新时,它会自定开启一个事务,故若是不提交这个事务而运行,底层数据不会有任何改变。提交事务有两种方法,一种是原始的mysql语句,一种是pymysql模块内的方法。

cur.exectue('commit')
con.commit()

最后要注意的是,在全部操做完成以后要先关闭游标,再关闭链接。

cur.close()
con.close()
相关文章
相关标签/搜索