Python SQL 查询并打印结果

随着数据处理和分析技术的不断发展,SQL成为了数据查询和管理中的重要工具之一。而Python作为一种流行的编程语言,也提供了丰富的库和模块来执行SQL查询。在本文中,我们将介绍如何使用Python进行SQL查询,并打印结果。

关系图

在数据库中,数据通常以表的形式组织存储,不同表之间的关系可以用关系图来表示。下面是一个简单的关系图示例,展示了一个学生和课程的关系:

erDiagram
    STUDENT {
        int student_id
        string name
    }
    COURSE {
        int course_id
        string course_name
    }
    ENROLLMENT {
        int enrollment_id
        int student_id
        int course_id
    }

在上面的关系图中,STUDENT表存储了学生信息,COURSE表存储了课程信息,ENROLLMENT表则记录了学生选修的课程信息。

SQL查询

接下来,我们将使用Python进行SQL查询操作。首先,我们需要安装sqlite3模块,该模块允许Python与SQLite数据库进行交互。假设我们有一个SQLite数据库university.db,其中包含了上面提到的三个表。我们可以通过以下代码连接数据库并执行SQL查询:

import sqlite3

# 连接到数据库
conn = sqlite3.connect('university.db')
cursor = conn.cursor()

# 执行查询
cursor.execute("SELECT * FROM STUDENT")
result = cursor.fetchall()

# 打印查询结果
for row in result:
    print(row)

# 关闭数据库连接
conn.close()

在上面的代码中,我们首先导入了sqlite3模块,然后连接到名为university.db的数据库。接着执行了一个简单的SELECT查询,选取了STUDENT表中的所有记录,并将结果打印出来。

打印结果

在执行SQL查询后,我们通常需要将结果打印出来或者进行进一步的处理。下面是一个更加复杂的例子,展示了如何查询学生选修的课程,并将结果以表格形式打印出来:

import sqlite3

# 连接到数据库
conn = sqlite3.connect('university.db')
cursor = conn.cursor()

# 执行查询
cursor.execute("SELECT s.name, c.course_name FROM STUDENT s JOIN ENROLLMENT e ON s.student_id = e.student_id JOIN COURSE c ON e.course_id = c.course_id")
result = cursor.fetchall()

# 打印查询结果
print("Student\t\tCourse")
print("---------------------------")
for row in result:
    print(f"{row[0]}\t\t{row[1]}")

# 关闭数据库连接
conn.close()

在上面的代码中,我们执行了一个JOIN操作,连接了STUDENTENROLLMENTCOURSE三个表,并选取了学生姓名和所选课程名称。最后,我们将查询结果打印成了一个表格的形式。

饼状图

除了打印结果到控制台,我们还可以使用图表来展示查询结果。下面是一个用饼状图展示学生选修课程的例子:

pie
    title 学生选修课程比例
    "Math" : 25
    "Science" : 35
    "History" : 20
    "English" : 20

在上面的饼状图中,展示了不同学生选修的课程比例。可以看到,科学课程的选修人数最多,占比35%。

结尾

通过本文的介绍,我们了解了如何使用Python进行SQL查询,并打印结果。从简单的查询到复杂的连接操作,Python提供了丰富的库和模块来处理各种数据库操作。同时,我们还展示了如何使用图表来可视化查询结果,帮助我们更直观地理解数据。希望本文能够帮助读者更好地利用Python进行数据处理和分析工作。