python和数据库连接
连接过程是什么?
应用程序的信息(连接IP,端口,用户名和密码,协议),连接数据库的driver(底层程序)
第三方库包含了什么-driver,client(pymysql)
pymysql应用,基于pymysql的python编程
安装pymysql—pip
pip install pymysql
pip 安装的时候可以指定安装源(pip install packagename -i https://mirrors.aliyun.com/pypi/simple/)
操作mysql过程
导入数据库
import pymysql
1,连接数据库-IP,端口,user,password(数据库)
conn=pymysql.connect()
2,游标(指针,指到那,读到那) 查询,修改(),表副本(),临时表
cousor = conn.cousor()
移动游标获取我们的内容,现在用的是相对
修改游标:cousor.scroll(2,mode = ‘relative’)
3,执行sql:execute()
cousor.excute(sql语句)
cousor.fetchall() 获取所有结果
cousor.fetchone() 获取一条记录
cousor.fetchmany(3) 获取剩下记录的三条
4,修改数据库相关数据,必须有一个动作(commit提交) 事务(完整性,一致性,隔离性) rollback回滚
5,关闭相关连接(和数据库建立的连接关闭)
conn.close()
import pymysql
#导入第三方数据库pymysql
conn = pymysql.connect(user= 'root',password = '123456',host = '192.168.233.136',database = 'woniusales',port=3306)
#连接数据库,包括用户名,密码,IP地址,要连的数据库
cousor = conn.cursor()
#创建游标
cousor.execute('select password from user where username = \'dy\';')
#执行sql语句
result = cousor.fetchall()
#获取执行语句结果并赋值
print(result)
#输出结果
conn.close()
#关闭数据库
修改端口号在配置文件
函数封装
创建库连接
def db_connection(user= 'root',password = '123456',host = '192.168.233.136',port=3306):
#定义连接数据库函数
conn = pymysql.connect(user= user,password = password,host = host,port=port )
#数据库连接
return conn
#返回结果,用作其他函数调用
sql数据执行
def cousor_execute(sql_cmd):
# #定义sql执行函数
# conn = db_connection()
# #调用连接数据库函数
# cousor = conn.cursor()
# #创建游标
# cousor.execute(sql_cmd)
# #执行sql语句
# result = cousor.fetchall()
# #获取sql语句结果
# print(result)
# #打印结果
# conn.close()
# #关闭数据库
# return result
# #返回执行结果
创建库
def create_db(dbname):
# create_ab_sql = 'create database %s default character set utf8;' %dbname
# conn = db_connection()
# cousor = conn.cursor()
#
# cousor.execute(create_ab_sql)
# result = cousor.fetchall()
# print(result)
# conn.close()
# return result
if __name__ == '__main__':
dbname = 'test1'
create_ab_sql = 'create database %s default character set utf8;' % dbname
cousor.execute(create_ab_sql)
pymysql相关功能封装
import pymysql
# #导入第三方数据库pymysql
# conn = pymysql.connect(user= 'root',password = '123456',host = '192.168.233.136',database = 'dtabase',port='3306')
# #连接数据库,包括用户名,密码,IP地址,要连的数据库
# cousor = conn.cursor()
# #创建游标
# cousor.execute('select password from user where username = \'dy\';')
# #执行sql语句
# result = cousor.fetchall()
# #获取执行语句结果并赋值
# print(result)
# #输出结果
# conn.close()
# #关闭数据库
def db_connection(user= 'root',password = '123456',host = '192.168.233.136',database = '',port=3306):
#定义连接数据库函数
conn = pymysql.connect(user= user,password = password,host = host,database = database,port=port )
#数据库连接
return conn
#返回结果,用作其他函数调用
# 执行函数
def cousor_execute(sql_cmd,database):#定义sql执行函数
#只负责执行sql语句,其他不要管
#按照关键字参数连续增加参数
#数据库参数不能写死,因为,有可能执行不同的数据或者修改表操作
conn = db_connection(database=database)
#调用连接数据库函数
cousor = conn.cursor()
#创建游标
#通过游标中的执行方法,执行sql语句,生SQL是字符串类型
#将形参传入要执行的函数
cousor.execute(sql_cmd)
# #执行sql语句
result = cousor.fetchall()
# #获取sql语句结果
conn.commit()
# 提交事务
print(result)
# #打印结果
conn.close()
# #关闭数据库
return result
# #返回执行结果
# 创建建库函数
def create_db(db_name):
result = isExistsDB(db_name)
print(result)
if isExistsDB(db_name):
print('数据库已存在')
else:
print('您可以创建数据库')
create_db_sql = 'create database %s default character set utf8;' %db_name
#根据参数封装sql语句,专属业务的sql语句
cousor_execute(create_db_sql,'') #调用底层执行函数
#分装查询函数
def query_tb(tb_name,database):
query_db_sql = 'select * from %s;' %tb_name
print(query_tb)
cousor_execute(query_db_sql,database) #调用底层执行函数
#封装判断数据库是否存在
def isExistsDB(db_name):
query_db_sql = 'show databases;'
print(query_db_sql)
result = cousor_execute(query_db_sql,'')
print(type(result))
counter = 0
for db in result:
counter =+1
if db_name in db:
return True
else:
return False
if __name__ == '__main__':
create_db('test1')