码迷,mamicode.com
首页 > 数据库 > 详细

Python mysql

时间:2017-11-21 01:01:55      阅读:149      评论:0      收藏:0      [点我收藏+]

标签: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

标签:python mysql

原文地址:http://dyqd2011.blog.51cto.com/3201444/1983633

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!