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

    一、数据库读书笔记(使用SQLite)

    访问和操作SQLite数据时,需要首先导入sqlite3模块,然后创建一个与数据库关联的Connection对象,成功创建Connection对象以后,再创建一个Cursor对象,并且调用Cursor对象的execute()方法来执行SQL语句创建数据表以及查询、插入、修改或删除数据库中的数据:

     1 import sqlite3                           
     2 #导入模块
     3 conn = sqlite3.connect('example.db')     
     4 #连接数据库
     5 # 连接到SQLite数据库
     6 # 数据库文件是example.db
     7 # 如果文件不存在,会自动在当前目录创建
     8 c = conn.cursor()
     9 # 创建表,
    10 c.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)''')
    11 # 插入一条记录
    12 c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY', 'RHAT', 100, 35.14)")
    13 # 提交当前事务,保存数据
    14 conn.commit()
    15 # 关闭数据库连接
    16 conn.close()
    实验代码

    如果需要查询表中内容,那么重新创建Connection对象和Cursor对象之后,可以使用下面的代码来查询。

    for row in c.execute('SELECT * FROM stocks ORDER BY price'):
        print(row)

    查询结果:

    ('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)

    Connection对象:

    connect(database[, timeout, isolation_level, detect_types, factory]) 
    #连接数据库文件,也可以连接":memory:"在内存中创建数据库
    sqlite3.Connection.execute()
    #执行SQL语句
    sqlite3.Connection.cursor()
    #返回游标对象
    sqlite3.Connection.commit()
    #提交事务
    sqlite3.Connection.rollback()
    #回滚事务
    sqlite3.Connection.close()
    #关闭连接

    Cursor对象常用方法:

    close(...):
    #关闭游标 
     execute(...)
    #执行SQL语句
     executemany(...)
    #重复执行多次SQL语句
     executescript(...)
    #一次执行多条SQL语句 
     fetchall(...)
    #从结果集中返回所有行记录
     fetchmany(...):
    #从结果集中返回多行记录
     fetchone(...)
    #从结果集中返回一行记录

    二、自己设计大学排名

    (1)把这个文件存入以db+自己的学号命名的数据库中。

    import sqlite3
    import pandas
    
    conn = sqlite3.connect('db+2019310143107.db')
    #连接数据库
    pm=pandas.read_csv("d:/pm.csv")
    pm.to_sql('db2019310143107', conn, if_exists='append', index=False)
    #把数据写入数据库
    c = conn.cursor()
    #创建表
    
    for row in c.execute('select * from db2019310143107'):
        print(row)
    c.close() conn.commit() #guanbi数据连接

     (2)查询我们学校的排名和得分

    c.execute('select * from db2019310143107')
    all = c.fetchall()
    for line in all:
        if "广东技术师范学院" in line:
            print("{} {} {}".format(line[0],line[1],line[7]))

    结果:

    352 广东技术师范学院 337

    (3)查询并显示广东省的排名和分数。

    c.execute('select * from db2019310143107')
    all = c.fetchall()
    for line in all:
        if "广东" in line:
            print("{} {} {}".format(line[0],line[1],line[7]))

    结果:

    9 中山大学 29393
    19 华南理工大学 19220
    43 南方科技大学 1042
    56 暨南大学 8018
    77 南方医科大学 8952
    91 深圳大学 5597
    102 华南师范大学 5317
    109 广东外语外贸大学 478
    110 汕头大学 2661
    143 华南农业大学 5236
    144 广东工业大学 3799
    150 广州医科大学 1169
    176 广州大学 3389
    182 广州中医药大学 312
    279 广东医科大学 1745
    285 广东财经大学 109
    323 广东药科大学 1634
    340 广东海洋大学 909
    352 广东技术师范学院 337
    364 广东金融学院 305
    381 佛山科学技术学院 348
  • 相关阅读:
    python 并发编程 多进程 互斥锁 目录
    python 并发编程 多进程 互斥锁
    python 并发编程 多进程 守护进程
    python 并发编程 多进程 Process对象的其他属性方法 terminate与is_alive name pid 函数
    python 并发编程 多进程 Process对象的其他属性方法 join 方法
    python 并发编程 多进程 目录
    POJ 2253
    POJ 2255
    POJ 2250
    POJ 2248
  • 原文地址:https://www.cnblogs.com/linjiaxin59/p/13022891.html
Copyright © 2011-2022 走看看