首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python连接数据库

python连接数据库

作者头像
GeekLiHua
发布于 2025-01-21 12:00:53
发布于 2025-01-21 12:00:53
19200
代码可运行
举报
文章被收录于专栏:JavaJava
运行总次数:0
代码可运行

python连接数据库

安装

简介: PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

首先是安装环境,下载pymysql

pip3 install pymysql

代码演示

连接数据库

打开Navicat在其中选择一个数据库进行演示,我这里就选择了projectdatabase进行演示。

导入库 import pymysql

连接数据库的代码 放好自己的配置文件信息,本地就是localhost,其他的地方的就是按照别人的域名来看,然后就是用户名,密码,数据库的名字。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pymysql
DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '123456'
DBNAME = 'projectdatabase'

try:
    db = pymysql.connect(host=DBHOST,user=DBUSER, password=DBPASS, database=DBNAME)
    print('数据库连接成功!')
except pymysql.Error as e:
    print('数据库连接失败'+str(e))

运行结果

创建新表

1、声明一个游标

cur = db.cursor()

2、创建表之前先检查是否存在,如果存在则删除

cur.execute('DROP TABLE IF EXISTS Student')

3、编辑sql语句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sqlQuery = "CREATE TABLE Student(Name CHAR(20) NOT NULL ,Email CHAR(20),Age int )"

cur.execute(sqlQuery)

完整代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pymysql
DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '123456'
DBNAME = 'projectdatabase'

try:
    db = pymysql.connect(host=DBHOST,user=DBUSER, password=DBPASS, database=DBNAME)
    print('数据库连接成功!')
except pymysql.Error as e:
    print('数据库连接失败'+str(e))

# 这里创建游标
cur = db.cursor()
cur.execute('DROP TABLE IF EXISTS Student')
# 这里输入sql语句
sqlQuery = "CREATE TABLE Student(Name CHAR(20) NOT NULL ,Email CHAR(20),Age int )"

cur.execute(sqlQuery)

运行结果

插入数据

编写sql语句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sqlQuery=" INSERT INTO Student (Name, Email, Age) VALUE (%s,%s,%s) "

设置具体的值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
value=('jake','123456@qq.com',20)

完整代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pymysql
DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '123456'
DBNAME = 'projectdatabase'

try:
    db = pymysql.connect(host=DBHOST,user=DBUSER, password=DBPASS, database=DBNAME)
    print('数据库连接成功!')
    # 这里创建游标
    cur = db.cursor()
    
    # 这里输入sql语句
    sqlQuery = " INSERT INTO Student (Name, Email, Age) VALUE (%s,%s,%s) "
    value = ('jake', '123456@qq.com', 20)
    cur.execute(sqlQuery, value)

    db.commit()
    print('数据插入成功!')
except pymysql.Error as e:
    print("数据插入失败:" + str(e))
    # 如果数据插入失败的话 就事件回滚
    db.rollback()

db.close()

运行结果

查询全部数据

编写sql语句 sqlQuery = "SELECT * FROM Student"

完整代码 python的这个代码有点奇怪,特别需要注意的是这游标需要先执行运行这个sql语句,之后才可以执行fetchall方法,不然会查询失败。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pymysql
DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '123456'
DBNAME = 'projectdatabase'

try:
    db = pymysql.connect(host=DBHOST,user=DBUSER, password=DBPASS, database=DBNAME)
    print('数据库连接成功!')
    # 这里创建游标
    cur = db.cursor()

    # 这里输入sql语句
    sqlQuery = "SELECT * FROM Student"
    col = cur.execute(sqlQuery) # 查询之前需要先运行sql语句
    results = cur.fetchall() # 只有上面先运行了sql语句这句话才可以运行成功
    print(col) # 结果为影响的条数
    for row in results:
        name = row[0]
        email = row[1]
        age = row[2]
        print('Name:%s,Email:%s,Age:%s'%(name,email,age))
except pymysql.Error as e:
    print("数据查询失败:" + str(e))

db.close()

运行结果

更新表中的数据

编写sql语句 sqlQuery = "UPDATE Student SET Name= %s WHERE Name=%s" value = ('John', 'jake') 完整代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pymysql
DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '123456'
DBNAME = 'projectdatabase'

try:
    db = pymysql.connect(host=DBHOST,user=DBUSER, password=DBPASS, database=DBNAME)
    print('数据库连接成功!')
    # 这里创建游标
    cur = db.cursor()

    # 这里输入sql语句
    sqlQuery = "UPDATE Student SET Name= %s WHERE Name=%s"
    value = ('John', 'jake')

    cur.execute(sqlQuery, value)
    db.commit()
    print('数据更新成功!')
except pymysql.Error as e:
    print("数据更新失败:" + str(e))
    # 发生错误时回滚
    db.rollback()


db.close()

运行结果 通过运行结果可以看出来,对于表格的更新成功了。

删除表中的数据

编写sql语句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sqlQuery = "delete from student where name=%s"
value = ('John')

完整代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pymysql
DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '123456'
DBNAME = 'projectdatabase'

try:
    db = pymysql.connect(host=DBHOST,user=DBUSER, password=DBPASS, database=DBNAME)
    print('数据库连接成功!')
    # 这里创建游标
    cur = db.cursor()

    # 这里输入sql语句
    sqlQuery = "delete from student where name=%s"
    value = ('John')

    cur.execute(sqlQuery, value)
    db.commit()
    print('数据更新成功!')
except pymysql.Error as e:
    print("数据更新失败:" + str(e))
    # 发生错误时回滚
    db.rollback()
db.close()

运行结果 数据库中的对应的数据也被删除了。

删除一张表

编写sql语句 sqlQuery='DROP TABLE IF EXISTS Student'

完整代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pymysql
DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '123456'
DBNAME = 'projectdatabase'

try:
    db = pymysql.connect(host=DBHOST,user=DBUSER, password=DBPASS, database=DBNAME)
    print('数据库连接成功!')
    # 这里创建游标
    cur = db.cursor()

    # 这里输入sql语句
    sqlQuery='DROP TABLE IF EXISTS Student'
    cur.execute(sqlQuery)
    db.commit()
    print('数据表删除成功!')
except pymysql.Error as e:
    print("数据表删除失败:" + str(e))
    # 发生错误时回滚
    db.rollback()
db.close()

运行结果 数据库中的这张表也不见了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python连接数据库
    • 安装
    • 代码演示
      • 连接数据库
      • 创建新表
      • 插入数据
      • 查询全部数据
      • 更新表中的数据
      • 删除表中的数据
      • 删除一张表
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档