《Python语言程序设计基础》 数据库操作-7.3 数据库的增、删、改
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
首先要创建数据库连接,然后是创建游标对象,并且运用其各种方法进行数 据的获取,最后关闭数据库连接。所不同的地方主要是,游标对象操作的语句 不同,是INSERT、DELETE和UPDATE,而不是SELECT 语句。另外,由于查 询语句不改变数据库中的数据,有时感觉执行commit()方法作用不明显,而这 三个语句都会使数据库中的数据发生改变,因此不要忘记在execute()方法后面 运用执行commit()方法,并通过rowcount获取受影响的行数,根据行数来判 断操作是否成功,否则命令并没有被真正地提交给数据库处理,因此也无法真 正地改变数据库的记录。
使用Python完成数据库的增、删、改
2-3 使用Python对数据库的数据表记录进行删除
如: 删除学生表Student中的学号为“1901011101”的记录 sql = ″DELETE FROM Student WHERE Sno='1901011101'″ cursor.execute(sql) conn.commit() row=cursor.rowcount if (row>0): print(″删除成功!″)
finally: <语句> #退出try时总会执行
数据库访问参数化
3-1 为什么书写SQL语句要参数化 SQL语句参数化可以解决如下问题: (1)数据复杂,组合的SQL命令可能会无效的情况。 如:Student数据表中如果要插入一个姓名为R"J的学生,那么:
sql=“INSERT INTO Student(Sno,Sname) VALUES('1101011111', 'R"J')“
MySQL数据库增、删、改语法
1-2 更新数据 语法格式:
UPDATE table_name SET field1=new-value1, field2=new-value2,…… [WHERE Clause]
说明:
➢ 在SET子句中可以同时更新一个或多个字段; ➢ 可以在WHERE子句中指定更新条件,若不指定条件则将数据表中的全部 记录进行了更新。
curosr.execute(sql) conn.commit() row = Biblioteka Baiduursor.rowcount if row == 1:
print(″插入记录成功!″)
使用Python完成数据库的增、删、改
2-2 使用Python对数据库的数据表记录进行修改
如: 将Student数据表中学号为“1901011101”的学生的出生年月修改为 “2002-03-15”
执行带参数的SQL语句时,语法格式为: cursor.execute(带参数的SQL语句,[参数列表])
如上述SQL语句的执行语句为:
cursor.execute(sql,[ '1901011109', '王五', '男', '2002-02-22', '2019-09-01', '19010111'])
使用Python完成数据库的增、删、改
2-4 Python中数据库的异常处理 在使用Python对数据库进行增、删、改、查操作时,为防止出现异常 无法反馈给用户结果,需要使用try…catch...finally异常处理机制。捕获异 常的语法如下:
try: <语句> # 带捕获异常的代码块
except <异常类型> as <变量名>: <语句> #异常的处理代码块
sql = ″UPDATE Student SET Sbirthday='2002-03-15' WHERE Sno='1901011101'″
cursor.execute(sql) conn.commit() row = cursor.rowcount if row > 0:
print(″信息修改成功!″)
VALUES ( value1, value2,...,valueN )
说明:
➢ VALUES中除了可以指定确定的数值之外,还可以使用表达式expr,如果 数据是字符型,必须使用单引号或者双引号将值包围起来,如:"李梅"; ➢ 将一个字符串插入到超过字段的最大长度的一个CHAR、VARCHAR、 TEXT或BLOB列中,值被截断为列的最大长度; ➢ 把一个与字段类型不合法的值插入到一个日期或时间列,会被设置为“零 ”值。
《Python应用程序设计》 7.3 数据库的增、删、改
目录
MySQL数据库增、删、改语法格式 使用Python完成数据库的增、删、改 数据库访问参数化
MySQL数据库增、删、改语法
1-1 增加数据 语法格式:
INSERT INTO table_name ( field1, field2,... ,fieldN )
使用Python完成数据库的增、删、改
2-1 使用Python对数据库的数据表记录进行增加 如:向Student数据表中插入一条记录
sql= ″INSERT INTO Student(Sno, Sname, Ssex, Sbirthday, EntranceTime, ClassNo) VALUES('1901011101','李四','男','2002-03-12','2019-09-01','19010111')″
MySQL数据库增、删、改语法
1-3 删除数据 语法格式:
DELETE FROM table_name [WHERE Clause] 说明: ➢ 如果没有指定WHERE子句,表中的所有记录将被删除; ➢WHERE用来指定删除的条件。
使用Python完成数据库的增、删、改
使用Python对数据库的数据表记录进行增、删、改的基本步骤和前面所述 的查询类似:
这样的SQL命令是无效的,如何插入这样的记录呢? (2)为了避免SQL注入的问题,把SQL语句进行参数化,从而来增
加数据库的安全性。
数据库访问参数化
3-2 参数化的SQL语句 带参数的SQL语句是在SQL语句中将值用参数表示,MySQL数据库 参数统一用“%s”表示。如:
sql=“INSERT INTO Student(Sno,Sname,Ssex,Sbirthday,EntranceTime,ClassNo) VALUES(%s,%s ,%s ,%s ,%s ,%s)”
使用Python完成数据库的增、删、改
2-3 使用Python对数据库的数据表记录进行删除
如: 删除学生表Student中的学号为“1901011101”的记录 sql = ″DELETE FROM Student WHERE Sno='1901011101'″ cursor.execute(sql) conn.commit() row=cursor.rowcount if (row>0): print(″删除成功!″)
finally: <语句> #退出try时总会执行
数据库访问参数化
3-1 为什么书写SQL语句要参数化 SQL语句参数化可以解决如下问题: (1)数据复杂,组合的SQL命令可能会无效的情况。 如:Student数据表中如果要插入一个姓名为R"J的学生,那么:
sql=“INSERT INTO Student(Sno,Sname) VALUES('1101011111', 'R"J')“
MySQL数据库增、删、改语法
1-2 更新数据 语法格式:
UPDATE table_name SET field1=new-value1, field2=new-value2,…… [WHERE Clause]
说明:
➢ 在SET子句中可以同时更新一个或多个字段; ➢ 可以在WHERE子句中指定更新条件,若不指定条件则将数据表中的全部 记录进行了更新。
curosr.execute(sql) conn.commit() row = Biblioteka Baiduursor.rowcount if row == 1:
print(″插入记录成功!″)
使用Python完成数据库的增、删、改
2-2 使用Python对数据库的数据表记录进行修改
如: 将Student数据表中学号为“1901011101”的学生的出生年月修改为 “2002-03-15”
执行带参数的SQL语句时,语法格式为: cursor.execute(带参数的SQL语句,[参数列表])
如上述SQL语句的执行语句为:
cursor.execute(sql,[ '1901011109', '王五', '男', '2002-02-22', '2019-09-01', '19010111'])
使用Python完成数据库的增、删、改
2-4 Python中数据库的异常处理 在使用Python对数据库进行增、删、改、查操作时,为防止出现异常 无法反馈给用户结果,需要使用try…catch...finally异常处理机制。捕获异 常的语法如下:
try: <语句> # 带捕获异常的代码块
except <异常类型> as <变量名>: <语句> #异常的处理代码块
sql = ″UPDATE Student SET Sbirthday='2002-03-15' WHERE Sno='1901011101'″
cursor.execute(sql) conn.commit() row = cursor.rowcount if row > 0:
print(″信息修改成功!″)
VALUES ( value1, value2,...,valueN )
说明:
➢ VALUES中除了可以指定确定的数值之外,还可以使用表达式expr,如果 数据是字符型,必须使用单引号或者双引号将值包围起来,如:"李梅"; ➢ 将一个字符串插入到超过字段的最大长度的一个CHAR、VARCHAR、 TEXT或BLOB列中,值被截断为列的最大长度; ➢ 把一个与字段类型不合法的值插入到一个日期或时间列,会被设置为“零 ”值。
《Python应用程序设计》 7.3 数据库的增、删、改
目录
MySQL数据库增、删、改语法格式 使用Python完成数据库的增、删、改 数据库访问参数化
MySQL数据库增、删、改语法
1-1 增加数据 语法格式:
INSERT INTO table_name ( field1, field2,... ,fieldN )
使用Python完成数据库的增、删、改
2-1 使用Python对数据库的数据表记录进行增加 如:向Student数据表中插入一条记录
sql= ″INSERT INTO Student(Sno, Sname, Ssex, Sbirthday, EntranceTime, ClassNo) VALUES('1901011101','李四','男','2002-03-12','2019-09-01','19010111')″
MySQL数据库增、删、改语法
1-3 删除数据 语法格式:
DELETE FROM table_name [WHERE Clause] 说明: ➢ 如果没有指定WHERE子句,表中的所有记录将被删除; ➢WHERE用来指定删除的条件。
使用Python完成数据库的增、删、改
使用Python对数据库的数据表记录进行增、删、改的基本步骤和前面所述 的查询类似:
这样的SQL命令是无效的,如何插入这样的记录呢? (2)为了避免SQL注入的问题,把SQL语句进行参数化,从而来增
加数据库的安全性。
数据库访问参数化
3-2 参数化的SQL语句 带参数的SQL语句是在SQL语句中将值用参数表示,MySQL数据库 参数统一用“%s”表示。如:
sql=“INSERT INTO Student(Sno,Sname,Ssex,Sbirthday,EntranceTime,ClassNo) VALUES(%s,%s ,%s ,%s ,%s ,%s)”