zoukankan      html  css  js  c++  java
  • 自己设计大学排名-数据库实践

    一、SQLite 数据库笔记

    1、定义:SQLite是一种嵌入式数据库,它的数据库就是一个文件。使用SQLite不需要安装任何东西,是可以直接使用的。

    2、步骤:首先需要连接到数据库,一个数据库连接称为Connection; 连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果。

    3、注意:

    (1)搞清楚 Connection Cursor对象,打开后一定记得关闭。

    (2)使用 Cursor对象执行 insertupdatedelete语句时,执行结果由rowcount返回影响的行数,就可以拿到执行结果。

    (3)Cursor对象执行 select语句时,通过featchall()可以拿到结果集。

    (4)execute()方法 :例  cursor.execute('select * from user where name=? and pwd=?', ('abc', 'password'))   (几个?对应几个参数)

    实践:

    二、根据大学排名csv,

    a.把文件写入到以db+学号命名的数据库中;

    b.查询我们学校在校排名和得分;

    c.查询并显示广东省的学校的排名和得分;

    d.将广东省的学校的排名和得分存为一个新表,并给出一个综合算法,综合考虑给出一个总排名,并显示。

    1、把大学csv文件写入到以db+学号命名的数据库中;

    import pandas
    import csv
    import sqlite3
    
    conn = sqlite3.connect("db+2019310143123.db")
    df = pandas.read_csv('C:/Users/邓若言/Desktop/HTML.csv')
    df.to_sql('db2019310143123', conn, if_exists='append', index=False)
    
    cursor = conn.cursor()
    
    for row in cursor.execute('select * from db2019310143123 ORDER BY "序号"'):
        print(row)
        
    cursor.close()
    conn.commit()
    cursor.close()
    

    效果如下:

    2、查询我们学校的排名和得分,代码如下:

    import pandas
    import csv
    import sqlite3
    
    conn = sqlite3.connect("db+2019310143123.db")
    df = pandas.read_csv('C:/Users/邓若言/Desktop/HTML.csv')
    df.to_sql('db2019310143123', conn, if_exists='append', index=False)
    
    cursor = conn.cursor()
    
    cursor.execute('select * from db2019310143123')
    all = cursor.fetchall()
    for line in all:
        if "广东技术师范大学" in line:
            print(line)
            break
        else:
            print("False")
    cursor.close()
    conn.commit()
    cursor.close()
    

    效果如下:

     这说明原csv文件中没有“广东师范大学”的相关数据,需要重新获得新的文件。

    经过查询 http://www.zuihaodaxue.com/zuihaodaxuepaiming2016.html 发现,2016年并没有关于广东技术师范大学的数据,所以我们将时间改为2018年,链接为

    http://www.zuihaodaxue.com/zuihaodaxuepaiming2018.html

    我们获得一个新的csv 文件,命名为 NEW ONE.csv  , 并新建一个数据表命名为 deng2019310143123,查询排名代码如下:

    import pandas
    import csv
    import sqlite3
    
    conn = sqlite3.connect("db+2019310143123.db")
    df = pandas.read_csv('C:/Users/邓若言/Desktop/NEW ONE.csv')
    df.to_sql('deng2019310143123', conn, if_exists='append', index=False)
    
    cursor = conn.cursor()
    
    cursor.execute('select * from deng2019310143123')
    all = cursor.fetchall()
    for line in all:
        if "广东技术师范学院" in line:
            print(line)
            break
        else:
            print("False")
    cursor.close()
    conn.commit()
    cursor.close()
    

    效果如下:

     3、查询并显示广东省的学校的排名和得分,以2018年社会声誉(社会捐赠收入,千元)为例<学号尾数3>:

    相关代码如下:

    import pandas
    import sqlite3
    import pandas
    conn= sqlite3.connect("db+2019310143123.db")
    df = pandas.read_csv('C:/Users/邓若言/Desktop/NEW ONE.csv')
    df.to_sql('YUE', conn, if_exists='append', index=False)
    cur = conn.cursor()
    cur.execute('SELECT * FROM YUE')
    yue = cur.fetchall()
    for line in yue:
        if "广东" in line:
            print("{} {} {} {}".format(line[0],line[1],line[2],line[5]))
    conn.close()
    

    效果如下:

     4、将广东省的学校的排名和得分存为一个新表,并给出一个综合算法,综合考虑给出一个总排名,并显示。

     代码如下:

    import pandas
    import sqlite3
    conn= sqlite3.connect("db+2019310143123.db")
    k = pandas.read_csv('C:/Users/邓若言/Desktop/guangdong.csv',encoding='utf-8')
    k.to_sql('Guang', conn, if_exists='append', index=False)
    
    conn = sqlite3.connect('db+2019310143123.db')
    cur = conn.cursor()
    cur.execute('SELECT * FROM Guang')
    li = cur.fetchall()
    i=0
    for line in li:
        i+=1
        for item in line:
            print(item, end=' ')
        print()
        if i==10:
            break
    conn.close()
    

    效果如下:

  • 相关阅读:
    每天一个linux命令(25):linux文件属性详解
    每天一个linux命令(24):Linux文件类型与扩展名
    每天一个linux命令(23):Linux 目录结构
    每天一个linux命令(22):find 命令的参数详解
    每天一个linux命令(21):find命令之xargs
    每天一个linux命令(20):find命令之exec
    每天一个linux命令(19):find 命令概览
    Unity3D自己常用代码
    Unity导入FBX自动进行动画切分
    Unity和虚幻的比较
  • 原文地址:https://www.cnblogs.com/deng11/p/12961648.html
Copyright © 2011-2022 走看看