python MySQLdb 连接数据库

引入并创建连接

以连接本地数据库为例
import MySQLdb
conn = MySQLdb.Connect(
            host = '127.0.0.1', #服务器地址
            port = 3306, #服务器端口号
            user = 'root', #用户名
            passwd = 'root',#密码
            db = 'sqltest', #需要操作的表格,可以在这里强调,也可以在sql语句中单独说明
            charset = 'utf8' #编码式
            )

如果上述过程没有发生错误,则代表连接数据库成功。在这里我们可以下载安装Navicat(一款简单可视化的数据库软件)检验我们操作的正确性。一些基本的操作可以参照:

添加链接描述 本人本地数据库界面如下:

boot 连接MySQL和SQLserver mysqldb连接数据库_MySQLdb

对student表进行操作

建立游标和sql操作语句

cursor=conn.cursor()  #建立游标,相当于一个指针
sql_insert="insert into student values(4,'李科',2)" #sql语句插入一行新值
sql_update="update student set id=10 where id=1" #更新,改变
sql_delete="delete from student where id=2" #删除
sql_select="select * from student" #选择
sql_select_local="select id,name from student" #选择

尝试进行查询,修改,增加,删除操作

在前面我们已经建立和游标和sql操作语句,现在逐条对每个sql语句进行操作

查询操作
try:
    cursor.execute(sql_select) #查询操作
    print cursor.fetchall()  #打印游标开始位置到表结束位置,这里是打印全表
    conn.commit() #执行以上操作
except Exception as e: #如果有错,输出错误信息,并回滚,回滚是一种错误处理机制
    print(e)
    conn.rollback()
finally:  #最后应该关闭所有的游标和连接
    cursor.close()
    conn.close()

连接以上代码如下

# -*- coding: utf-8 -*-
"""
Created on Sat Aug 04 22:03:56 2018

@author: LK12
"""

import MySQLdb
conn=MySQLdb.Connect(
            host='127.0.0.1', #服务器地址
            port=3306, #服务器端口号
            user='root', #用户名
            passwd='root',#密码
            db='sqltest', #需要操作的表格,可以在这里强调,也可以在sql语句中单独说明
            charset='utf8' #编码格式
            )

cursor=conn.cursor()  #建立游标,相当于一个指针
sql_insert="insert into student values(4,'李科',2)" #sql语句插入一行新值
sql_update="update student set id=10 where id=1" #更新,改变
sql_delete="delete from student where id=2" #删除
sql_select="select * from student" #选择
sql_select_local="select id,name from student" #选择
try:
    cursor.execute(sql_select) #查询操作
    print cursor.fetchall()  #打印游标开始位置到表结束位置,这里是打印全表
    conn.commit() #执行以上操作
except Exception as e: #如果有错,输出错误信息,并回滚,回滚是一种错误处理机制
    print(e)
    conn.rollback()
finally:  #最后应该关闭所有的游标和连接
    cursor.close()
    conn.close()

运行结果如下:

((1L, u'zhangsan', 1L), (2L, u'lisi', 1L), (3L, u'wangwu', 2L))

在Navicat中观察该数据表内容如下:

boot 连接MySQL和SQLserver mysqldb连接数据库_回滚_02


与筛选查询出来的数据表一致。

####修改操作
调用sql_update 语句进行修改操作

try:
    cursor.execute(sql_update) #修改操作
    print cursor.rowcount #输出操作的行数
    conn.commit()
except Exception as e: #如果有错,输出错误信息,并回滚,回滚是一种错误处理机制
    print(e)
    conn.rollback()
finally:  #最后应该关闭所有的游标和连接
    cursor.close()
    conn.close()

数据表中相应的变为

boot 连接MySQL和SQLserver mysqldb连接数据库_数据库操作_03

增加操作

调用sql_insert 语句进行修改操作

try:
    cursor.execute(sql_insert) #增加操作
    print cursor.rowcount #输出操作的行数
    conn.commit()
except Exception as e: #如果有错,输出错误信息,并回滚,回滚是一种错误处理机制
    print(e)
    conn.rollback()
finally:  #最后应该关闭所有的游标和连接
    cursor.close()
    conn.close()

结果如下:

boot 连接MySQL和SQLserver mysqldb连接数据库_回滚_04

####删除操作
调用sql_delete语句进行修改操作

try:
    cursor.execute(sql_delete) #增加操作
    print cursor.rowcount #输出操作的行数
    conn.commit()
except Exception as e: #如果有错,输出错误信息,并回滚,回滚是一种错误处理机制
    print(e)
    conn.rollback()
finally:  #最后应该关闭所有的游标和连接
    cursor.close()
    conn.close()

boot 连接MySQL和SQLserver mysqldb连接数据库_sql_05