1. 修改数据首先,我们把分数低于5分的成绩所有都加60分。结果:383 解释:1.刚开始,我们可以查到分数小于5分的总个数有383个2.select *,(grade+60) as newGrade from Score where Grade 这个sql是把所有的成绩小于5的都列出来,然后最后加一列分数加60分的结果。3.update Scoreset grade = grade + 60 where grade 是把分数小于5的所有成绩都加60分最后在检查分数小于5的个数为0,说明所有低于5分的分数都发生了改变程序如下:点击(此处)折叠或打开#!/usr/bin/env python# -*- coding:utf-8 -*-# Author :Alvin.xie# @Time :2017-11-23 16:58# @file :modifydata.pyimport MySQLdbdef connect_mysql(): db_config = { 'host': '10.89.1.10', 'port': 3306, 'user': 'demo', 'passwd': '123qaz', 'db': 'python_test', 'charset': 'utf8' } cnx = MySQLdb.connect(**db_config) return cnxif __name__ == '__main__': cnx = connect_mysql() sql = '''select *, (grade+60) as newGrade from Score where Grade '' update = '''update Score set grade = grade + 60 where grade ''try: cus_start = cnx.cursor() cus_start.execute(sql) result1 = cus_start.fetchall() print(len(result1)) cus_start.close() cus_update = cnx.cursor() cus_update.execute(update) cus_update.close() cus_end = cnx.cursor() cus_end.execute(sql) result2 = cus_end.fetchall() print(len(result2)) cus_end.close() cnx.commit()except Exception as e: cnx.rollback() print('error') raise efinally: cnx.close()2. 索引MySQL索引的概念索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引类别2.1.普通索引2.2. 唯一索引2.3. 主索引2.4. 复合索引2.5 . 外键索引mysql主键和索引的区别:1. 主键一定是唯一性索引,唯一性索引并不一定就是主键。所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致。数据库在设计时,主键起到了很重要的作用。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。2. 一个表中可以有多个唯一性索引,但只能有一个主键。3. 主键列不允许空值,而唯一性索引列允许空值。4. 索引可以提高查询的速度。创建Course的CouID的字段为主键 Score的SID字段为主键 Student的StdID字段为主键 Teacher的TID字段为主键以下是没做索引时的查询:做索引时的查询:程序代码:点击(此处)折叠或打开#!/usr/bin/env python# -*- coding:utf-8 -*-# Author :Alvin.xie# @Time :2017-11-23 17:46# @file :demo.pyimport MySQLdbdef connect_mysql(): db_config = { 'host': '10.89.1.10', 'port': 3306, 'user': 'demo', 'passwd': '123qaz', 'db': 'python_test', 'charset': 'utf8' } cnx = MySQLdb.connect(**db_config) return cnxif __name__ == '__main__': cnx = connect_mysql() sql1 = '''alter table Score add index idx_StdID_CID(StdID, CID);''' sql2 = '''alter table Score add index idx_CID_StdID(CID,StdID);''' sql3 = '''explain select * from Score where StdID = 16213;'''try: cus = cnx.cursor() cus.execute(sql1) cus.close() cus = cnx.cursor() cus.execute(sql2) cus.close() cus = cnx.cursor() cus.execute(sql3) result = cus.fetchall() print(result) cus.close() cnx.commit()except Exception as e: cnx.rollback() print('error') raise efinally: cnx.close()