数据库在开发过程中是最常见的,基本上在服务端的编程过程中都会使用到,mysql是较常见的一种数据库,这里介绍python如果连接到数据库中,并对数据库进行增删改查。

安装mysql的python扩展

使用MySQLdb第三方扩展库连接mysql,首先在python解析器下,查看MySQLdb是否已经安装,命令如下:

import MySQLdb

如果没有安装会出现下面的错误:

ImportError: No module named MySQLdb

安装MySQLdb ,分不同的平台,在windows下,在连接https://pypi.python.org/pypi/MySQL-python/1.2.5 下载MySQL-python-1.2.5.win32-py2.7.exe 进行安装,安装的过程跟普通的软件并没有什么区别。

centos下使用命令进行安装:

sudo yum install MySQL-python

安装完成后,在进行import MySQLdb 就不会再报错了。

连接mysql,并进行增删改查

通常在进行数据库操作时,程序使用的是如下的过程:

  • 连接数据库,返回连接句柄

  • 使用连接句柄进行SQL语句的操作

  • 关闭数据库连接

如下的代码更加能过看清这个过程:

#!/usr/bin/python
#coding=utf-8 """
start python 项目
""" import MySQLdb conn= MySQLdb.connect(
host='localhost',
port = 3306,
user='root',
passwd='123456',
db ='test',
)
cur = conn.cursor() #执行sql语句
cur.execute("insert into bugingcode values('阿猫学编程')")
conn.commit() #返回数据
cur.execute("select * from bugingcode")
datacur = cur.fetchall()
print datacur #关闭连接
cur.close()
conn.close()

MySQLdb中常用函数

  • MySQLdb 连接数据库:

    1. conn= MySQLdb.connect #连接数据库
    2. cur = conn.cursor() #返回当前句柄
    3. commit() #提交
    4. rollback() #回滚
  • cursor执行sql语句的方法:

    1. execute(self, query, args): 执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数

    2. callproc(self, procname, args) :用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数

    3. executemany(self, query, args): 执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数

    4. nextset(self) 移动到下一个结果集

  • cursor用来接收返回值的方法:

    1. fetchall(self): 接收全部的返回结果行.

    2. fetchmany(self, size=None) :接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.

    3. fetchone(self): 返回一条结果行.

    4. rowcount 这是一个只读属性,并返回执行execute() 方法后影响的行数。

    5. scroll(self, value, mode='relative') :移动指针到某一行; 如果mode='relative',则表示从当前所在行移动value条,如果 mode='absolute',则表示从结果集的第一行移动value条.

  • 关闭连接

关闭当前句柄:

    cur.close()

关闭当前连接:

conn.close()

进一步封装

MySQLdb 的封装,在网上有很多封装类,可以选择一个或者根据自己的需求,写一个适合自己的连接库。

更多教程:大家来编程

在python中连接mysql数据库,并进行增删改查的更多相关文章

  1. 【Python + Mysql】之用pymysql库连接Mysql数据库并进行增删改查操作

    用pip下载pymysql并引用 具体请参考文章: <Python之MySQL数据库增删改查操作> <python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删 ...

  2. java连接mysql数据库 三 实现增删改查操作

    同以前一样,先写一个数据库打开和关闭操作类 public class DBConnection { String driver = "com.mysql.jdbc.Driver"; ...

  3. Python进阶----数据库的基础,关系型数据库与非关系型数据库(No SQL:not only sql),mysql数据库语言基础(增删改查,权限设定)

    day37 一丶Python进阶----数据库的基础,mysql数据库语言基础(增删改查,权限设定) 什么是数据库:    简称:DataBase ---->DB    数据库即存放数据的仓库, ...

  4. Vc数据库编程基础MySql数据库的表增删改查数据

    Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...

  5. 48.Python中ORM模型实现mysql数据库基本的增删改查操作

    首先需要配置settings.py文件中的DATABASES与数据库的连接信息, DATABASES = { 'default': { 'ENGINE': 'django.db.backends.my ...

  6. mysql数据库单表增删改查命令

    数据库DB-database-mysql 课程安排 第一天: 1.数据库定义以及设计 2.mysql服务端的安装 3.mysql-dos操作 库的操作 表的操作 4.mysql客户端navicate工 ...

  7. MySQL数据库(安装+增删改查)

    一. 安装 下载地址 : https://dev.mysql.com/downloads/mysql/ 1. 安装步骤 (1) 选择5.7版本 (2) 针对操作系统的不同下载不同的版本 (3) 解压 ...

  8. MySQL数据库操作:“增删改查”,忘记密码重置等。

    [注] 数据库的“增删查改”,参考原作者Wid:http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html#d11.感谢大佬们的技术分享 ...

  9. .net 连接SqlServer数据库及基本增删改查

    一.写在前面 因为这学期选修的 .net 课程就要上机考试了,所以总结下.net 操作 SqlServer 数据的方法.(因为本人方向是 Java,所以对.net 的了解不多,但以下所写代码均是经过测 ...

随机推荐

  1. 利用FastJson,拼接复杂嵌套json数据&&直接从json字符串中(不依赖实体类)解析出键值对

    1.拼接复杂嵌套json FastJson工具包中有两主要的类: JSONObject和JSONArray ,前者表示json对象,后者表示json数组.他们两者都能添加Object类型的对象,但是J ...

  2. C++如何输入含空格的字符串

    1.scanf函数(包含头文件#include <stdio.h>) scanf函数一般格式为scanf(“%s”,st),但scanf默认回车和空格是输入不同组之间的间隔和结束符号,所以 ...

  3. ZJNU 1372 - 破解情书

    取模运算在数组内循环解密,否则会MLE /* Written By StelaYuri */ #include<stdio.h> ],cn[]; int main() { int i,j, ...

  4. lombak-插件使用

    1.@Slf4j .@data 使用 依赖jar ,需要安装该插件 (https://blog.csdn.net/xue632777974/article/details/80437452) < ...

  5. android新闻项目、饮食助手、下拉刷新、自定义View进度条、ReactNative阅读器等源码

    Android精选源码 Android仿照36Kr官方新闻项目课程源码 一个优雅美观的下拉刷新布局,众多样式可选 安卓版本的VegaScroll滚动布局 android物流详情的弹框 健身饮食记录助手 ...

  6. Mac下Rblas配置

    Mac 下加速 R做矩阵计算, 感觉比没有R open 快, 但数量级上差不多了. 安装R open时,提示 X11相关的组件缺失,不想再额外安装,怕污染系统文件. cd /Library/Frame ...

  7. 理解ClassLoader工作机制

    package com.ioc; public class Test { public static void main(String[] args) throws ClassNotFoundExce ...

  8. c++ 装饰器模式/包装模式

    理解 使用两个隔离又继承自统一接口类的对象:方法对象(抽象/具体), 包装器对象(抽象/具体)实现多种组合只需要 n + m种实现, 而对比直接继承,则需要n*m 种实现,因此在面对多种具体类和多种额 ...

  9. Python - 使用 xlwt 写入表格

    # -*- coding: utf-8 -*- import xlwt def write_excel(): f = xlwt.Workbook() fenlei = ['一类','二类','三类', ...

  10. as such 位于句首