设计大学排名
一、数据库操作读书笔记
使用 Python DB API 访问数据库流程:
创建 connection (建立网络连接)
获取 cursor (交互对象)
使用 cursor.execute() 执行 SQL 语句 (查询、增、删、更改等,结果返回到本地缓存)
使用 cursor.fatch*() 获取并处理数据 (从本地缓存获取,以 tuple 形式返回)
关闭 cursor
关闭 connection
cursor 游标对象的方法:
| execute( op ) | 执行一条查询或操作命令,结果返回到本地缓存 |
| fetchone() | 从本地结果集中取下一条,以一维 tuple 的形式返回 |
| fetchmany(size) | 从本地结果集中取下几条,以二维 tuple 的形式返回 |
| fetchall() | 从本地结果集中取所有剩下的,以二维 tuple 的形式返回 |
| rowcount | 最近一次 execute 返回数据的行数或影响行数 |
| close() | 关闭游标对象 |
事务:访问和更新数据库的一个执行单元,可以看成由多次数据库操作组成
| autocommit(False) | 关闭自动 commit |
| commit() | 正常结束事务 |
| rollback() | 执行回滚操作 |
二、
(a)把上次csv文件写入数据库
代码如下:
import pandas import sqlite3 conn= sqlite3.connect("db28.db") k = pandas.read_csv('2018.csv') k.to_sql('tablename', conn, if_exists='append', index=False) print('success') conn = sqlite3.connect('db28.db') cur = conn.cursor() cur.execute('SELECT * FROM tablename') li = cur.fetchall() #返回所有查询结果 for line in li: for item in line: print(item, end=' ') print() conn.close()
并打印部分效果

(b)查询我们学校排名和得分
代码如下:
import sqlite3 conn= sqlite3.connect("db28.db") cur = conn.cursor() cur.execute('SELECT * FROM tablename') li = cur.fetchall() #返回所有查询结果 for line in li: if "广东技术师范大学" in line: print(line) else: print("none") conn.close()
效果如下:

结果为none,广东技术师范大学未上榜
(c)广东的学校排名得分
import sqlite3 conn= sqlite3.connect("db28.db") cur = conn.cursor() cur.execute('SELECT * FROM tablename') li = cur.fetchall() #返回所有查询结果 for line in li: if "广东" in line: print("{} {} {} {}".format(line[0],line[1],line[2],line[5])) conn.close()
结果如下



浙公网安备 33010602011771号