【Python】操作数据库

news2024/9/29 13:18:09

一、数据库编程接口

为了对数据库进行统一的操作,大多数语言都提供了标准化的数据库接口(API)。数据库提供了接口,Python定义了规范(包括数据操作的对象、函数等),通过Python定义的对象就能直接调用数据库提供的接口来操作数据库。

API即应用程序接口,可以认为API是一个软件组件,或者是一个Web服务与外界进行交互的接口。

①从功能层面分析

可以将接口简单理解为一个盒子,其上游负责输入数据,下游负责输出参数,类似于平时的黑盒子测试对象。

②从数据流层面上

可以将接口理解为连接前端(Web页面、APP等)和数据库(Database)等后端的纽带,用于二者之间传递数据、处理数据等。

③从编程层面上

可以将接口理解为业务逻辑处理方法的外在表现形式。

1.连接对象

数据库连接对象主要提供获取数据库游标对象和提交/回滚事务的方法,以及关闭数据库连接。

获取连接对象,需要使用connect()函数。该函数包含多个参数,具体使用哪个参数,根据使用的数据库类型判断。

连接对象及其说明

方法名说明
close()关闭数据库连接
commit()提交事务
rollback()回滚事务
cursor()获取游标对象,数据库操作,如执行DML操作、调用存储过程等。

2.游标对象

游标对象主要提供执行SQL语句、调用存储语句、获取查询结果等方法

游标对象的属性:

description:

rowcount:返回行数统计信息,如果select、undate等。

游标对象及其说明

方法名说明
close()关闭当前游标
fetchone()获取查询结果集中的下一条记录
fetchall()获取结果集的所有记录
nextsize()跳至下一个可用的结果集

二、使用SQLite

SQLite以其零配置而闻名,所以不需要复杂的设置或者管理。因为其本身就只是一个.db文件,所以直接下载到电脑里相应的文件就可以运行了。

在Windows系统中安装SQLite数据库的操作步骤如下;

(1)打开SQLite官方网站或者访问下载页面-http://www.sqlite.org/download.html并下载预编译的Windows二进制文件

(2)下载sqlite-dll的zip文件,如图所示:,如sqlite-tools-win64-346000.zip文件

(3)将下载的.zip文件解压到目录文件夹,然后就可以使用sqlite了。

1.创建数据文本

创建sqlite数据库文件有以下两种方法

(1)暂时性数据库,程序关闭后数据不保存,一般用于临时数据验证或者临时测试,不利于数据库分离。操作步骤如下:直接双击运行sqlite3.exe应用程序,得到结果显示,如图所示,然后数据sqlite相关操作命令可以进行临时性的数据库操作。

(2)创建永久性的数据库文件,只要不认为删除,数据库文件一直保存。操作步骤如下:

①进入F:\sqlite目录并且使用cmd窗口打开sqlite3命令。输入sqlite3,如图所示

②使用sqlite数据库名.db的方式可以打开数据库文件夹,如果该文件不存在,则创建一个文件。例如,创建一个study.db的数据库文件,输入sqlite3 study.db,如图所示

③使用.database可以查看创建的数据库,或者在D:\sqlite数据库目录下查看新建的数据库

④然后使用.qiut命令退出sqlite提示符,如图:

三、使用MySQL

MySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite。

1.下载和安装MySQL

可以直接从MySQL官方网站上下载最新的版本。MySQL是跨平台,选择对应的平台下载安装文件,安装即可。

安装时,MySQL会提示输入root用户的命令,请务必记清楚。如果怕记不住,就把口令设置为password。

在Windows上,安装时请选择UTF-8编码,以便正确地处理中文。

2.安装PyMySQL

由于MySQL服务器以独立的进程运行,并且通过网络对外服务,所以需要支持Python的MySQL驱动来连接到MySQL服务器。MySQL官方提供了mysql-connector-python驱动,但是安装的时候需要给pip命令假设参数--allow-external。

$ pip install mysql-connector-python--allow-external mysql-connector-python

如果上面的命令安装失败,可以试试另一个驱动

$ pip install mysql-connector

3.由于Python的DB-API都是通用的,所以操作MySQL的数据库代码和SQLite类似。

4.创建数据表

连接到数据库后下一步可以创建数据表了.

创建MySQL数据表需要以下信息:①表名;②表字段名;③定义每个表字段。

创建MySQL数据表的SQL的通用语法:

creat table table_name(column_name column_type);

【说明】

(1)自增长代码代表:auto_increment

(2)主建代码代表:primary key

(3)外键的代码代表公式:foreign key(列名) referness 主表名  (列名)。foreignkey+(列名)代表给哪一个加外键;references要引用哪个表里的列。

(4)是否为空:不为空的代码是not null。

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

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

相关文章

对称加密 和 非对称加密

对称加密 和 非对称加密 文章目录 对称加密 和 非对称加密对称解密——异或运算非对称解密——RSA算法问题RSA算法社会地位缺点 PS:RSA算法的攻击方式 如果对你有帮助,就点赞收藏把!(。・ω・。)&am…

支持10K长视频理解的多模态大模型MovieChat(CVPR 2024)

MovieChat: From Dense Token to Sparse Memory for Long Video Understanding 论文信息 paper:CVPR 2024 code:https://rese1f.github.io/MovieChat/ 视觉模型大语言模型:首个支持10K帧长视频理解任务的新型框架(推荐这篇公众号…

小程序开发全攻略:从零到上线的实战历程

引言 在当今的数字化时代,小程序凭借其轻便、快捷的特点,成为了连接用户与服务的桥梁。作为一名开发者,你可能正考虑踏入小程序开发的领域,但面对纷繁复杂的开发流程和技术要点,或许会感到无从下手。今天,我…

C 语言文件操作详解

目录 引言 一、基本概念 1.什么是文件 2.文件的属性 3.为什么使用文件 4.二进制文件和文本文件 二、文件的打开和关闭 1.流和标准流 2.文件指针 3.文件的打开和关闭 三、⽂件的顺序读写 1.顺序读写函数 2.详细介绍 1.fgetc 2.fputc 3.fgets 4.fputs 5.fscan…

统计:多变量时间序列分析 — VMA、VAR、VARMA

统计:多变量时间序列分析 — VMA、VAR、VARMA 一、说明 多变量时间序列是一个在大学课堂上经常被忽视的话题。然而,真实世界的数据通常具有多个维度,我们需要多变量时间序列分析技术。在这篇博客中,我们将通过可视化和 Python 实现…

【GLM-4开发实战】Function Call进阶实战:外部函数调用回顾

系列篇章💥 No.文章1【GLM-4开发实战】Function Call进阶实战:外部函数调用回顾2【GLM-4开发实战】Function Call进阶实战:常见挑战之意图识别处理3【GLM-4开发实战】Function Call进阶实战:常见挑战之海量函数处理4【GLM-4开发实…

【STM32】GPIO和AFIO标准库使用框架

本篇博客重点在于标准库函数的理解与使用,搭建一个框架便于快速开发 目录 GPIO简介 GPIO时钟使能 GPIO初始化 工作模式 选择引脚 输出速度 函数应用 GPIO初始化框架 8个电平读写函数 写端口电平 读端口电平 GPIO框架汇总 AFIO简介 AFIO时钟使能 函数应…

【Material-UI】深入理解useAutocomplete Hook:自定义与高级用法

文章目录 一、什么是useAutocomplete?导入useAutocomplete 二、基本用法代码解析 三、高级定制1. 自定义选项渲染2. 分组和排序3. 自定义输入框行为4. 与其他组件集成 四、注意事项1. 类型安全2. 性能优化 五、总结 Material-UI提供了强大的Autocomplete组件&#x…

Stable Diffusion绘画 | 图生图-基础使用介绍—重绘幅度与缩放模式

重绘幅度 重绘幅度越大,出图与原图差异越大。 重绘幅度0.7 重绘幅度0.3 缩放模式 目前有以下四种缩放模式: 原图的宽高是1080x1440,当修改宽高,与原图不一致时,可选择其中一种缩放模式来处理图片。 仅调整大小 缩放…

C++入门基础(上篇)

C入门基础(上篇) hello everybody!经历了C语言和初阶数据结构的头脑风暴,相信大家对于编程的学习更加开心,所以说接下来我们将迎来C的学习与探索,话不多说让我们开始吧 namespace的价值 在C/C中,变量、函…

计算机毕业设计选题推荐-自习室座位预约系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

GD32 MCU硬件I2C不可靠不如软件I2C?

在一个评论中,看到网友对硬件I2C的讨论,硬件I2C Busy找不到原因、软件I2C稳得一批。 那么为什么会出现I2C BUSY?硬件I2C真的不如软件I2C吗?怎么让硬件I2C也稳得一批,让我们来一探究竟。 首先我们从I2C时序分析下I2C总…

基于pytorch的steam游戏评分的线性回归问题分析

前言 相信已经暑假一个月的大家肯定并不陌生上面这个学习软件(),面对琳琅满目的游戏总是让人不知道挑选什么,这时候一个游戏的评分往往便成为了一个玩家选择下载的原因,那么今天我们就来研究研究,steam上一个游戏的种种数据&…

Celery注册装饰器@app.task和@shared_task

注册装饰器 app.task和shared_task是Celery中用于定义任务的两种不同装饰器, 它们之间存在明显的区别.from celery import Celery app Celery(my_app, brokeramqp://guestlocalhost//) app.task def my_task(): # 任务逻辑 passfrom celery import shared_task shared…

数据结构——双链表详解(超详细)

前言: 小编在之前已经写过单链表的创建了,接下来要开始双链表的讲解了,双链表比单链表要复杂一些,不过确实要比单链表更好进行实现!下面紧跟小编的步伐,开启今天的双链表之旅! 目录 1.概念和结构…

Pixart LED调变开发笔记

Pixart提供基础的鼠标和键盘代码, 开发者可以基于此快速的建置自己的firmware, application, 以下介绍代码中用来控制LED的API函式. 常亮模式 (Always on) 常亮模式, 调用API "pwm_led_set_always_on" 及 channel 来设置对应LED常亮. 闪烁模式 (Flash mode) 闪烁模…

华为OD机试 - 字符串编码校验(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(D卷C卷A卷B卷)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华…

Unity3D 物体圆周运动

Unity3D 实现一个 2D 物体沿着圆周进行运动。 物体圆周运动 前段时间在开发一个小游戏时,需要实现火箭沿着一个圆形轨道进行圆周运动。 以前面试的时候也被问到过这类问题(如何让一个 2D 物体做圆周运动),所以还是记录一下实现…

ICML 2024 | 矛与盾的较量!北大提出提示无关数据防御保护算法PID

文章链接:https://arxiv.org/pdf/2406.15305 代码地址:https://github.com/PKU-ML/Diffusion-PID-Protection 亮点直击 本文在实证观察中发现,保护阶段和利用阶段之间的提示不匹配可能会削弱当前数据保护算法的有效性。本文深入探讨了利用LDM…