📜  Python关系数据库(1)

📅  最后修改于: 2023-12-03 15:04:37.788000             🧑  作者: Mango

Python关系数据库

什么是关系数据库?

关系数据库是以表格的形式储存和管理数据的数据库。每个表格代表一个实体,包含多个列(字段)和多个行(记录)。关系数据库还提供了一种称为SQL(Structured Query Language)的标准查询语言,用于检索和操作数据。

Python中的关系数据库

Python中提供了多种关系数据库管理系统的接口,其中最常用的是SQLite、MySQL和PostgreSQL。这些数据库可以通过Python内置的sqlite3、mysql-connector-python和psycopg2等模块进行访问。

SQLite

SQLite是一款轻量级、开源的关系数据库系统。它不需要特别的服务器进程或配置,数据以一个单一的文件存储在本地磁盘上。此外,SQLite还使用了一种称为“嵌入式数据库”的设计方法,在应用程序中直接嵌入数据库引擎,从而避免了客户端/服务器模式下的网络开销等问题。

以下是Python中使用SQLite进行数据库操作的示例代码:

import sqlite3

# 连接数据库
conn = sqlite3.connect('test.db')

# 创建表格
conn.execute('''CREATE TABLE COMPANY
            (ID INT PRIMARY KEY NOT NULL,
            NAME TEXT NOT NULL,
            AGE INT NOT NULL,
            ADDRESS CHAR(50),
            SALARY REAL);''')

# 插入数据
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
            VALUES (1, 'Paul', 32, 'California', 20000.00)")
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
            VALUES (2, 'Allen', 25, 'Texas', 15000.00)")
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
            VALUES (3, 'Teddy', 23, 'Norway', 20000.00)")
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
            VALUES (4, 'Mark', 25, 'Rich-Mond', 65000.00)")

# 提交更改并关闭连接
conn.commit()
conn.close()
MySQL

MySQL是一个流行的开源关系数据库管理系统,在互联网应用开发中得到了广泛的应用。通过Python提供的mysql-connector-python模块,可以轻松地连接和操作MySQL数据库。

以下是Python中使用mysql-connector-python进行数据库操作的示例代码:

import mysql.connector

# 连接数据库
cnx = mysql.connector.connect(user='root', password='123456',
                              host='127.0.0.1',
                              database='test')

# 创建游标对象
cursor = cnx.cursor()

# 创建表
create_table_query = '''
CREATE TABLE EMPLOYEE (
  ID INT NOT NULL AUTO_INCREMENT,
  FIRST_NAME VARCHAR(20) NOT NULL,
  LAST_NAME VARCHAR(20),
  AGE INT,
  SEX CHAR(1),
  INCOME FLOAT,
  PRIMARY KEY (ID)
)
'''
cursor.execute(create_table_query)

# 插入数据
insert_query = '''
INSERT INTO EMPLOYEE (FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('John', 'Doe', 28, 'M', 5000)
'''
cursor.execute(insert_query)

# 提交更改并关闭连接
cnx.commit()
cnx.close()
PostgreSQL

PostgreSQL是一款功能强大的开源关系数据库管理系统。Python提供了psycopg2模块来访问和操作PostgreSQL数据库。

以下是Python中使用psycopg2进行数据库操作的示例代码:

import psycopg2

# 连接数据库
conn = psycopg2.connect(database="test", user="postgres",
                        password="123456", host="127.0.0.1", port="5432")
print("Opened database successfully")

# 创建表
cur = conn.cursor()
cur.execute('''CREATE TABLE COMPANY
           (ID INT PRIMARY KEY     NOT NULL,
            NAME           TEXT    NOT NULL,
            AGE            INT     NOT NULL,
            ADDRESS        CHAR(50),
            SALARY         REAL);''')
print("Table created successfully")

# 插入数据
cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
            VALUES (1, 'Paul', 32, 'California', 20000.00)")
cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
            VALUES (2, 'Allen', 25, 'Texas', 15000.00)")
cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
            VALUES (3, 'Teddy', 23, 'Norway', 20000.00)")
cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
            VALUES (4, 'Mark', 25, 'Rich-Mond', 65000.00)")
print("Records created successfully")

# 提交更改并关闭连接
conn.commit()
conn.close()
总结

Python提供了多种关系数据库管理系统的接口,包括SQLite、MySQL和PostgreSQL。经过简单的学习和实践,你可以使用Python编写代码来访问和操作关系数据库,更好地管理和使用数据。