python操作數據庫


1.使用Python操作MySQL數據庫

Windows系統中安裝好MySQL8.0.23和Python3.8.7,然后再完成下面題目中的各項操作。

現有以下三個表格:

1 學生表:Student(主碼為Sno)

學號(Sno)

姓名(Sname)

性別(Ssex)

年齡(Sage)

所在系別(Sdept)

10001

Jack

21

CS

10002

Rose

20

SE

10003

Michael

21

IS

10004

Hepburn

19

CS

10005

Lisa

20

SE

 

2 課程表:Course(主碼為Cno)

課程號(Cno)

課程名(Cname)

學分(Credit)

00001

DataBase

4

00002

DataStructure

4

00003

Algorithms

3

00004

OperatingSystems

5

00005

ComputerNetwork

4

 

3 選課表:SC(主碼為Sno,Cno)

學號(Sno)

課程號(Cno)

成績(Grade)

10002

00003

86

10001

00002

90

10002

00004

70

10003

00001

85

10004

00002

77

10005

00003

88

10001

00005

91

10002

00002

79

10003

00002

83

10004

00003

67

 

 

 

(1) 查詢學號為10002學生的所有成績,結果中需包含學號、姓名、所在系別、課程號、課程名以及對應成績。

import pymysql.cursors
# 連接數據庫
connect = pymysql.Connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='123456789',
    db='school',
    charset='utf8'
)
# 獲取游標
cursor = connect.cursor()
# 設置sql語句
sql = "SELECT student.Sno,Sname,Sdept,course.Cno,Cname,Grade " \
      "FROM student,course,sc " \
      "WHERE student.Sno = sc.Sno AND course.Cno = sc.Cno AND sc.Sno = '%s'"
# 設置數據
data = ('10002',)
# 執行sql語句
cursor.execute(sql % data)
# 獲取數據
print("共有%s條記錄" % cursor.rowcount)
for row in cursor.fetchall():
    print("學號:%s\t姓名:%s\t系別:%s\t課程號:%s\t課程名:%s\t成績:%d" % row)
# 關閉數據庫連接
cursor.close()
connect.close()

 

 

 

(2) 查詢每位學生成績大於85的課程,結果中需包含學號、姓名、所在系別、課程號、課程名以及對應成績。

import pymysql.cursors
# 連接數據庫
connect = pymysql.Connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='123456789',
    db='school',
    charset='utf8'
)
# 獲取游標
cursor = connect.cursor()
# 設置sql語句
sql = "SELECT student.Sno,Sname,Sdept,course.Cno,Cname,Grade " \
      "FROM student,course,sc " \
      "WHERE student.Sno = sc.Sno AND course.Cno = sc.Cno AND Grade > %d"
# 設置數據
data = (85, )
# 執行sql語句
cursor.execute(sql % data)
# 獲取數據
print("共有%s條記錄" % cursor.rowcount)
for row in cursor.fetchall():
    print("學號:%s\t姓名:%s\t系別:%s\t課程號:%s\t課程名:%s\t成績:%d" % row)
# 關閉數據庫連接
cursor.close()
connect.close()

 

(3) 由於培養計划改,現需將課程號為00001、課程名為DataBase的學分改為5學分。

import pymysql.cursors
# 連接數據庫
connect = pymysql.Connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='123456789',
    db='school',
    charset='utf8'
)
# 獲取游標
cursor = connect.cursor()
# 設置sql語句
sql = "UPDATE course SET Credit = %d " \
      "WHERE Cno = '%s'"
# 設置數據
data = (5, '00001')
# 執行sql語句,並獲取執行結果
result = cursor.execute(sql % data)
# 提交事務
connect.commit()
# 查看執行結果
print(result)
# 關閉數據庫連接
cursor.close()
connect.close()

 

(4) 將學號為10005的學生, OperatingSystems(00004)成績為73分這一記錄寫入選課表中。

import pymysql.cursors
# 連接數據庫
connect = pymysql.Connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='123456789',
    db='school',
    charset='utf8'
)
# 獲取游標
cursor = connect.cursor()
# 設置sql語句
sql = "INSERT INTO sc(Sno,Cno,Grade) VALUES('%s','%s',%d)"
# 設置數據
data = ('10005', '00004', 73)
# 執行sql語句,並獲取執行結果
result = cursor.execute(sql % data)
connect.commit()
# 輸出執行結果
print(result)
# 關閉數據庫連接
cursor.close()
connect.close()

 

(5) 將學號為10003的學生從這三個表中刪除。

import pymysql.cursors
# 連接數據庫
connect = pymysql.Connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='123456789',
    db='school',
    charset='utf8'
)
# 獲取游標
cursor = connect.cursor()
# 設置sql語句
sql = "DELETE FROM student WHERE Sno = '%s'"
# 設置數據
data = ('10003',)
# 執行sql語句,並獲取執行結果
result = cursor.execute(sql % data)
connect.commit()
# 輸出執行結果
print(result)
# 關閉數據庫連接
cursor.close()
connect.close()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM