python数据库编程

8 篇文章 0 订阅
5 篇文章 0 订阅

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')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值