python删除列索引_29. Python 删除 更改 索引数据

这篇博客介绍了如何使用Python连接MySQL数据库,执行删除和更改数据的操作,如根据及格率删除教师记录。同时,详细讲解了数据库索引的概念,包括普通索引、唯一索引、主键索引和复合索引等,并展示了如何为表格添加主键和索引,以及解释了查询优化中索引的作用。
摘要由CSDN通过智能技术生成

1.删除数据

需求:课程的及格率太低,最后名最差的5名老师将会被开除

import codecs

import MySQLdb

def connect_mysql():

db_config = {

'host': '192.168.48.128',

'port': 3306,

'user': 'xiang',

'passwd': '123456',

'db': 'python',

'charset': 'utf8'

}

cnx = MySQLdb.connect(**db_config)

return cnx

if __name__ == '__main__':

cnx = connect_mysql()

sql = '''delete from Teacher where TID in(

select TID from (select Course.CouID, Course.TID, Teacher.TName, count(Teacher.TID) as count_teacher from Course

left join Score on Score.Grade < 60 and Course.CouID = Score.CouID

left join Teacher on Course.TID = Teacher.TID

group by Course.TID

order by count_teacher desc

limit 5) as test )

'''

try:

cus = cnx.cursor()

cus.execute(sql)

result = cus.fetchall()

cus.close()

cnx.commit()

except Exception as e:

cnx.rollback()

print('error')

raise e

finally:

cnx.close()

结果:

程序正常执行,没有报错

解释:

1.先查询出Course表中的Course.TID和Course.TID

2.left join 是关联Score表,查出Score.Grade > 59,并且,课程ID和课程表的CouID要对应上

3.left join Teacher 是关联老师表,课程中的了老师ID和老师表中的老师ID对应上

4.select中加上老师的名字Teacher.Tname和count(Teacher.TID)

5.group by Course.TID,在根据老师的的TID进行分组

6.oder by 最后对count_teacher进行排序,取前5行,

7.在通过套用一个select子查询,把所有的TID搂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值