欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python MySQLdb 连接数据库

程序员文章站 2024-03-13 17:18:15
...

python MySQLdb 连接数据库

引入并创建连接

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

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

添加链接描述
本人本地数据库界面如下:
python 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中观察该数据表内容如下:
python MySQLdb 连接数据库
与筛选查询出来的数据表一致。

####修改操作
调用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()

数据表中相应的变为
python MySQLdb 连接数据库

增加操作

调用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()

结果如下:
python MySQLdb 连接数据库

####删除操作
调用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()

python MySQLdb 连接数据库