Python mysql
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python mysql相关的知识,希望对你有一定的参考价值。
要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块。下载地址:https://pypi.python.org/pypi/MySQL-python/,可以根据不同的平台下载不同的版本。这里以Windows平台为例,资源地址是:https://pypi.python.org/packages/27/06/596ae3afeefc0cda5840036c42920222cb8136c101ec0f453f2e36df12a0/MySQL-python-1.2.5.win32-py2.7.exe#md5=6f43f42516ea26e79cfb100af69a925e;Linux平台需下载源码zip包,下载MySQL-python-1.2.5.zip 文件之后直接解压。进入MySQL-python-1.2.5目录:
>>python setup.py install
安装完成后,通过cmd验证:
Python 2.7.5 (default, Nov 20 2017, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> help()
help> MySQLdb
Help on package MySQLdb:
NAME
MySQLdb - MySQLdb - A DB API v2.0 compatible interface to MySQL.
>>> import MySQLdb
没有报错提示MySQLdb模块找不到,说明安装OK ,下面开始使用python 操作数据库之前,我们有必要来回顾一下mysql的基本操作:
mysql -u root -p (有密码时)
mysql -u root (无密码时)
// 查看当前所有的数据库
mysql> show databases;
//作用与test数据库或切换数据库
mysql> use test;
//查看test库下面的表
mysql> show tables;
//创建user表,name 和password 两个字段
mysql> create table user (name VARCHAR(20),password VARCHAR(20));
//向user表内插入若干条数据
mysql> insert into user values(‘Tom‘,‘1321‘);
//查看user表的数据
mysql> select * from user;
//删除name 等于Jack的数据
mysql> delete from user where name = ‘Jack‘;
//修改name等于Alen 的password 为 1111
mysql> update user set password=‘1111‘ where name = ‘Alen‘;
接下来就来举例看下python是如何操作mysql的:
import MySQLdb
conn= MySQLdb.connect(
host=‘localhost‘,
port = 3306,
user=‘root‘,
passwd=‘123456‘,
db =‘test‘,
)
cur = conn.cursor()
#创建数据表
#cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")
#插入一条数据
#cur.execute("insert into student values(‘2‘,‘Tom‘,‘3 year 2 class‘,‘9‘)")
#一次插入多条记录
sqli="insert into student values(%s,%s,%s,%s)"
cur.executemany(sqli,[
(‘3‘,‘Tom‘,‘1 year 1 class‘,‘6‘),
(‘3‘,‘Jack‘,‘2 year 1 class‘,‘7‘),
(‘3‘,‘Yaheng‘,‘2 year 2 class‘,‘7‘),
])
#修改查询条件的数据
#cur.execute("update student set class=‘3 year 1 class‘ where name = ‘Tom‘")
#删除查询条件的数据
#cur.execute("delete from student where age=‘9‘")
#获取表中数据
cur.fetchone()
#获取第一条数据
cur.scroll(0,‘absolute‘)
#打印表中的多少数据
info = cur.fetchmany(aa)
for ii in info:
print ii
cur.close()
conn.commit()
conn.close()
conn = MySQLdb.connect(host=‘localhost‘,port = 3306,user=‘root‘, passwd=‘123456‘,db =‘test‘)
connect() 方法用于创建数据库的连接,里面可以指定参数:用户名,密码,主机等信息。这只是连接到了数据库,要想操作数据库需要创建游标。
cur = conn.cursor()
通过获取到的数据库连接conn下的cursor()方法来创建游标。
cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")
通过游标cur 操作execute()方法可以写入纯sql语句。通过execute()方法中写如sql语句来对数据进行操作。
cur.close() 关闭游标
conn.commit() 方法在提交事物,在向数据库插入一条数据时必须要有这个方法,否则数据不会被真正的插入。
conn.close() 关闭数据库连接
executemany() 方法可以一次插入多条值,执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数。
fetchone() 方法可以帮助我们获得表中的数据,可是每次执行cur.fetchone() 获得的数据都不一样,换句话说我没执行一次,游标会从表中的第一条数据移动到下一条数据的位置,所以,我再次执行的时候得到的是第二条数据。
scroll(0,‘absolute‘) 方法可以将游标定位到表中的第一条数据。
fetchmany()方法可以获得多条数据,但需要指定数据的条数,通过一个for循环就可以把多条数据打印出。
本文出自 “DreamScape” 博客,请务必保留此出处http://dyqd2011.blog.51cto.com/3201444/1983633
以上是关于Python mysql的主要内容,如果未能解决你的问题,请参考以下文章