面试题答案
一键面试import MySQLdb
def get_student_class_info():
try:
# 连接数据库
conn = MySQLdb.connect(
host='localhost',
user='root',
passwd='password',
db='your_database',
port=3306,
charset='utf8'
)
cursor = conn.cursor()
# 执行SQL查询
sql = """
SELECT s.id, s.name, c.class_name
FROM students s
JOIN classes c ON s.class_id = c.id
"""
cursor.execute(sql)
results = cursor.fetchall()
result_list = []
for row in results:
student_info = {
'id': row[0],
'name': row[1],
'class_name': row[2]
}
result_list.append(student_info)
cursor.close()
conn.close()
return result_list
except MySQLdb.Error as e:
print(f"Error {e.args[0]}: {e.args[1]}")
return []
调用函数获取结果:
if __name__ == "__main__":
result = get_student_class_info()
print(result)
上述代码需要根据实际的数据库连接信息(如主机、用户名、密码、数据库名等)进行修改。代码实现了连接MySQL数据库,执行关联查询获取每个学生及其所属班级名称,并将结果以列表形式返回。列表中的每个元素是一个字典,包含学生的id
、name
和对应的class_name
。