转自虫师

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

一,安装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必不可少的模块。

下载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 linux2

Type "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 changed

mysql> 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 为 1111

mysql> 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-8

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')")

#修改查询条件的数据

#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-8

import 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.execute(sqli,('3','Huhu','2 year 1 class','7'))

cur.close()

conn.commit()

conn.close()

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

#coding=utf-8

import 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-8

import MySQLdb

conn= 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 ii

cur.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数据_python使用mysql数据库(虫师)相关推荐

  1. python写入列表数据_python列表写入数据库

    Python学习(22)--文件操作1 Python学习(22)--文件操作1 之前我们介绍到的数据类型,如列表,字典或者一个数字,字符等等.都是在程序运行时存储在内存中的,存储在内存中的数据不稳定, ...

  2. python封装类连接mysql数据_python操作mysql数据库基本类封装

    # -*- coding: UTF-8 -*- import MySQLdb as mdb class MysqldbHelper(object): """操作mysql ...

  3. python调用html数据_Python读取HTML页面

    有一个类库叫作beautifulsoup. 使用这个库,可以搜索html标签的值,并获取页面标题和页面标题列表等特定数据. 安装Beautifulsoup 使用Anaconda软件包管理器安装所需的软 ...

  4. python爬取mysql数据_Python爬取数据并写入MySQL数据库的实例

    Python爬取数据并写入MySQL数据库的实例 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  Python爬取数据并写入MySQL数据库的实例.txt ] (友 ...

  5. DM 数据迁移工具——DTS(MySQL数据迁移到DM8数据库 Windows环境)

    DM 数据迁移工具--DTS MySQL数据迁移到DM8数据库 Windows环境 DM 数据迁移工具 DM DTS 提供了主流大型数据库迁移到 DM.DM 到 DM.文件迁移到 DM 以及 DM 迁 ...

  6. python连接数据库的技术_Python操作MySQL数据库的三种方法

    (1) 什么是MySQLdb? MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. ...

  7. python往mysql存入数据_Python操作mysql之插入数据

    之前有写过一篇python查询mysql数据的文章,今天写通过python插入数据到mysql数据库. 相关mysql视频教程推荐:<mysql教程> 先建库,建表,建用户mysql> ...

  8. python读取mysql中表内数据_Python读取MySQL表数据的方法介绍

    这篇文章主要为大家详细介绍了Python如何读取MySQL数据库表数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Python读取MySQL数据库表数据的具体代码,供大家参 ...

  9. layui table 复选框数据_Python操作三大数据库 Mysql

    MYSQL是目前应用最广泛.普及度最高的开源关系型数据库.体积小.速度快.总体拥有成本低,开源是使得它广为普及的主要原因. 今天将 Python 与 Mysql 的结合,两者进行交互,一起来学习吧! ...

最新文章

  1. 计算机与智能化专业课程,人工智能专业课程有哪些 大学本科课程设置
  2. 边框border属性总结
  3. Java研发方向如何准备BAT技术面试答案(上)
  4. ftp邮箱里的文件无法连接服务器,服务器FTP不能连接的一些解决方法 - 新网数据 - 主机,域名,邮箱提供商 - www.nIDC.cn...
  5. Java Web-面试题
  6. 20165223 week2测试补交与总结
  7. 【Xcode】编辑与调试
  8. html th width无效 解决方法
  9. MM32F3277替换STM32
  10. html表格固定右侧列,jQuery锁定表头和固定列插件FixedTable
  11. 知行功夫为本,找对心中的英雄,过好平凡的生活
  12. 微信 qq浏览器服务器,QQ浏览器与微信团队合作推出“微信电脑版”
  13. 在Qt中设置程序图标的方法介绍
  14. 【迷失岛游戏框架开发个人每集总结(第三期)】
  15. C语言笔记第02章:三大基本结构
  16. 激活windows10系统提示错误代码0x800705b4怎么解决
  17. 访问windows azure虚拟机iis服务器,Azure使用文件共享从IIS虚拟机共享照片?
  18. iOS compare用法
  19. Mysql面试题整理
  20. echarts 横纵坐标设置

热门文章

  1. 【2022最新爬虫】JS逆向之采集某某海关进出口信用平台数据
  2. 几种部署工具比较foreman, ansible, fuel
  3. MySQL 实现 Split 方法
  4. TensorFlow是什么?
  5. 红旗linux shell方式下配置声卡的命令是:,‘红旗杯’linux大赛——基础知识2
  6. Java 集合经典面试题。少侠,我看你骨骼惊奇,是难得的代码奇才,来看了我的博客那岂不是如虎添翼?
  7. 在 github 上提交代码后,绿格子绿点没有显示
  8. .net CallbackOnCollectedDelegate 垃圾回收问题。 (Handle::Invoke”类型的已垃圾回收委托进行了回调。)
  9. 网络故障和网络诊断工具(2.0)
  10. 调整el-datetimepicker时间选择器的样式大小