插入行

原文: https://thepythonguru.com/inserting-rows/


于 2020 年 1 月 7 日更新


Insert 语句用于在 mysql 中插入记录。

语法INSERT INTO <some table> (<some column names>) VALUES("<some values>");

示例 1

  1. from __future__ import print_function
  2. import MySQLdb as my
  3. db = my.connect(host="127.0.0.1",
  4. user="root",
  5. passwd="",
  6. db="world"
  7. )
  8. cursor = db.cursor()
  9. sql = "insert into city VALUES(null, 'Mars City', 'MAC', 'MARC', 1233)"
  10. number_of_rows = cursor.execute(sql)
  11. db.commit() # you need to call commit() method to save
  12. # your changes to the database
  13. db.close()

该程序在城市表中插入一个新城市,注意对db.commit()的使用,该方法将您的更改保存到数据库中。

示例 2

  1. from __future__ import print_function
  2. import MySQLdb as my
  3. db = my.connect(host="127.0.0.1",
  4. user="root",
  5. passwd="",
  6. db="world"
  7. )
  8. cursor = db.cursor()
  9. name = "Some new city"
  10. country_code = 'PSE'
  11. district = 'Someyork'
  12. population = 10008
  13. sql = "insert into city VALUES(null, '%s', '%s', '%s', %d)" % \
  14. (name, country_code , district, population)
  15. number_of_rows = cursor.execute(sql)
  16. db.commit()
  17. db.close()

请注意,在第 18 行中使用了反斜杠(\)字符。\字符用于将 python 语句拆分为多行。

插入多行


要在表中插入多行,请使用游标对象的executemany()方法。

语法cursor_object.executemany(statement, arguments)

statement:包含要执行的查询的字符串。

arguments:一个包含要在insert语句中使用的值的序列。

让我们举个例子。

  1. from __future__ import print_function
  2. import MySQLdb as my
  3. db = my.connect(host="127.0.0.1",
  4. user="root",
  5. passwd="",
  6. db="world"
  7. )
  8. cursor = db.cursor()
  9. name = "Some new city"
  10. country_code = 'SNC'
  11. district = 'Someyork'
  12. population = 10008
  13. data = [
  14. ('city 1', 'MAC', 'distrct 1', 16822),
  15. ('city 2', 'PSE', 'distrct 2', 15642),
  16. ('city 3', 'ZWE', 'distrct 3', 11642),
  17. ('city 4', 'USA', 'distrct 4', 14612),
  18. ('city 5', 'USA', 'distrct 5', 17672),
  19. ]
  20. sql = "insert into city(name, countrycode, district, population)
  21. VALUES(%s, %s, %s, %s)"
  22. number_of_rows = cursor.executemany(sql, data)
  23. db.commit()
  24. db.close()

在下一篇文章中,我们讨论如何处理错误