一、SQLite 数据库笔记

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

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

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

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'))   (几个?对应几个参数)

实践:

自己设计大学排名-数据库实践 Python 第1张

二、根据大学排名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()

效果如下:

自己设计大学排名-数据库实践 Python 第2张

 

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

效果如下:

自己设计大学排名-数据库实践 Python 第3张

 

 这说明原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()

效果如下:

自己设计大学排名-数据库实践 Python 第4张

 

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

效果如下:

自己设计大学排名-数据库实践 Python 第5张

 

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

效果如下:

自己设计大学排名-数据库实践 Python 第6张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄