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()
01-02 22:01
查看更多