python链接数据库mysql

前提工作:

1、先在win10上安装好mysql,教程可以参考:

【精选】windows10上安装mysql(详细步骤)_win10安装mysql-CSDN博客

2、在PyCharm上安装对应的pymysql库:

可以用pip安装:python -m pip install pymysql

都进行好之后,直接上代码,只要链接成功,就可以随心所欲的操作数据库了:

python 复制代码
#引入库文件
import pymysql
#封装数据库链接的函数
def db_con(user='root',password='123456',host='localhost',port=3306,db='won105',charset='utf8'):
    #如果数据库服务器和Web服务器都运行在同一台机器上,则可以使用localhost作为服务器名称
    try:
        conn=pymysql.connect(user=user,password=password,host=host,port=port,db=db,charset=charset)
        cursor=conn.cursor()
        return conn,cursor
    except:
        print("链接异常")
        pass
#封装执行dml命令的函数
def exec_dml(conn,cursor,sqlstr):
    try:
        cursor.execute(sqlstr)
        conn.commit()
        return True
    except:
        conn.rollback()
        cursor.close()
        conn.close()
        return False
#封装执行DQL(select)命令函数,查找函数不会报错所以不需要try except
def exec_dql(conn,cursor,sqlstr):
    cursor.execute(sqlstr)
    rs=cursor.fetchall()#通过这个才能拿到数据
    return rs
#封装关闭数据库操作   关闭游标和链接
def closedb(conn,cursor):
    cursor.close()
    conn.close()

def regist_by_db():
    username=input('username>>')
    password=input('password>>')
    sqlstr=f'select username from game_users where username="{username}"'
    print(sqlstr)
    conn,cursor=db_con()
    rs=exec_dql(conn,cursor,sqlstr)
    if len(rs)>0:
        print('存在')
        return None
    else:
        sqlstr=f'insert into game_users(username,passwd) values("{username}","{password}")'
        if exec_dml(conn,cursor,sqlstr):
            print('插入成功')
            return True
        else:
            print('插入结果异常')
            return False

regist_by_db()

补充知识:

❁链接数据库:pymysql.connect()函数

con=pymysql.connect(user=None,password=None,host=None,db=None,port=None,charset=None)

♢user:数据库用户名

♢password:数据库用户密码

♢host:数据库服务器地址

♢db:要链接的database,如果需要新建database,则db=None

♢port:端口号

♢charset:字符集

❀数据库连接对象常用方法:

♢cursor():创建游标

☞游标对象常用方法

execute(sql):执行指定sql语句(执行成功要提交事务,执行失败要回滚事务,select语句

要有接受返回值的参数)

fetchone():从查询结果中获取一条记录

fetchmany(size=None):从查询结果中获取指定数量的记录

fetchall():从查询结果中获取所有记录

close():关闭游标

♢commit():提交事务

♢rollback():回滚事务

♢close():关闭数据库连接

相关推荐
r i c k3 分钟前
数据库系统学习笔记
数据库·笔记·学习
野犬寒鸦18 分钟前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
IvorySQL1 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·1 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德1 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫2 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i2 小时前
完全卸载MariaDB
数据库·mariadb
纤纡.2 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
jiunian_cn2 小时前
【Redis】渐进式遍历
数据库·redis·缓存
橙露2 小时前
Spring Boot 核心原理:自动配置机制与自定义 Starter 开发
java·数据库·spring boot