千家信息网

Python操作使用MySQL数据库方法

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,下面一起来了解下Python操作使用MySQL数据库方法,相信大家看完肯定会受益匪浅,文字在精不在多,希望Python操作使用MySQL数据库方法这篇短内容是你想要的。一,安装mysql如果是wind
千家信息网最后更新 2024年09月22日Python操作使用MySQL数据库方法

下面一起来了解下Python操作使用MySQL数据库方法,相信大家看完肯定会受益匪浅,文字在精不在多,希望Python操作使用MySQL数据库方法这篇短内容是你想要的。

一,安装mysql

如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可。

Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的linux 仓库中都会有mysql ,我们只需要通过一个命令就可以下载安装:

Ubuntu\deepin

>>sudo apt-get install mysql-server

>>Sudo apt-get install mysql-client

centOS/redhat

>>yum install mysql

二,安装MySQL-python

要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块。

下载地址:https://pypi.python.org/pypi/MySQL-python/

下载MySQL-python-1.2.5.zip 文件之后直接解压。进入MySQL-python-1.2.5目录:

>>python setup.py install

三,测试

测试非常简单,检查MySQLdb 模块是否可以正常导入。

fnngj@fnngj-H24X:~/pyse$ python Python 2.7.4 (default, Sep 26 2013, 03:20:56) [GCC 4.7.3] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import MySQLdb

没有报错提示MySQLdb模块找不到,说明安装OK ,下面开始使用python 操作数据库之前,我们有必要来回顾一下mysql的基本操作:

四,mysql 的基本操作

$ mysql -u root -p (有密码时)

$ mysql -u root (无密码时)

mysql> show databases; // 查看当前所有的数据库

+--------------------+| Database           |+--------------------+| information_schema || csvt               || csvt04             || mysql              || performance_schema || test               |+--------------------+6 rows in set (0.18 sec)mysql> use test;   //作用与test数据库Database changedmysql> show tables;   //查看test库下面的表Empty set (0.00 sec)//创建user表,name 和password 两个字段mysql> CREATE  TABLE  user (name VARCHAR(20),password VARCHAR(20));  Query OK, 0 rows affected (0.27 sec)//向user表内插入若干条数据mysql> insert into user values('Tom','1321');Query OK, 1 row affected (0.05 sec)mysql> insert into user values('Alen','7875');Query OK, 1 row affected (0.08 sec)mysql> insert into user values('Jack','7455');Query OK, 1 row affected (0.04 sec)//查看user表的数据mysql> select * from user;+------+----------+| name | password |+------+----------+| Tom  | 1321     || Alen | 7875     || Jack | 7455     |+------+----------+3 rows in set (0.01 sec)//删除name 等于Jack的数据mysql> delete from user where name = 'Jack';Query OK, 1 rows affected (0.06 sec)//修改name等于Alen 的password 为 1111mysql> update user set password='1111' where name = 'Alen';Query OK, 1 row affected (0.05 sec)Rows matched: 1  Changed: 1  Warnings: 0//查看表内容mysql> select * from user;+--------+----------+| name   | password |+--------+----------+| Tom    | 1321     || Alen   | 1111     |+--------+----------+3 rows in set (0.00 sec)

五,python 操作mysql数据库基础

#coding=utf-8import MySQLdbconn= 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')")#修改查询条件的数据#cur.execute("update student set class='3 year 1 class' where name = 'Tom'")#删除查询条件的数据#cur.execute("delete from student where age='9'")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()

cur.close() 关闭游标

>>>conn.commit()

conn.commit()方法在提交事物,在向数据库插入一条数据时必须要有这个方法,否则数据不会被真正的插入。

>>>conn.close()

Conn.close()关闭数据库连接

六,插入数据

通过上面execute()方法中写入纯的sql语句来插入数据并不方便。如:

>>>cur.execute("insert into student values('2','Tom','3 year 2 class','9')")

我要想插入新的数据,必须要对这条语句中的值做修改。我们可以做如下修改:

#coding=utf-8import MySQLdbconn= MySQLdb.connect(        host='localhost',        port = 3306,        user='root',        passwd='123456',        db ='test',        )cur = conn.cursor()#插入一条数据sqli="insert into student values(%s,%s,%s,%s)"cur.execute(sqli,('3','Huhu','2 year 1 class','7'))cur.close()conn.commit()conn.close() 

假如要一次向数据表中插入多条值呢?

#coding=utf-8import MySQLdb

conn= MySQLdb.connect(        host='localhost',        port = 3306,        user='root',        passwd='123456',        db ='test',        )cur = conn.cursor()#一次插入多条记录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.close()conn.commit()
conn.close()
executemany()方法可以一次插入多条值,执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数。

七,查询数据

也许你已经尝试了在python中通过

>>>cur.execute("select * from student")

来查询数据表中的数据,但它并没有把表中的数据打印出来,有些失望。

来看看这条语句获得的是什么

>>>aa=cur.execute("select * from student")

>>>print aa

5

它获得的只是我们的表中有多少条数据。那怎样才能获得表中的数据呢?进入python shell

>>> import MySQLdb>>> conn = MySQLdb.connect(host='localhost',port = 3306,user='root', passwd='123456',db ='test',)>>> cur = conn.cursor()>>> cur.execute("select * from student")5L

>>> cur.fetchone()(1L, 'Alen', '1 year 2 class', '6')>>> cur.fetchone()(3L, 'Huhu', '2 year 1 class', '7')>>> cur.fetchone()(3L, 'Tom', '1 year 1 class', '6')...>>>cur.scroll(0,'absolute') 

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

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

还是没解决我们想要的结果,如何获得表中的多条数据并打印出来呢?

#coding=utf-8import MySQLdbconn= MySQLdb.connect(        host='localhost',        port = 3306,        user='root',        passwd='123456',        db ='test',        )cur = conn.cursor()#获得表中有多少条数据aa=cur.execute("select * from student")print aa#打印表中的多少数据info = cur.fetchmany(aa)for ii in info:    print iicur.close()conn.commit()conn.close()

  通过之前的print aa 我们知道当前的表中有5条数据,fetchmany()方法可以获得多条数据,但需要指定数据的条数,通过一个for循环就可以把多条数据打印出啦!执行结果如下:

5(1L, 'Alen', '1 year 2 class', '6')

(3L, 'Huhu', '2 year 1 class', '7')(3L, 'Tom', '1 year 1 class', '6')(3L, 'Jack', '2 year 1 class', '7')(3L, 'Yaheng', '2 year 2 class', '7')[Finished in 0.1s]

看完Python操作使用MySQL数据库方法这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。

数据 方法 数据库 多条 游标 语句 查询 内容 参数 密码 数据表 文件 模块 信息 只是 基本操作 更多 条件 用户 结果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全法发行的 计算机网络安全事件包括 网络安全 绘画作品 侧屏服务器 服务器安全管理在哪里设置 魔兽世界太阳之井高地数据库 微信小程序云开发数据库语言 维护数据库后台数据 企业服务器自动关闭程序 深圳水木网络技术有限公司简介 医院网络安全自查摸底总结 网络安全月活动心得体会 自贸区网络安全条例 古代人存储数据库的方法 软件开发需要在哪审核 美国高校计算机网络安全课程 西安众信网络技术 数据库快照信息如何保存 华为软件开发大赛题目 -26154服务器繁忙qq 如何打造一个网络安全体系 成都鲲鹏系列服务器多少钱 硬盘识别不到服务器 我的世界pe自制服务器 乘车码服务器和手机时间差较大 班级内网络安全靠师生活动总结 医院网络安全自查情况报告 mdb数据库如何编辑关系 软件开发项目档案验收意见 本地数据库如何导入数据库
0