一、SQLite 資料庫筆記
1、定義:SQLite是一種嵌入式資料庫,它的資料庫就是一個檔案,使用SQLite不需要安裝任何東西,是可以直接使用的,
2、步驟:首先需要連接到資料庫,一個資料庫連接稱為Connection; 連接到資料庫后,需要打開游標,稱之為Cursor,通過Cursor執行SQL陳述句,然后,獲得執行結果,
3、注意:
(1)搞清楚 Connection和 Cursor物件,打開后一定記得關閉,
(2)使用 Cursor物件執行 insert,update,delete陳述句時,執行結果由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()
效果如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/141665.html
標籤:Python
上一篇:Python Re模塊
