什么是 pyMySQL ?
pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。
适用环境(官方指定)
python版本:
CPython >= 2.6 or >= 3.3
PyPy >= 4.0
IronPython 2.7
mysql版本:
MySQL >= 4.1 (tested with only 5.5~)
MariaDB >= 5.1
使用PIP进行安装
pip install PyMySQL
实例说明
1.安装
D:\>python --version
Python 3.5.0
D:\>pip -V
pip 9.0.1 from c:\program files\python 3.5\lib\site-packages (python 3.5)
D:\>pip install --upgrade PyMySQL
D:\>pip list --format columns
Package Version
---------- -------
pip 9.0.1
PyMySQL 0.7.9
2.连接数据库
*##创建数据库连接*
mysql> select version();
+------------+
| version() |
+------------+
| 5.6.32-log |
+------------+
mysql> create database python;
mysql> grant all privileges on python.* to python@'%' identified by 'python123';
mysql> flush privileges;
D:\>mysql -upython -ppython123 -h192.168.2.2 -e "select 1"
+---+
| 1 |
+---+
| 1 |
+---+
*##连接并创建测试表*
>>> import pymysql
>>> conn_mysql = pymysql.connect(host='192.168.2.2', --数据库服务器IP地址
... port=3306, --数据库服务器端口号
... user='python', --数据库用户名
... passwd='python123', --数据库用户密码
... db='python', --数据库名称
... charset='utf8') --数据库连接语言编码
>>> cursor = conn_mysql.cursor() --创建游标
>>> cursor.execute( --执行一个数据库命令
"create table py_tab(id tinyint auto_increment primary key,name varchar(10))"
)
>>> my_cur.close(); --关闭游标,释放资源
这里,简单说明一下
connection对象支持的方法
cursor() 使用该连接创建并返回游标
commit() 提交当前事务
rollback() 回滚当前事务
close() 关闭连接
cursor对象支持的方法
execute("your sql_text") 执行一个数据库的查询命令
fetchone() 取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall() 获取结果集中的所有行
rowcount() 返回数据条数或影响行数
close() 关闭游标对象
进阶测试
1.查询
import pymysql
my_conn = pymysql.connect(
host = '192.168.2.2',
port = 3306,
user = 'python',
passwd = 'python123',
db = 'python',
charset = 'utf8');
my_cur = my_conn.cursor();
my_cur.execute("select * from python.py_tab;")
print()
for row in my_cur:
print(row)
my_cur.close()
my_conn.close()
2.插入
import pymysql
my_conn = pymysql.connect(
host = '192.168.2.2',
port = 3306,
user = 'python',
passwd = 'python123',
db = 'python',
charset = 'utf8');
my_cur = my_conn.cursor();
sql = "insert into py_tab(name) values ('%s')"
names = input("请输入要插入的人名:")
my_cur.execute(sql % names)
my_conn.commit()
print(names,'已成功插入')
my_cur.close()
my_conn.close()
3.删除
import pymysql
my_conn = pymysql.connect(
host = '192.168.2.2',
port = 3306,
user = 'python',
passwd = 'python123',
db = 'python',
charset = 'utf8');
my_cur = my_conn.cursor();
sql = "delete from python.py_tab where name = '%s' limit %d"
datas = ('Sara',2)
my_cur.execute(sql % datas)
my_conn.commit()
print('成功删除姓名为',datas[0],'的', my_cur.rowcount, '条数据')
my_cur.close()
my_conn.close()
4.修改
import pymysql
my_conn = pymysql.connect(
host = '192.168.2.2',
port = 3306,
user = 'python',
passwd = 'python123',
db = 'python',
charset = 'utf8');
my_cur = my_conn.cursor();
sql = "update python.py_tab set name = '%s' where name = '%s'"
datas = ('Lily','Chuck')
my_cur.execute(sql % datas)
my_conn.commit()
print('成功匹配并修改了', my_cur.rowcount, '条数据')
my_cur.close()
my_conn.close()