python操作MySQL数据库简单示例

news2025/1/19 3:07:51

通过python的pymysql模块,实现数据库表的创建、插入以及查询的简单示例。

1. 数据库表创建。

# -*- coding:utf-8 -*-
"""
使用python操作MySQL数据库示例
执行sql_create语句建立数据库表books
"""

import pymysql


def main():
    # 首先建立数据库连接对象db,参数分别为地址用户名密码及数据库,端口默认为3306。
    db = pymysql.connect(host='localhost', user='xxxx', password='xxxx', database='ditto2008')
    # 建立游标对象
    cursor = db.cursor()
    # 如果存在该表则先删除,防止多次运行报错。
    cursor.execute('DROP TABLE IF EXISTS books')
    # 创建数据库表books的sql语句,包含3列,id为非空且自动排序,并且为主键
    sql_create = '''
    CREATE TABLE books (
    id int(8) NOT NULL AUTO_INCREMENT,
    name varchar(50) NOT NULL,
    price decimal(10,2) DEFAULT NULL,
    PRIMARY KEY (id)
    )
    '''
    try:
        cursor.execute(sql_create)
        print('创建成功')
    except Exception as e:
        print('创建表失败', e)
    finally:
        cursor.close()


if __name__ == '__main__':
    main()

控制台打印:创建成功

通过Navicat查看如下所示:

2. 数据库表中插入信息。

# -*- coding:utf-8 -*-
"""
使用python操作mysql数据库示例。
向数据库表books中插入信息。
"""
import pymysql


def main():
    # 首先建立数据库连接对象db
    db = pymysql.connect(host='localhost', user='xxxx', password='xxxx', database='ditto2008')
    # 建立游标对象
    cursor = db.cursor()
    # 要插入的书籍信息,为一个list,每一项分别包含name和price
    book_data = [("国富论", '89.27'),
                 ("明朝那些事儿", '99.88'),
                 ("传习录", '66.77')
                 ]
    try:
        # 执行批量插入的sql语句,使用%s作为占位符防止sql注入。
        cursor.executemany('insert into books(name, price) values (%s, %s)', book_data)
        db.commit()
        print('数据插入成功。')
    except Exception as e:
        print('数据插入失败', e)
        # 如果出现异常则回滚
        db.rollback()
    finally:
        # 任何情况下都关闭连接
        db.close()


if __name__ == '__main__':
    main()

控制台打印:数据插入成功。

通过Navicat查看插入结果如下所示:

3. 数据库查询

# -*- coding:utf-8 -*-
"""
使用python操作mysql数据库示例。
数据库查询示例,通过书名查询价格。
"""

import pymysql


def main():
    # 首先建立数据库连接对象db
    db = pymysql.connect(host='localhost', user='xxxx', password='xxxx', database='ditto2008')
    # 建立游标对象
    cursor = db.cursor()
    # 查询语句,name使用占位符
    query = 'select price from books where name = %s'
    # 要查询的book_name,也可以直接通过方法传参获取。
    book_name = '传习录'
    try:
        # 执行sql语句,传参给占位符。
        cursor.execute(query, (book_name,))
        # 获取查询结果,通过fetchone获取price
        result = cursor.fetchone()
        # 查询结果为tuple,获取第1项。
        print(result[0])
    except Exception as e:
        print('查询失败', e)
    finally:
        # 关闭数据库连接。
        db.close()


if __name__ == '__main__':
    main()

控制台打印结果:66.77

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1298886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nodejs微信小程序+python+PHP北京地铁票务APP-计算机毕业设计推荐 -安卓

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

postgresql自带指令命令系列三

目录 简介 bin目录 28.pg_verifybackup 29.pg_waldump 30.postgres 31.postmaster -> postgres 32.psql 33.reindexdb 34.vacuumdb 35.vacuumlo 总结: 简介 在安装postgresql数据库的时候会需要设置一个关于postgresql数据库的PATH变量 export PATH/…

PTA 输出三角形面积和周长

#include<stdio.h> #include<math.h>//使用sqrt需要使用此头文件 int main() {int a, b, c, d;float s, area, perimeter;scanf("%d %d %d", &a, &b, &c);if (a b < c || a c < b || b c < a)//三角形任意两边之和大于第三边pri…

【小白专用】在 vs 中使用 nuget 安装NPOI

C#操作Excel有多种方法&#xff0c;如通过数据库的方式来读写Excel的OleDb方式&#xff0c;但是OleDb方式需要安装微软office&#xff0c;还可以通过COM组件方式操作Excel&#xff0c;也需要安装微软Excel。如果不想安装微软办公套餐可以使用ClosedXML、EPPlus、NPOI。本文主要…

【Linux】如何对文本文件进行有条件地划分?——cut命令

cut 命令可以根据一个指定的标记&#xff08;默认是 tab&#xff09;来为文本划分列&#xff0c;然后将此列显示。 例如想要显示 passwd 文件的第一列可以使用以下命令&#xff1a;cut –f 1 –d : /etc/passwd cut&#xff1a;用于从文件的每一行中提取部分内容的命令。-f 1&…

windows建立软链 报 无法将“mklink”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

当我执行网上提供的mklink 的时候&#xff0c;出现 mklink : 无法将“mklink”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。怎么回事&#xff0c;原来&#xff0c;要在执行的签名加 cmd /c 当我执行建立软链接时&#xff0c;提示 没有足够的权限&#xff0c;要用管理…

玩转大数据13: 数据伦理与合规性探讨

1. 引言 随着科技的飞速发展&#xff0c;数据已经成为了现代社会的宝贵资产。然而&#xff0c;数据的收集、处理和利用也带来了一系列的伦理和合规性问题。数据伦理和合规性不仅关乎个人隐私和权益的保护&#xff0c;还涉及到企业的商业利益和社会责任。因此&#xff0c;数据…

【ArcGIS微课1000例】0079:ArcGIS Earth根据经纬坐标生成点shapefile

本文以气象台站数据的生成为例,详细介绍ArcGIS Earth中导入X、Y经纬度坐标,生成Shapefile点数据的流程。 文章目录 一、气象台站分布二、添加经纬度坐标三、符号化设置四、另存为一、气象台站分布 根据气象台站的经纬度坐标,可以很方便的在各种GIS平台上生成点,并保存为多…

CPU运行AI模型记录

使用 CPU 运行 AI 模型 目前人工智能很火&#xff0c;但是手头没有合适的显卡&#xff0c;成了瓶颈和门槛&#xff0c;一直没机会试下。正好知乎上看到一篇文章&#xff0c; CPU 运行中文模型&#xff0c;最近换了台机器。垃圾佬 E5 平台&#xff0c;性能不高&#xff0c;但是…

附录A SQL入门之样例表

编写SQL语句需要良好地理解基本数据库设计。如果不知道什么信息存放在什么表中&#xff0c;表与表之间如何互相关联&#xff0c;行中数据如何分解&#xff0c;那么要编 写高效的SQL是不可能的。 强烈建议读者实际练习本书的每个例子。所有课都共同使用了一组数据文件。为帮助你…

Linux CentOS 7.6安装jdk1.8教程

安装教程 第一种方式&#xff08;通过yum安装&#xff09;&#xff1a;第一步&#xff1a;输入查找命令&#xff1a;第二步&#xff1a;输入安装命令&#xff1a;第三步&#xff1a;安装完成&#xff0c;输入安装命令后&#xff0c;等到出现Complete&#xff01;代表安装完成第…

springboot+jdbcTemplate+sqlite编程示例——以沪深300成分股数据处理为例

引言 我们在自己做一些小的项目或者小的数据处理分析的时候&#xff0c;很多时候是不需要用到mysql这样的大型数据库&#xff0c;并且也不需要用到maven这样很重的框架的&#xff0c;取而代之可以使用jdbcTemplatesqlite这样的组合。 本文就介绍一下使用springbootjdbcTempla…

画对比折线图【Python】

出这一期想必是我做某个课程作业遇到了。 由于去各个官网下载对比图要钱&#xff0c;我还是不想花钱的&#xff01;真讨厌&#xff01;浅浅水一期。 以下是要做的对比图的数据&#xff1a; 代码&#xff1a; from matplotlib import pyplot as plt#设置中文显示plt.rcParams[…

C语言 题目

1.写一个函数算一个数的二进制(补码)表示中有几个1 #include<stdio.h>//统计二进制数中有几个1 //如13:1101 //需要考虑负数情况 如-1 结果应该是32// n 1101 //n-1 1100 //n 1100 //n-1 1011 //n 1000 //n-1 0111 //n 0000 //看n的变化 int funca(int c){int co…

浪潮信息 KeyarchOS 安全可信攻防体验

1. KeyarchOS——云峦操作系统简介 KeyarchOS 即云峦服务器操作系统(简称 KOS)是浪潮信息基于 Linux 内核、龙蜥等开源技术自主研发的一款服务器操作系统&#xff0c;支持 x86、ARM 等主流架构处理器&#xff0c;广泛兼容传统 CentOS 生态产品和创新技术产品&#xff0c;可为用…

【Delphi】一个函数实现ios,android震动功能 Vibrate(包括3D Touch 中 Peek 震动等)

一、前言 我们在开发移动端APP的时候&#xff0c;有时可能需要APP能够提供震动功能&#xff0c;以便提醒操作者&#xff0c;特别是ios提供的3D Touch触感功能&#xff0c;操作者操作时会有触感震动&#xff0c;给操作者的感觉很友好。那么&#xff0c;在Delphi的移动端FMX开发中…

Java群聊程序

先运行服务端&#xff0c;如果不先连接服务端&#xff0c;就不监听&#xff0c;那客户端不知道连接谁 服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class QLFWD{public static ServerSocket server_socket;public static ArrayList<S…

Nacos 基础篇:Nacos简介、基本概念、基本架构、Standalone单机搭建部署

文章目录 什么是Nacos基本架构逻辑架构及其组件介绍领域模型数据模型服务领域模型配置领域模型 下载目录结构配置启动 什么是Nacos Nacos&#xff1a;(Dynamic) Naming and Configuration Service&#xff0c;动态的服务发现和配置的服务&#xff0c;是一个更易于构建云原生应…

二维码智慧门牌管理系统升级:社区关怀

文章目录 前言一、系统的工作原理二、系统功能与关怀服务三、社区关怀的意义 前言 随着科技的发展&#xff0c;生活日益智能化&#xff0c;门牌系统也随之发展。近日&#xff0c;一种新型的二维码智慧门牌管理系统正在崛起&#xff0c;以创新的方式将社区关怀融入到每一个家庭…

浮点数在计算机中如何存储

举例&#xff1a; 结果&#xff1a; 文字描述&#xff1a; 先将浮点数转化为二进制的表示形式&#xff0c; 接着将其二进制的形式按照科学计数法来表示&#xff0c; 符号位的确定&#xff1a;正数0&#xff0c; 负数1 指数的确定&#xff1a;将其二进制表示成为科学计数法…