python与数据库编程_Python数据库编程

本教程详细介绍了如何在Windows环境下安装MySQL服务器和Python的MySQL接口,并演示了数据库的创建、表的操作以及Python通过MySQLdb库进行数据的增删查改。通过实例代码展示了如何连接数据库、执行SQL语句以及关闭连接。
摘要由CSDN通过智能技术生成

8a28ae7573264a4d48137115f78b4240.png

Python数据库编程(Win版)

本节课有三部分内容,首先是MySQL服务器的安装和Python访问MySQL接口软件的安装,其次是MySQL数据库服务器的基本使用,最后则是Python编程访问MySQL数据库服务器。

相关数据库软件安装

这一节主要内容是安装MySQL服务器和Python访问MySQL的接口程序。

MySQL服务器的安装

以WindowsXP系统为例讲解在Windows计算机上安装MySQL的过程,这里安装的MySQL数据库文件是 可以从本文提供的 mysql-5.0.27-win32.zip下载地址下载,解压之后就一个文件setup.exe,在解压目录下双击此文件即开始MySQL-Server的安装过程。

0c72a1de7422b70a9f5931f081866d51.png

一般安装过程没有特别的地方可以说的,很快就可安装完毕,在安装完毕服务器软件后需要配置一下MySQL-Server,其实是主要配置MySQL-Server服务器的root用户的密码,可以从windowsxp的开始菜单找到mysql-> mysql server 5.0-> MySQL Server Instance Config Wizard然后进行配置。配置过程基本是next,只有一步是关键的即输入root用户的密码,假设密码为123456。

440a0e5f6057ee46cf303a4fc4815c3d.png

之后就是通过mysql的客户端软件MySQL Command Line Client,如下图所示,登录MySQL的服务器。

9510c9beea7137c55b5d06b026489d67.png

在弹出的cmd对话框里首先输入配置root用户的密码123456之后回车,如果密码正确可以看到下图,即说明登录成功了。

12df7cf7f83e694a14d1195da0b3abaf.png

至此,MySQL在本机就算安装成功了。

Python访问MySQL的接口安装

从MySQL-Python接口软件MySQL-python-1.2.4b4.win32-py2.7.exe的下载地址下载MySQL-Python软件,双击安装,此软件安装完毕后在Python里即可通过编程的方式访问MySQL数据库了。双击下载的软件,开始安装,如下图所示:

2a20ce6abac4520e2726bb9d4ed0cc32.png

点击“下一步”按钮进行安装,如下图:

caf220369ea91a0399f6150fe90eaad9.png

这一步需要注意,软件是否能正常安装成功首先python的配置好,如果python未配置好,是不会出现"python dirctory"后边的"c:\python27",这个得配置系统变量16.3节,配置好以后在安装本软件。如果之前配置好了,那么此时可以点击“下一步”完成安装。

测试是否安装成功

运行cmd,在cmd对话框里键入python,启动python,之后在Python的交互Shell里键入import MySQLdb,如果没有报错,说明python访问mysql服务器的接口已经安装好,如下 图:

bb808ac2432c8be156be05e162b30a7d.png

MySQL数据库的基本使用

WindowsXP上安装好了MySQL-Server以后,便可通过MySQL的客户端登录MySQL服务器,在服务器上创建数据库、数据表并对表进行插入、查询等操作。

登录数据库

登录数据库,除了用MySQL Command Line Client以外,实际可以直接用cmd,但需要配置cmd环境能够找到mysql客户端命令,即也需要配置系统变量。下图是没有配置系统环境变量时直接键入mysql命令报错!

e32b81a88e7ef83a392ac2b8767af9d1.png

故需参考配置系统变量(模块或包的安装)去配置mysql能被cmd环境识别,如下图所示:

即需要将mysql.exe所在的目录C:\Program Files\MySQL\MySQL Server 5.0\bin前加分号即;C:\Program Files\MySQL\MySQL Server 5.0\bin加在系统变量Path的最后,这样cmd就能找到mysql.exe了。

a2fed8b1a065621ae61480283499020e.png输入的命令是mysql -h localhost -u root -p,这时登录本地的mysql服务器,如果想登陆网络上某计算机上的mysql服务器,将localhost换成那台计算机的ip或者域名地址即可,-u是登录的用户名,-p后暂不写密码回车之后键入。

查看有哪些已存在的库?

使用的命令是show databases;, 注意最后的分号,如果不小心回车之前命令尚未写完整,会出现->在箭头后继续写,mysql支持多行写命令,一直写下去,写完分号之后再回车即可。

adf4baf322eb4d52ab2764e0d7b6f404.png

创建新的数据库

从上图可以看出mysql服务器上已有一些数据库了,可以用create database 新建的数据库名;来创建一个新的数据库,例如创建cpython数据库的命令为create database cpython;如上图所示,如果命令格式及语法正确,会返回Query Ok...字样。

操作使用某库

MySQL数据库,修改的是库下的表,为此得首先打开库,使用命令为use 某数据库名;,现在的想法是在新建的cpython数据库里建一个表,得首先使用这个cpython库,操作命令为use cpython;,如下图所示:

4d767bb7ac1a8cc0388244b906aa4ac7.png

创建表

cpython库为刚刚创建的新的数据库,其下目前是没有任何表的,可以用一下show tables;来看看。那好,那就创建一个表吧名字为user的表,命令如下:create table user(id int, name varchar(32));,实际操作截图如下所示:

7561150249549c2e2c3c58a587a31478.png

可以用show tables;来看看是否创建成功了呢?如上图已经有user字样在"Tables_in_cpython"下了,这说明cpython里已经有一个表,表名字为user。

向表插入数据

向cpython数据库的user表插入几条数据,在MySQL数据库里,向表插入数据的指令为insert into 表名字 values(各字段值);,表user只有两个字段id和name(可以用desc user;查看表的信息),故values后跟两个值分别为int型和字符串型的数据即可,如下图所示:

0b6ef90a0bd693c6c03ef276eece5b02.png

查看表里的数据

查看表数据可以用select 语句,如下图所示:

fe484b9c938599c0caa5fcb64112f542.png

退出数据库服务器

客户端切断与服务器的连接访问称之为退出,直接键入exit;回车即可。

Python访问MySQL数据库

建立数据库服务器连接访问连接对象

通过MySQLdb的connect函数建立Python与MySQL之间的连接对象。import MySQLdb

conn = MySQLdb.connect(host = "localhost", user = "root", passwd = "123456", db = "cpython")

建立 python 和数据库服务器交互的游标对象cur = conn.cursor()

通过游标和数据库进行交互SQL语句

通过上面创建的游标cur向MySQL数据库服务器提交SQL指令。execute(sql)语句就是向MySQL提交了sql这条指令。

如果是查询,可以通过游标从服务器获得结果集sql = "select * from user;"

cur.execute(sql)

ret = cur.fetchall()

如果是插入或修改,在提交sql后还需通过连接对象修改数据库或表sql = "insert into user values(3, 'reliya');"

cur.execute(sql)

conn.commit()

关闭游标对象

完成了数据库的使用首先要关闭与某数据库连接的游标。

关闭连接对象

接着关闭与数据库服务器连接的连接对象。

Python访问数据库MySQL完整程序

示例1:读取cpython数据库user表里的数据import MySQLdb

conn = MySQLdb.connect(host = "localhost", user = "root", passwd = "123456", db = "cpython")

cur = conn.cursor()

sql = "select * from user;"

cur.execute(sql)

ret = cur.fetchall()

for x in ret:

print x

cur.close()

conn.close()

程序执行结果如下:(1L, 'liming')

(2L, 'yangmi')

(3L, 'xiaoshenyang')

示例2:提交新数据import MySQLdb

import random

conn = MySQLdb.connect(host = "localhost", user = "root", passwd = "123456", db = "cpython")

cur = conn.cursor()

x = random.randint(1, 100)

sql = "insert into user values(%d, '%s');" %(x, "cpython" + str(x))

cur.execute(sql)

conn.commit()

sql = "select * from user;"

cur.execute(sql)

ret = cur.fetchall()

for x in ret:

print x

cur.close()

conn.close()

程序的执行结果如下:(1L, 'liming')

(2L, 'yangmi')

(3L, 'xiaoshenyang')

(41L, 'cpython41')

(11L, 'cpython11')

(97L, 'cpython97')

(11L, 'cpython11')

可以用MySQL的客户端工具登录MySQL服务器查看user表里的数据信息,如下图所示:

21d95859879ca79858d7f4773b21ed6b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值