python MySQLdb 连接数据库
引入并创建连接
以连接本地数据库为例
import MySQLdb
conn = MySQLdb.Connect(
host = '127.0.0.1', #服务器地址
port = 3306, #服务器端口号
user = 'root', #用户名
passwd = 'root',#密码
db = 'sqltest', #需要操作的表格,可以在这里强调,也可以在sql语句中单独说明
charset = 'utf8' #编码式
)
如果上述过程没有发生错误,则代表连接数据库成功。在这里我们可以下载安装Navicat(一款简单可视化的数据库软件)检验我们操作的正确性。一些基本的操作可以参照:
添加链接描述 本人本地数据库界面如下:
对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中观察该数据表内容如下:
与筛选查询出来的数据表一致。
####修改操作
调用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()
数据表中相应的变为
增加操作
调用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()
结果如下:
####删除操作
调用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()