Python轻松操作数据库 (python 操作数据库)

作为目前更受欢迎的编程语言之一,Python已经成为了许多开发人员的首选语言。Python的优点包括代码易读、语法简单、大量支持库等优点。与此同时,Python的生态系统也非常丰富,包含了大量的第三方库,可用于执行各种各样的任务。

其中,Python在操作数据库方面表现得尤为出色。Python可以运用不同的库连接和操作多种类型的数据库,这使得它成为了数据科学家和软件开发人员更受欢迎的语言之一。在本文中,我们将介绍在Python中使用SQLAlchemy和Psycopg2库操作数据库的方法。

SQLAlchemy库

SQLAlchemy是一个开源Python库,用于操作关系数据库。它提供了一种简单且灵活的方式,用Python语言操作关系型数据库(SQL数据库)。 SQLalchemy被广泛应用于Web应用程序中,如Flask、Django、Bottle等框架。SQLAlchemy通过ORM,提供了一种类似于SQL语言的操作方式。

安装SQLAlchemy

要使用SQLAlchemy,需要在Python环境中安装它。可以通过以下方式安装:

“`python

!pip install sqlalchemy

“`

连接数据库

在使用SQLAlchemy库之前,必须先建立与数据库的连接。为此,需要定义数据库的URL,该URL包含以下元素:

– 数据库引擎(dialect) – 在SqlAlchemy中,这通常是一个带Chrome或mysql的名称

– 连接的用户名和密码

– 数据库主机和端口

– 数据库名称

下面是一个连接到SQL服务器的示例:

“`python

from sqlalchemy import create_engine

engine = create_engine(‘mssql+pyodbc://user:pass@dns’)

“`

在上面的示例中,创建了一个SQLAlchemy引擎,以便使用ODBC连接来连接到SQL服务器。可以将engine变量用于打开数据库连接的控制。完成之后,就可以使用SQLAlchemy来执行SQL操作。

执行SQL查询

可使用SQLAlchemy CRUD(CRUD(Create, Read, Update, Delete)操作。

下面是一个从本地SQLite数据库创建表格的示例:

“`python

from sqlalchemy import create_engine, Table, Column, Integer, MetaData

engine = create_engine(‘sqlite:///some.db’)

metadata = MetaData()

table = Table(‘mytable’, metadata,

Column(‘id’, Integer, primary_key=True),

Column(‘name’, String),

Column(‘age’, Integer),

)

metadata.create_all(engine)

“`

在上面的示例中,安装并创建Meta到和表的定义。这个表在SQLite数据库中使用用户ID、名称和年龄列创建一个列。结果表User是由元数据对象的调用创建的。调用metadata.create_all(engine)将表创建到已定义的数据库中。

现在,使用SQLAlchemy来执行SQL SELECT语句从User表中选择所有条目的示例。

“`python

from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData

from sqlalchemy.sql import select

engine = create_engine(‘sqlite:///some.db’)

metadata = MetaData()

mytable = Table(‘mytable’, metadata,

Column(‘id’, Integer, primary_key=True),

Column(‘name’, String),

Column(‘age’, Integer),

)

conn = engine.connect()

select_st = select([mytable])

result = conn.execute(select_st)

for row in result:

print(row)

“`

在此示例中,从mytable中选择了所有条目,每个条目都包含一个id、name和age字段。然后使用engine.connect()打开一个数据库连接,该连接可以执行SQL查询。使用conn.execute(select_all)执行查询,并将结果迭代打印到命令行中。

Psycopg2

与SQLAlchemy一样,Psycopg2是一种与Python库兼容的PostgreSQL数据库开发库。它可以用来连接、查询、读写和管理PostgreSQL数据库。一些典型的应用场景包括后端开发、数据科学、数据分析、GIS、Web应用程序和云计算等。

安装Psycopg2

在Python环境中,可以使用以下安装psycopg2:

“`python

!pip install psycopg2-binary

“`

连接到数据库

连接到PostgreSQL数据库与连接到其他数据库类似。类似地,必须指定连接字符串(dsn),该字符串包含以下信息:

– 主机名、端口号

– 用户名

– 密码

– 数据库名

可以使用psycopg2.connect()来创建连接:

“`python

import psycopg2

dsn_database = “someDatabase”

dsn_hostname = “mydbinstance.somehost.net”

dsn_port = “5432”

dsn_uid = “someUser”

dsn_pwd = “secret”

conn_string = “host=”+dsn_hostname+” port=”+dsn_port+” dbname=”+dsn_database+” user=”+dsn_uid+” password=”+dsn_pwd

conn = psycopg2.connect(conn_string)

“`

在上面的示例中,将所有连接信息添加到一个连接字符串中,并使用psycopg2.connect()创建连接。

执行SQL查询

下面是一个使用Psycopg2执行SQL查询的示例。在此示例中,创建了一个数据库表(employees),并向其添加一些数据。接下来,以选择所有记录并打印结果的方式使用SELECT查询对表执行操作。

“`python

#!/usr/bin/python

import psycopg2

def mn():

conn_string = “host=’localhost’ dbname=’mydatabase’ user=’myusername’ password=’mypassword'”

try:

conn = psycopg2.connect(conn_string)

cursor = conn.cursor()

# 创建employees表

cursor.execute(“CREATE TABLE employees (id SERIAL PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), hire_date DATE)”)

# 插入一个新的employee

cursor.execute(“INSERT INTO employees (first_name,last_name,hire_date) VALUES (‘John’, ‘Doe’, ‘2023-01-01’)”)

# 获取所有employees

cursor.execute(“SELECT * FROM employees”)

rows = cursor.fetchall()

for row in rows:

print(row)

cursor.close()

conn.close()

except Exception as e:

print(str(e))

if __name__ == “__mn__”:

mn()

“`

在上面的示例中,首先我们创建一个employees表格,它包含id(自增长主键),first_name,last_name和hire_date字段。然后,我们添加了一个名为John Doe的新员工。使用SELECT获取并打印所有employee的结果。

在本文中,我们介绍了Python中使用SQLAlchemy和Psycopg2库操作数据库的方法。无论你使用的是何种数据库,都可以使用Python来操作数据库。Python在操作数据库方面的优点包括简洁易读的代码、广泛可用的库以及可运用不同的库连接和操作多种类型的数据库等。无论你是数据科学家、软件开发人员还是其他人员,掌握Python操作数据库的技能对你的工作和学习都非常有帮助。


数据运维技术 » Python轻松操作数据库 (python 操作数据库)