成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Python使用sqlite3第三方庫(kù)讀寫SQLite數(shù)據(jù)庫(kù)的方法步驟

89542767 / 732人閱讀

  小編寫這篇文章的主要目的,主要是給大家去做一個(gè)介紹,介紹的內(nèi)容還是涉及到Python,主要是利用Python sqlite3,使用第三方的數(shù)據(jù)庫(kù),讀取讀寫SQLite數(shù)據(jù)庫(kù),具體的方法是什么呢?下面給大家詳細(xì)解答下。


  1數(shù)據(jù)概覽


  學(xué)生課程成績(jī):studentID、name、english、chinese、math,存在一定缺失值

01.png

  2任務(wù)定義


  基于學(xué)生課程成績(jī)文件,使用pandas和sqlite3將學(xué)生信息輸入SQLite數(shù)據(jù)庫(kù),請(qǐng)?jiān)谕瓿蓪?duì)應(yīng)數(shù)據(jù)庫(kù)操作后分析學(xué)生課程成績(jī)信息,計(jì)算各科目平均分并給出總分排名。


  3實(shí)現(xiàn)步驟


  3.1利用pandas讀取學(xué)生信息


  import pandas as pd
  import sqlite3
  #利用pandas讀取數(shù)據(jù)
  student_df=pd.read_csv("./Dataset/student_grades.csv",encoding='utf-8-sig')

 

02.png

    3.2利用sqlite3創(chuàng)建數(shù)據(jù)庫(kù)和學(xué)生表


  #創(chuàng)建學(xué)生成績(jī)數(shù)據(jù)庫(kù)
  conn=sqlite3.connect("./Database/Student_grade.db")
  ##創(chuàng)建游標(biāo)
  cursor=conn.cursor()
  ##創(chuàng)建成績(jī)表
  try:
  #判斷表是否存在,存在則先刪除
  dropif_sql='Drop TABLE IF EXISTS student_grades;'
  create_sql='''
  CREATE TABLE student_grades
  (
  studentID varchar(64),
  studentName varchar(64),
  scoreEnglish float(64),
  scoreChinese float(64),
  scoreMath float(64)
  )
  '''
  cursor.execute(dropif_sql)
  cursor.execute(create_sql)
  except:
  print("Create table failed!")

03.png

  3.3利用sqlite3將學(xué)生信息存入數(shù)據(jù)庫(kù)


  #將學(xué)生信息存入數(shù)據(jù)庫(kù)
  for i in range(student_df.shape[0]):
  print(student_df.loc[i,:].to_list())
  #插入語(yǔ)句
  insert_sql='''
  INSERT INTO student_grades(studentID,studentName,scoreEnglish,scoreChinese,scoreMath)
  Values('%s','%s','%f','%f','%f')'''%(
  str(student_df.loc[i,'StudentID']),
  str(student_df.loc[i,'name']),
  student_df.loc[i,'english'],
  student_df.loc[i,'chinese'],
  student_df.loc[i,'math'],
  )
  #執(zhí)行語(yǔ)句
  cursor.execute(insert_sql)
  #事物提交
  conn.commit()

04.png

  3.4將李四數(shù)學(xué)成績(jī)70錄入SQLite數(shù)據(jù)庫(kù)


  #錄入李四的數(shù)學(xué)成績(jī)
  grade_LiSi=70
  #更新語(yǔ)句
  update_sql='UPDATE student_grades SET scoreMath={}WHERE studentID=10002'.format(grade_LiSi)
  #執(zhí)行語(yǔ)句
  cursor.execute(update_sql)
  #事物提交
  conn.commit()
  #查詢錄入李四成績(jī)后的信息
  select_sql='SELECT*FROM student_grades;'
  #執(zhí)行語(yǔ)句
  results=cursor.execute(select_sql)
  #遍歷輸出
  for info in results.fetchall():
  print(info)

  

05.png

      3.5將數(shù)據(jù)庫(kù)中的王五數(shù)學(xué)成績(jī)改為85


  #更新王五的數(shù)學(xué)成績(jī)
  grade_WangWu=85
  #更新語(yǔ)句
  update_sql='UPDATE student_grades SET scoreMath={}WHERE studentID=10003'.format(grade_WangWu)
  #執(zhí)行語(yǔ)句
  cursor.execute(update_sql)
  #事物提交
  conn.commit()
  #查詢王五的成績(jī)
  select_sql='SELECT*FROM student_grades WHERE studentID=10003;'
  #執(zhí)行語(yǔ)句
  results=cursor.execute(select_sql)
  #遍歷輸出
  for info in results.fetchall():
  print(info)
  3.5計(jì)算學(xué)生的各科平均分,并給出總分排名
  #查詢數(shù)據(jù)
  select_sql='SELECT*FROM student_grades;'
  #執(zhí)行語(yǔ)句
  results=cursor.execute(select_sql)
  #計(jì)算各科平均分以及總分排名
  english_lst=[]
  chinese_lst=[]
  math_lst=[]
  total_dct={}
  for info in results.fetchall():
  english_lst.append(info[2])
  chinese_lst.append(info[3])
  math_lst.append(info[4])
  total_dct[info[1]]=sum(info[2:])
  #計(jì)算平均分的函數(shù)
  def average_score(lst):
  return round(sum(lst)/len(lst),2)
  #輸出結(jié)果
  print("英語(yǔ)平均分為:",average_score(english_lst))
  print("語(yǔ)文平均分為:",average_score(chinese_lst))
  print("數(shù)學(xué)平均分為:",average_score(math_lst))
  print("總成績(jī)排名為:",sorted(total_dct.items(),key=lambda x:x[1],reverse=True))

06.png

  4小小的總結(jié)


  在Python中使用sqlite3:


  連接數(shù)據(jù)庫(kù):conn=sqlite3.connect(filename),如果數(shù)據(jù)庫(kù)不存在,會(huì)自動(dòng)創(chuàng)建再連接。創(chuàng)建游標(biāo):cursor=conn.cursor(),SQL的游標(biāo)是一種臨時(shí)的數(shù)據(jù)庫(kù)對(duì)象,即可以用來(lái)


  存放在數(shù)據(jù)庫(kù)表中的數(shù)據(jù)行副本,也可以指向存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)行的指針。游標(biāo)提供了在逐行的基礎(chǔ)上操作表中數(shù)據(jù)的方法。


  運(yùn)用sqlite3運(yùn)行SQL語(yǔ)句的框架:


  ①定義sql語(yǔ)句,存儲(chǔ)到字符串sql中


 ?、谑褂糜螛?biāo)提交執(zhí)行語(yǔ)句:cursor.execute(sql)


  ③使用連接提交事務(wù):conn.commit()


  綜上所述,這篇文章就給大家完畢了,希望可以給大家?guī)?lái)幫助。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/128361.html

相關(guān)文章

  • 使用 Python SQLite JSON1 和 FTS5 擴(kuò)展

    摘要:每個(gè)對(duì)象包括一個(gè)標(biāo)題,一個(gè)和頂層的元數(shù)據(jù)鍵,下面是提取作品標(biāo)題的代碼對(duì)應(yīng)下面創(chuàng)建的查詢?cè)诮酉聛?lái)的例子中,將提取包含特定標(biāo)簽的條目。對(duì)于擴(kuò)展,該可選字典提供了附加元數(shù)據(jù)進(jìn)行標(biāo)記字段,以及通過(guò)前綴的長(zhǎng)度存儲(chǔ)快速前綴查詢。 早在九月份,編程界出現(xiàn)一個(gè)名為 json1.c 的文件,此前這個(gè)文件一直在 SQLite 的庫(kù)里面。還有,筆者也曾總結(jié)通過(guò)使用新的 json1 擴(kuò)展來(lái)編譯 pysqli...

    Lorry_Lu 評(píng)論0 收藏0
  • 通過(guò)demo學(xué)習(xí)OpenStack開發(fā)所需基礎(chǔ)知識(shí) -- 數(shù)據(jù)庫(kù)(1)

    摘要:另外,項(xiàng)目在單元測(cè)試中使用的是的內(nèi)存數(shù)據(jù)庫(kù),這樣開發(fā)者運(yùn)行單元測(cè)試的時(shí)候不需要安裝和配置復(fù)雜的數(shù)據(jù)庫(kù),只要安裝好就可以了。而且,數(shù)據(jù)庫(kù)是保存在內(nèi)存中的,會(huì)提高單元測(cè)試的速度。是實(shí)現(xiàn)層的基礎(chǔ)。項(xiàng)目一般會(huì)使用數(shù)據(jù)庫(kù)來(lái)運(yùn)行單元測(cè)試。 OpenStack中的關(guān)系型數(shù)據(jù)庫(kù)應(yīng)用 OpenStack中的數(shù)據(jù)庫(kù)應(yīng)用主要是關(guān)系型數(shù)據(jù)庫(kù),主要使用的是MySQL數(shù)據(jù)庫(kù)。當(dāng)然也有一些NoSQL的應(yīng)用,比如Ce...

    warnerwu 評(píng)論0 收藏0
  • Python信息采集器使用輕量級(jí)關(guān)系型數(shù)據(jù)庫(kù)SQLite

    摘要:,引言自帶一個(gè)輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù)。作為后端數(shù)據(jù)庫(kù),可以搭配建網(wǎng)站,或者為網(wǎng)絡(luò)爬蟲存儲(chǔ)數(shù)據(jù)。在一些場(chǎng)景下,網(wǎng)絡(luò)爬蟲可以使用存儲(chǔ)采集到的網(wǎng)頁(yè)信息。爬蟲打數(shù)機(jī)將在版本支持,不妨想想一下網(wǎng)絡(luò)爬蟲與打數(shù)機(jī)連接在一起會(huì)怎樣。 showImg(https://segmentfault.com/img/bVyUfA); 1,引言 Python自帶一個(gè)輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù)SQLite。這一數(shù)據(jù)庫(kù)使用S...

    loonggg 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<