百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

python怎样连接SQL数据库 python中怎么连接数据库

liebian365 2024-11-13 13:25 43 浏览 0 评论

#挑战30天在头条写日记#

当涉及到使用Python连接SQL数据库时,有两个常用的数据库类型,分别是SQLite和MySQL。在这篇博客中,我们将详细介绍如何使用这两种数据库类型进行连接、创建表、插入数据以及执行基本的SQL查询。

连接SQLite数据库

SQLite是一个轻量级的嵌入式数据库,适用于小型项目和原型开发。要连接SQLite数据库,首先需要导入sqlite3库,并执行以下步骤:

建立连接:使用sqlite3.connect()函数建立到数据库文件的连接。如果文件不存在,它会自动创建一个新的数据库文件。


import sqlite3
conn = sqlite3.connect('mydatabase.db')

connect('mydatabase.db') 是一个函数调用,它创建了一个到名为 'mydatabase.db' 的SQLite数据库文件的连接。如果文件不存在,它会自动创建一个新的数据库文件。如果已存在,它会连接到现有的数据库文件。 如下所示。

创建游标:创建一个游标对象,用于执行SQL查询。


cursor = conn.cursor()

游标对象充当了你与数据库之间的桥梁,允许你发送SQL命令并检索结果。要执行查询或修改数据,你将使用 cursor 对象来执行相应的操作。

执行SQL查询:使用游标对象执行SQL查询,例如创建表或插入数据。

cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 30))

提交更改:如果你进行了插入、更新或删除等更改操作,使用conn.commit()来提交更改。

要在Python中查询SQLite数据库中的数据,你可以使用sqlite3库来执行SQL查询。以下是一个基本的示例,演示如何查询SQLite数据库中的数据:


import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('mydatabase.db')
# 创建一个游标对象,用于执行SQL查询
cursor = conn.cursor()
# 执行SQL查询(示例:查询所有用户的信息)
cursor.execute("SELECT * FROM users")
# 检索查询结果
rows = cursor.fetchall()
# 打印查询结果
for row in rows:
 print("ID:", row[0])
 print("Name:", row[1])
 print("Age:", row[2])
# 关闭连接
conn.close()

在上述示例中,我们首先连接到SQLite数据库(确保替换'mydatabase.db'为你的数据库文件路径),然后创建一个游标对象。接下来,我们使用游标对象执行SQL查询,这里是一个简单的SELECT查询,选择了users表中的所有数据。

查询结果被存储在rows变量中,我们可以遍历它来访问每一行数据。在这个示例中,我们打印了每个用户的ID、姓名和年龄。如下所示。

关闭连接:最后,使用conn.close()关闭数据库连接。不要忘记在完成数据库操作后关闭连接,以释放资源并确保数据的安全性。完整代码如下所示。


import sqlite3
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('nihao', 28))
conn.commit()
conn.close()
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('mydatabase.db')
# 创建一个游标对象,用于执行SQL查询
cursor = conn.cursor()
# 执行SQL查询(示例:查询所有用户的信息)
cursor.execute("SELECT * FROM users")
# 检索查询结果
rows = cursor.fetchall()
# 打印查询结果
for row in rows:
 print("ID:", row[0])
 print("Name:", row[1])
 print("Age:", row[2])
# 关闭连接
conn.close()


连接MySQL数据库

MySQL是一个功能丰富的关系型数据库管理系统,用于大型应用程序和企业级项目。要连接MySQL数据库,首先确保已经安装了mysql-connector-python库,然后执行以下步骤:

建立连接:使用mysql.connector.connect()函数建立到MySQL数据库的连接,提供主机名、用户名、密码和数据库名称。如果你已经安装了mysql,那么还确保你已经安装了mysql-connector-python库。你可以使用以下命令来安装它:


pip install mysql-connector-python

否则会报错,ModuleNotFoundError: No module named ‘mysql‘。然后,你可以使用以下示例代码来连接到MySQL数据库并执行查询:


import mysql.connector
conn = mysql.connector.connect(
 host="localhost",
 user="username",
 password="password",
 database="mydatabase"
)
将上面的账号密码和你自己的一一对应,并创建数据库:如果数据库不存在,你可以创建一个新的数据库。在MySQL中,你可以使用以下SQL查询来创建一个数据库:

CREATE DATABASE mydatabase;

如下所示。如果是你自己的话,将mydatabase替换为你要创建的数据库名称。

创建游标:创建一个游标对象,用于执行SQL查询。


cursor = conn.cursor()

执行SQL查询:使用游标对象执行SQL查询,例如创建表或插入数据。


cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)''')
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ('Bob', 25))

提交更改:如果你进行了插入、更新或删除等更改操作,使用conn.commit()来提交更改。

然后,你可以使用以下示例代码来连接到MySQL数据库并执行查询:


import mysql.connector
# 建立数据库连接
conn = mysql.connector.connect(
 host="localhost",
 user="your_username", # 替换为你的MySQL用户名
 password="your_password", # 替换为你的MySQL密码
 database="your_database" # 替换为你要连接的数据库名称
)
# 创建一个游标对象,用于执行SQL查询
cursor = conn.cursor()
# 执行查询
query = "SELECT * FROM your_table" # 替换为你要查询的表名
cursor.execute(query)
# 获取查询结果
result = cursor.fetchall()
# 处理查询结果
for row in result:
 print(row)
# 关闭游标和数据库连接
cursor.close()
conn.close()

在上述示例中,需要替换以下内容:

  1. your_username:你的MySQL用户名。比如我的是root
  2. your_password:你的MySQL密码。
  3. your_database:你要连接的数据库名称。比如我是mydatabase
  4. your_table:你要查询的表名。
  5. 这个示例连接到数据库,执行一个简单的SELECT查询,然后打印查询结果。你可以根据你的实际需求更改查询语句和处理查询结果的方式。确保在使用时提供正确的数据库连接参数。如下所示。

关闭连接:最后,使用conn.close()关闭数据库连接。

这些步骤可以帮助你开始在Python中连接和操作SQL数据库。请根据你的项目需求和实际情况进行修改和扩展。连接数据库是许多应用程序的关键组成部分,希望这个博客能帮助你入门并开始使用SQL数据库呀。

相关推荐

4万多吨豪华游轮遇险 竟是因为这个原因……

(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...

“菜鸟黑客”必用兵器之“渗透测试篇二”

"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...

科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白

作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...

麦子陪你做作业(二):KEGG通路数据库的正确打开姿势

作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...

知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势

智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...

每日新闻播报(September 14)_每日新闻播报英文

AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...

香港新巴城巴开放实时到站数据 供科技界研发使用

中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...

5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper

本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...

Qt动画效果展示_qt显示图片

今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...

如何从0到1设计实现一门自己的脚本语言

作者:dong...

三年级语文上册 仿写句子 需要的直接下载打印吧

描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...

C++|那些一看就很简洁、优雅、经典的小代码段

目录0等概率随机洗牌:1大小写转换2字符串复制...

二年级上册语文必考句子仿写,家长打印,孩子照着练

二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...

一年级语文上 句子专项练习(可打印)

...

亲自上阵!C++ 大佬深度“剧透”:C++26 将如何在代码生成上对抗 Rust?

...

取消回复欢迎 发表评论: