设计大学排名

一、数据库操作读书笔记

使用 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()

 

结果如下

 

posted @ 2019-05-27 18:13  JM。  阅读(52)  评论(0)    收藏  举报