首页 > 数据库 >跟我一起学 Python 数据处理(三十九):数据库世界的探秘之旅

跟我一起学 Python 数据处理(三十九):数据库世界的探秘之旅

时间:2025-01-14 23:33:49浏览次数:3  
标签:关系 http Python 数据库 三十九 table 探秘 friend

跟我一起学 Python 数据处理(三十九):数据库世界的探秘之旅

在数据的广袤天地中,我们始终秉持着共同学习、共同进步的理念,希望能引领大家逐步深入 Python 数据处理的核心领域。上一篇博客我们了解了数据存储的基础要点和案例实战,今天将聚焦于数据库这个关键部分,为大家详细剖析其奥秘。

一、关系型数据库深度解析

关系型数据库如 MySQL 和 PostgreSQL,对于具有复杂关联性的数据处理十分有效。就像一个庞大的家族树,它通过唯一标识符(如 SQL 中的 ID)将各个数据节点紧密相连。

以朋友信息为例,如果要构建一个朋友数据库,可能会有 friend_table 表存储朋友的基本信息,像 friend_id、friend_name、friend_date_of_birth 等字段;friend_occupation_table 表存放职业信息,包含 friend_occupation_id 等;friends_and_hobbies_table 表关联朋友和他们的爱好,通过 friend_id 与其他表建立联系。当我们想查询 Meghan 的爱好时,首先在 friend_table 中根据 Meghan 的其他已知信息获取其 friend_id,然后凭借这个 friend_id 在 friends_and_hobbies_table 中查找对应的爱好 ID,最后在 hobby_details_table 中了解这些爱好 ID 对应的具体爱好内容。

在构建关系型数据库时,深入研究数据之间的关系和属性映射至关重要。要思考数据的使用频率,合理安排字段位置,比如将 occupation_id 放在 friend_table 中,方便根据职业查找朋友。同时,关系型数据库存在多种关系类型,如多对多关系(多个朋友可能有相同爱好)和多对一关系(多个宠物对应一个主人)。如果想深入学习 SQL 和关系型数据库,推荐访问“Learn SQL The Hard Way”(http://sql.learncodethehardway.org/)和“SQLZOO”(http://sqlzoo.net/)这两个网站。

对于 Python 与 MySQL 的连接,只需两步:安装 MySQL 驱动程序,并在 Python 中发送验证信息(用户名、密码、主机名、数据库名称),在 Stack Overflow 上能找到大量相关优质回答。而 Python 连接 PostgreSQL 也类似,先安装驱动程序,常用的如 Psycopg(http://initd.org/psycopg/),其安装页面(http://initd.org/psycopg/docs/install.html)和 PostgreSQL 网站(https://wiki.postgresql.org/wiki/Psycopg2_Tutorial)都有详细介绍。

二、非关系型数据库(NoSQL)概览

当数据关系复杂到让人头疼,或者数据本身是平面无关联的,NoSQL 数据库就派上用场了。它通常将数据存储为 JSON 格式,查找信息相对简单。例如,存储朋友 Meghan 的信息时,可以用一个类似 { ‘name’: ‘Meghan’, ‘occupation’: { ‘employer’: ‘NYT’, ‘role’: ‘design editor’, ‘birthplace’: ‘Ohio’, ‘hobbies’: [‘cooking’, ‘dancing’, ‘teaching’] } } 的结构,无需像关系型数据库那样创建多个表。

关系型数据库在处理复杂关系网络数据的快速查询方面表现出色,而非关系型数据库则在速度、可用性和复用性上有优势。如果对某种数据库有特别的兴趣,可依此选择,但也不要过早局限于一种数据库格式,因为有工具可实现两者之间的迁移,如 Matt Asay 关于将 Foursquare 从关系型数据库迁移到 NoSQL 数据库的文章(http://www.techrepublic.com/blog/the-enterprise-cloud/migratingfrom-a-relational-to-a-nosql-cloud-database/)以及 Quora 上的相关文章都值得参考。

以 MongoDB 为例,它是一种流行的 NoSQL 数据库框架。使用时,先安装驱动程序(http://docs.mongodb.org/ecosystem/drivers/python/),然后在 Python 中连接。在 PyCon 2012 上的演讲“Getting Started with MongoDB”(https://github.com/behackett/presentations/tree/master/pycon_2012)是很好的学习起点。

三、Python 创建本地数据库实践

对于初学者来说,Dataset 库(http://dataset.readthedocs.io/)是快速上手数据库和 Python 结合的得力助手。它就像一个翻译官,能把 Python 代码转换为数据库操作代码,加速开发进程。

首先要安装 Dataset,如果已安装 pip,在终端输入 pip install dataset 即可。接着确定后端数据库,如果熟悉 PostgreSQL 或 MySQL,可按相应语法创建新数据库;若不太了解数据库,推荐使用 SQLite。先从 http://www.sqlite.org/download.html 下载对应操作系统的 SQLite 二进制文件并安装。在终端切换到保存 Python 数据处理脚本的项目文件夹,输入 sqlite3 data_wrangling.db 创建新的 SQLite 数据库,看到 sqlite> 提示符后可输入.q 退出。此时文件夹中会出现 data_wrangling.db 文件,即创建成功的数据库。之后在 Python 中运行以下代码示例来连接数据库:

import dataset

# 连接到之前创建的 SQLite 数据库,注意这里的路径要根据实际情况调整
db = dataset.connect('sqlite:///data_wrangling.db')  

# 假设我们要插入一些简单的数据,这里创建一个包含网站信息的数据表
table = db['websites']  
data = {
    'name': 'Example Site',  
    'url': 'http://example.com',  
    'description': 'This is an example website.'  
}
table.insert(data)  

print("数据已成功插入到数据库中!")

在这个示例中,我们首先导入 dataset 库,然后连接到之前创建的 SQLite 数据库。接着创建了一个名为 ‘websites’ 的数据表,并向其中插入了一条包含网站名称、网址和描述的数据记录。最后打印提示信息表示数据插入成功。

通过这些步骤和示例,我们可以初步掌握 Python 与数据库的交互操作,为后续更复杂的数据处理和分析奠定基础。

希望这篇博客能为大家在 Python 数据处理的学习道路上点亮一盏明灯。写作过程中付出了诸多心血,如果您觉得这篇文章对您有所帮助,请关注我的博客,点赞和评论,您的支持将激励我持续为大家带来更多有价值的内容,让我们一起在数据处理的领域不断前行!

标签:关系,http,Python,数据库,三十九,table,探秘,friend
From: https://blog.csdn.net/yyy173611/article/details/145149644

相关文章

  • python脚本:批量修改图片名称
    运用演示:  步骤:1.将需要修改名称的图片放在一个文件夹中,选择此文件夹2.输入命名格式,进行重命名代码:直接将下列代码复制到python编译器中即可importosfrompathlibimportPathimporttkinterastkfromtkinterimportfiledialog,messageboxclassImageRen......
  • python开发安卓程序
    资料Python利用appium实现模拟手机滑动操控的操作_python滑动手机屏幕-CSDN博客直接使用库:appium其他依赖:编译环境:打包工具:新技能:用Python写一个安卓APP-逆锋起笔-博客园(cnblogs.com)直接使用库:kivy其他依赖:python -m pip install docutils pygmentspypiwin......
  • Python中LLM的模型稀疏化训练:L0正则化与彩票假设
    文章目录引言1.模型稀疏化的背景与意义1.1模型稀疏化的动机1.2稀疏化的主要方法2.L0正则化2.1L0正则化的理论基础2.2L0正则化的实现2.3L0正则化的优缺点3.彩票假设3.1彩票假设的理论基础3.2彩票假设的实现3.3彩票假设的优缺点4.L0正则化与彩票假设的结合5......
  • 《CPython Internals》阅读笔记:p151-p151
    《CPythonInternals》学习第9天,p151-p1510总结,总计1页。一、技术总结无。二、英语总结(生词:1)1.marshal(1)marshalingMarshallingormarshaling(USspelling)istheprocessoftransformingthememoryrepresentationofanobjectintoadataformsuitablefo......
  • Autopy 是一款基于 Python 和 Rust 的强大 GUI 自动化库
    Autopy是一款基于Python和Rust的强大GUI自动化库,它为开发者提供了简便且高效的API来模拟鼠标和键盘的操作、在屏幕上查找颜色和位图以及显示警报。这些功能使得Autopy成为了一个跨平台的自动化工具,适用于MacOSX、Windows以及支持XTest扩展的X11系统。跨......
  • 【Python】从爬虫小白到牢饭大佬
    也许在某一个平行时空里,我们美好地相遇,白头偕老;也可能在另一个平行时空里,我们在人海中无数次擦身而过,素昧平生;只可惜在这个时空里,你的名字叫遗憾。 爬虫简介 1.网络爬虫,是一种按照一定的规定,自动抓取互联网信息的程序或者脚本。2.爬虫运行原理:先获取数据,再处理数据,......
  • 从零开始的python之旅(day3)
    从零开始的python之旅(day3)  越学python越觉得其功能丰富,而且相对于c语言来说,python可能更适合新手入门,两个都是相通的,看自己对哪方面感兴趣吧  先让我们来对昨天作业收一下尾  BMIx=float(input('请输入体重(kg)\n'))y=float(input('请输入身高(m)\n'))bmi=float(......
  • Python处理Excel数据的方法,这一篇文章就够了!!
    Excel是数据处理的“瑞士军刀”,在日常工作中扮演着重要角色。然而,面对复杂的Excel文件时,手动处理显然效率低下。那么,如何利用Python高效地处理Excel数据?xlrd、xlwt、openpyxl和pandas是不可或缺的利器。今天,我们就来深度剖析这些工具,教你用Python优雅地操作Excel!......
  • python语言A站视频爬虫程序代码QZQ1
    importrequestsimportosimportsubprocess#https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/3fd2d78e1ebba085-529617cf38bbad5860227fbdf3a41546-hls_720p_2.00003.ts?pkey=ABC_F8k9Ed6OSnAdir8rrRmbYfeU39b5CvYeJQ3ttw8ZLQzlfk1NZNLJOlmwW-9ENIIuNL......
  • python语言tengxunshipin爬虫程序代码QZQ2
    importrequests#找媒体的请求url即可。url=‘https://f3e3963e336d9d3bdc18adcb0240e796.v.smtcdns.com/music.qqvideo.tc.qq.com/AIRFhqAd3UEXqwLOz5sfupz_V8TD-xZxVeAZnZUXZJYg/B_JxNyiJmktHRgresXhfyMep_mLAvgwYmAjetftmCCCW-f7a09P0_-_3BS3XuKJsUR/k0012md5982.mp4......