Python 数据访问教程

Python 数据访问主页

Python MySQL

Python MySQL 简介 Python MySQL 数据库连接 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入数据 Python MySQL 选择数据 Python MySQL Where 子句 Python MySQL 排序 Python MySQL 更新表 Python MySQL 删除数据 Python MySQL 删除表 Python MySQL Limit 子句 Python MySQL 连接 Python MySQL 游标对象

Python PostgreSQL

Python PostgreSQL 简介 Python PostgreSQL 数据库连接 Python PostgreSQL 创建数据库 Python PostgreSQL 创建表 Python PostgreSQL 插入数据 Python PostgreSQL 选择数据 Python PostgreSQL Where 子句 Python PostgreSQL 排序 Python PostgreSQL 更新表 Python PostgreSQL 删除数据 Python PostgreSQL 删除表 Python PostgreSQL Limit 子句 Python PostgreSQL 连接 Python PostgreSQL 游标对象

Python SQLite

Python SQLite 简介 Python SQLite 建立连接 Python SQLite 创建表 Python SQLite 插入数据 Python SQLite 选择数据 Python SQLite Where 子句 Python SQLite 排序 Python SQLite 更新表 Python SQLite 删除数据 Python SQLite 删除表 Python SQLite Limit 子句 Python SQLite 连接 Python SQLite 游标对象

Python MongoDB

Python MongoDB 简介 Python MongoDB 创建数据库 Python MongoDB 创建集合 Python MongoDB 插入文档 Python MongoDB 查找 Python MongoDB 查询 Python MongoDB 排序 Python MongoDB 删除文档 Python MongoDB 删除集合 Python MongoDB 更新 Python MongoDB Limit 子句

Python 数据访问资源

Python 数据访问 快速指南 Python 数据访问 有用资源 Python 数据访问 讨论


Python MySQL - 插入数据

您可以使用 INSERT INTO 语句向现有的 MySQL 表添加新行。在此,您需要指定表的名称、列名和值(与列名的顺序相同)。

语法

以下是 MySQL 的 INSERT INTO 语句的语法。

INSERT INTO TABLE_NAME (column1, column2,column3,...columnN)
VALUES (value1, value2, value3,...valueN);

示例

以下查询将记录插入名为 EMPLOYEE 的表中。

INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('
   Mac', 'Mohan', 20, 'M', 2000
);

您可以使用 SELECT 语句验证插入操作后的表记录,如下所示 −

mysql> select * from Employee;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE  | SEX  | INCOME |
+------------+-----------+------+------+--------+
| Mac        | Mohan     | 20   | M    | 2000   | 
+------------+-----------+------+------+--------+
1 row in set (0.00 sec)

不必总是指定列的名称,如果您按照与表列相同的顺序传递记录的值,则可以执行不带列名的 SELECT 语句,如下所示 −

INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000);

使用 python 在 MySQL 表中插入数据

execute() 方法(在游标对象上调用)接受查询作为参数并执行给定的查询。要插入数据,您需要将 MySQL INSERT 语句作为参数传递给它。

cursor.execute("""INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) 
   VALUES ('Mac', 'Mohan', 20, 'M', 2000)""")

使用 python 将数据插入 MySQL 中的表中 −

  • 导入 mysql.connector 包。

  • 使用 mysql.connector.connect() 方法创建连接对象,将用户名、密码、主机(可选默认值:localhost)和数据库(可选)作为参数传递给它。

  • 通过在上面创建的连接对象上调用 cursor() 方法创建游标对象

  • 然后,通过将 INSERT 语句作为参数传递给 execute() 方法执行该语句。

示例

以下示例执行 SQL INSERT 语句以将记录插入EMPLOYEE 表 −

import mysql.connector

#建立连接
conn = mysql.connector.connect(
   user='root', password='password', host='127.0.0.1', database='mydb')

#使用 cursor() 方法创建游标对象
cursor = conn.cursor()

# 准备 SQL 查询以将记录插入数据库。
sql = """INSERT INTO EMPLOYEE(
   FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
   VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""

try:
   # 执行 SQL 命令
   cursor.execute(sql)

   # 在数据库中提交你的更改
   conn.commit()

except:
   # 出现错误时回滚
   conn.rollback()

# 关闭连接
conn.close()

动态插入值

您还可以在 MySQL 的 INSERT 查询中使用"%s"代替值,并将值作为列表传递给它们,如下所示 −

cursor.execute("""INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000)""", 
   ('Ramya', 'Ramapriya', 25, 'F', 5000))

示例

以下示例动态地将一条记录插入到 Employee 表中。

import mysql.connector

#建立连接
conn = mysql.connector.connect(
   user='root', password='password', host='127.0.0.1', database='mydb')

#使用 cursor() 方法创建游标对象
cursor = conn.cursor()

# 准备 SQL 查询以将记录插入数据库。
insert_stmt = (
   "INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)"
   "VALUES (%s, %s, %s, %s, %s)"
)
data = ('Ramya', 'Ramapriya', 25, 'F', 5000)

try:
   # 执行 SQL 命令
   cursor.execute(insert_stmt, data)
   
   # 在数据库中提交你的更改
   conn.commit()

except:
   # 出现错误时回滚
   conn.rollback()

print("Data inserted")

# 关闭连接
conn.close()

输出

Data inserted