Python对数据库操作

Python对数据库操作的完整攻略

概述

Python作为一门广泛应用于数据处理领域的编程语言,对于数据库操作的支持也是早已被广泛开发和应用的。通过Python能够方便地进行各类数据库管理,如连接数据库、查询数据、修改数据等。本文将带领读者深入了解Python对数据库操作的完整攻略,供读者参考。

数据库连接

Python涉及到常用的数据库连接有以下几种方式:

SQLite数据库连接

SQLite是一款嵌入式的轻量级数据库,Python支持对SQLite数据库的连接。在Python中,可以使用sqlite3模块进行SQLite的数据库连接。代码示例如下:

import sqlite3

# 连接到SQLite数据库,如果数据库不存在,则会自动创建
conn = sqlite3.connect('test.db')
# 创建一个游标Cursor
cursor = conn.cursor()
# 执行一条SQL语句,创建表
cursor.execute("CREATE TABLE IF NOT EXISTS STUDENT (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL)")
# 执行一条SQL语句,插入记录
cursor.execute("INSERT INTO STUDENT(ID, NAME, AGE) VALUES(1, 'Tom', 18)")
# 提交事务
conn.commit()
# 关闭Cursor
cursor.close()
# 关闭连接
conn.close()

MySQL数据库连接

MySQL是一款流行的开源数据库,Python通过pymysql或mysql-connector-python等第三方库支持对MySQL的数据库连接。代码示例如下:

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "testuser", "test123", "testdb")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 执行一条SQL语句,创建表
cursor.execute("CREATE TABLE IF NOT EXISTS STUDENT (ID INT PRIMARY KEY NOT NULL, NAME CHAR(20) NOT NULL, AGE INT NOT NULL)")
# 执行一条SQL语句,插入记录
cursor.execute("INSERT INTO STUDENT(ID, NAME, AGE) VALUES(1, 'Tom', 18)")
# 提交事务
db.commit()
# 关闭Cursor
cursor.close()
# 关闭连接
db.close()

Oracle数据库连接

Oracle是一款商业的数据库,Python可以通过cx_Oracle等第三方库支持对Oracle的数据库连接。代码示例如下:

import cx_Oracle

# 连接Oracle数据库
conn = cx_Oracle.connect('username/password@host:port/SID')
# 创建一个cursor
cursor = conn.cursor()
# 执行一条SQL语句,创建表
cursor.execute("""
          CREATE TABLE STUDENT
          (ID INT PRIMARY KEY NOT NULL,
          NAME VARCHAR2(16) NOT NULL,
          AGE INT NOT NULL)
          """)
# 执行一条SQL语句,插入记录
cursor.execute("INSERT INTO STUDENT(ID, NAME, AGE) VALUES(1, 'Tom', 18)")
# 提交事务
conn.commit()
# 关闭Cursor
cursor.close()
# 关闭连接
conn.close()

数据库查询

Python提供了在数据库中查询记录的方法,示例如下:

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "testuser", "test123", "testdb")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 执行一条SQL语句,查询记录
cursor.execute("SELECT * FROM STUDENT")
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
    id = row[0]
    name = row[1]
    age = row[2]
    # 打印结果
    print("id=%d,name=%s,age=%d" % (id, name, age))
# 关闭Cursor
cursor.close()
# 关闭连接
db.close()

数据库修改

Python提供了在数据库中修改记录的方法,示例如下:

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "testuser", "test123", "testdb")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 执行一条SQL语句,修改记录
cursor.execute("UPDATE STUDENT SET AGE = AGE + 1 WHERE ID = 1")
# 提交事务
db.commit()
# 获取修改后的记录
cursor.execute("SELECT * FROM STUDENT")
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
    id = row[0]
    name = row[1]
    age = row[2]
    # 打印结果
    print("id=%d,name=%s,age=%d" % (id, name, age))
# 关闭Cursor
cursor.close()
# 关闭连接
db.close()

总结

Python对各种类型数据库的连接和操作都提供了相应的支持,让Python开发人员能够方便地使用Python代码操作数据库。上述代码仅提供了基础用法的简单示例,读者可根据自身需求进行扩展和定制化实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python对数据库操作 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 在Mac OS上安装Oracle数据库的基本方法

    下面是详细讲解在Mac OS上安装Oracle数据库的基本方法的完整攻略。 确认环境 在安装Oracle之前,首先需要确认以下条件: Mac OS版本:Oracle 12c仅支持OS X 10.10 Yosemite及以上版本,Oracle 11g支持OS X 10.6及以上版本; 硬件要求:建议内存至少为2GB,空闲磁盘空间不少于10GB; 下载Oracl…

    database 2023年5月22日
    00
  • CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录

    这里是 CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录的完整攻略,包括安装过程和示例说明。 1. 安装 CentOS 首先,我们需要在服务器上安装 CentOS 操作系统。可以从 CentOS 官网上下载镜像文件,并使用制作安装盘或者使用虚拟机等方式安装。 2. 安装必要的软件 安装 CentOS 后,我们需要安装一…

    database 2023年5月22日
    00
  • 写给正在读计算机专业的同学 该如何学习

    写给正在读计算机专业的同学 学习目标的明确与制定 首先,你需要明确自己的学习目标,比如是想学习编程语言,学习算法与数据结构,还是学习计算机系统知识等等。随之而来,你需要制定一个合理可行的学习计划,详细规划每一步的学习目标和时间安排。同时,要充分考虑到自己的实际情况和能力水平,以及资源情况等因素。 学习资源的获取 学习计划和目标确定之后,就需要开始获取学习资源…

    database 2023年5月22日
    00
  • MySQL给数据库表添加字段

    MySQL 给数据库表添加字段的方法: ALTER TABLE 语句 ALTER TABLE 语句可以在数据表中添加、修改或删除字段。 添加字段: 语法:ALTER TABLE table_name ADD column_name column_definition; 例: ALTER TABLE student ADD age INT(3); 在 stud…

    MySQL 2023年3月9日
    00
  • Mysql合并结果接横向拼接字段的实现步骤

    实现Mysql合并结果接横向拼接字段需要使用到Mysql的联接查询和GROUP_CONCAT函数,具体步骤如下: 1.使用联接查询将需要合并的表联接起来,联接的条件为两个表中的一列或多列数据相同。 SELECT A.id, A.name, B.age FROM tableA A JOIN tableB B ON A.id = B.id; 以上示例中,假设ta…

    database 2023年5月22日
    00
  • Oracle定义联合数组及使用技巧

    Oracle联合数组(Associative Array)定义及使用技巧 什么是Oracle联合数组? Oracle联合数组是一种复合数据类型,也称为关联数组或索引数组。它是由一组键/值对组成的数据结构,用于存储和访问多个值。 与标准数组不同,Oracle联合数组的键可以是任何数据类型,包括字符串、数字和日期等。它不需要预定义数组的大小,可以在运行时动态添加…

    database 2023年5月21日
    00
  • Linux下二进制方式安装mysql5.7版本和系统优化的步骤

    安装MySQL 5.7版本并进行系统优化的步骤如下: 步骤一:准备工作 下载MySQL 5.7安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 解压安装包 rpm -ivh mysql57-community-release-el7-11.noarch…

    database 2023年5月22日
    00
  • Sql Server 分组统计并合计总数及WITH ROLLUP应用

    下面我来为你详细讲解 “Sql Server 分组统计并合计总数及WITH ROLLUP 应用” 的完整攻略。 什么是分组统计? 在 SQL Server 中,分组统计是统计数据时将数据按照某个列或某几个列进行分组,然后统计某些列的数值计算出来的过程。在分组统计中,经常用到的是 GROUP BY 语句。GROUP BY 语句使用时,必须要指定按照哪个字段进行…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部