用Python操作数据库

来源:互联网 发布:国际阿里云购买方法 编辑:程序博客网 时间:2024/05/22 10:40

前言

最近做项目需要通过Python从数据库获取数据,然后将数据进行处理。就此对MySQL数据的相关知识进行简单的整理,主要是Python对MySQL数据库的操作。

MySQL数据库的安装

Windows用户

下载MySQL-python-1.2.3.win-amd64-py2.7文件直接安装就可以。

我的环境:

由于当时自己做过一些PHP网页项目,有个集成php,mysql,Apache等软件的工具叫xampp的软件。我安装的是xampp。Xampp的官网为https://www.apachefriends.org/zh_cn/index.html上边的情况,自己也尝试安装过,没有问题。

Linux环境:

主要针对Ubuntu,学校期间用的主要是Ubuntu。

sudo apt-get install mysql-server

sudo apt-get install  mysql-client

MySQL数据基本操作

Windows下常用的数据库管理工具:Navicat。官网:https://www.navicat.com.cn/  破解软件:http://download.csdn.net/detail/yiluohan0307/9812298

创建数据库

命令:CREATE DATABASE python_test;


删除数据库

命令:DROP DATABASE python_test;


创建数据表


保存后提示输入表名


也可以通过命令行操作:

CREATE TABLE user (

 user_id int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',

 name varchar(255) DEFAULT NULL COMMENT '用户名字',

 scores double DEFAULT NULL COMMENT '用户成绩',

 PRIMARY KEY (`user_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

删除表格

命令:DROP TABLE user2;


插入数据

在Navicat下可以直接插入


命令行方式:INSERT into user (user_id, name, scores) VALUES (5, 'de', 68);

查询数据

命令:SELECT * FROM user;


更改数据

命令:UPDATE user SET name= 'cyf' WHERE user_id=5;


删除数据

命令:DELETE FROM user WHERE user_id=3;


具体详细的用法介绍,可以参考菜鸟教程:http://www.runoob.com/mysql/mysql-tutorial.html

安装Python

去官网下载Python软件

选择安装位置,剩下的直接点下一步即可

 

环境变量配置:

我的电脑》属性》高级系统设置》环境变量》系统变量中的path加入D:\python27\


win+r》cmd

出现如下界面,说明Python环境安装完成


 

安装MySQL-Python

Windows下的安装过程MySQL-python-1.2.3.win-amd64-py2.7.exe。注意此版本对应的Python版本为2.7。先安装python然后直接安装即可。

Python下的MySQL操作

Python下对数据库的操作流程如下:

操作主要是在execute执行的sql不同

#coding=utf-8'''Created on 2017年4月12日@author: cyf@description: python mysql 数据库的操作'''import MySQLdb as mdbfrom numpy import *def select():    #与数据库建立连接    conn=mdb.connect(host='localhost',user='root',passwd='123456',port=3306,db='python_test',charset='utf8')    #创建游标    cur = conn.cursor()    #sql语句    sql = 'select * from user'    #执行    numOfLines = cur.execute(sql)    #获取所有数据    rows = cur.fetchall()            for row in rows:print row           conn.commit()    cur.close()    conn.close()def insert():    #与数据库建立连接    conn=mdb.connect(host='localhost',user='root',passwd='123456',port=3306,db='python_test',charset='utf8')    #创建游标    cur = conn.cursor()    #sql语句    sql = 'insert into user values(%s,%s,%s)'    #插入一条数据    #numOfLines = cur.execute(sql,('6', 'hhh', '88'))    #插入多条数据    cur.executemany(sql,[('7', 'g', '88'),                         ('8', 'cd', '44'),                         ('9', 'dir', '56'),                         ('10', 'sd', '78')                         ])    conn.commit()    cur.close()    conn.close()    print '插入成功'if __name__ == '__main__':    select()insert()


下面是一些常用的方法:

executemany()方法可以一次插入多条值。

callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
nextset(self):移动到下一个结果集

fetchmany(self, size=None)方法可以获得多条数据,但需要指定数据的条数。

fetchone()方法可以帮助我们获得表中的数据,可是每次执行cur.fetchone() 获得的数据都不一样,换句话说我没执行一次,游标会从表中的第一条数据移动到下一条数据的位置,所以,我再次执行的时候得到的是第二条数据。

scroll(0,'absolute') 方法可以将游标定位到表中的第一条数据。

 

参考资料:

http://www.cnblogs.com/rollenholt/archive/2012/05/29/2524327.html

http://www.cnblogs.com/fnng/p/3565912.html

在此感谢前辈的整理。

0 0
原创粉丝点击