python操作MySQL数据库(一)---增删改查基本功能

前提:python3.x----三方库—pymysql—pip install pymysql

一、连接数据库

操作数据库的第一步,首先要连接

import pymysql
#打开数据库连接
conn = pymysql.connect('localhost',user = "username",passwd = "password",db = "testdb")
print (conn)
print (type(conn))

二、获取游标

游标是用于操作数据库----可用于增删查改等其他操作

# 代码接上---连接数据库
#获取游标
cursor=conn.cursor()
print(cursor)

注:所有操作的基础是在连接数据库并拿到游标的基础上!
以下代码都是在拿到游标的基础上进行,连接和拿到游标的代码不在给出

三、创建数据库

'''创建数据库'''
def create_database():
	#创建pythonBD数据库
	sql_create_database = """CREATE DATABASE IF NOT EXISTS pythonDB DEFAULT CHARSET utf8 COLLATE utf8_general_ci"""   # sql语句
	cursor.execute(sql_create_database)
	cursor.close()#先关闭游标
	conn.close()#再关闭数据库连接
	print('创建pythonBD数据库成功')

四、创建表

def create_table():
	#创建user表
	cursor.execute('drop table if exists user')   # 删除表
	sql_create_table = """CREATE TABLE IF NOT EXISTS user(
		  id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
		  name varchar(255) NOT NULL,
		  number int NOT NULL
		) """
	cursor.execute(sql)
	cursor.close()#先关闭游标
	conn.close()#再关闭数据库连接
	print('创建数据表成功')

五、增----可实现三种插入模式

insert_form:有如下三种
insert:当有与主键相同值插入时,不会插入数据并报错
insert ignore:当有与主键相同值插入时,忽略该条记录不插入但不报错
replace:当有与主键相同值插入时,删除原有记录重新插入新记录值

def insert_data(insert_form, insert_table):
	sql_insert = """{} into {}(id,name,number) values(%s,%s,%s)""".format(insert_form, insert_table)
	cur.execute(sql_insert % (1,'lewis',44))
	conn.commit()   # 一定不能忘记commit
	cur.close()
	conn.close()
	print('插入数据成功')

六、删

:删除权限请谨慎使用,一旦删除,恢复比较麻烦,本人这里仅允许一条一条的删除数据!

def delete_data(delete_table):
	sql_selete = """delete from {} where id=%d""".format(delete_table)
	cur.execute(sql_selete %(1))
	conn.commit()   # 一定不能忘记commit
	cur.close()
	conn.close()
	print('删除数据成功')

七、改

:在外面增加循环,可更改任意字段

def update_data(update_table, **kwargs):
	sql_selete = """update {} set {}=%s where name=%s""".format(update_table, key)   # key、value为kwargs的key与value
	cur.execute(sql_selete %(1, value))
	conn.commit()   # 一定不能忘记commit
	cur.close()
	conn.close()
	print('更新数据成功')

八、查

:如果想加限制条件自己添加where语句

def select_data(select_table):
	sql_select = """select * from {}""".format(update_table)
	cur.execute(sql_selete)
	results = cursor.fetchall()   # cursor. fetchall():接收全部的返回结果行。fetchone()、fetchmany(size)与fetchall()的区别自行百度
	print(results)  # 只是查询结果,如有需要自行解析
	cur.close()
	conn.close()

:可以添加try语句,增加代码的健壮性—即sql语句可以放在try中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值