Python MySQL - вставка данных

Вы можете добавлять новые строки в существующую таблицу MySQL, используя INSERT INTOзаявление. В этом случае вам необходимо указать имя таблицы, имена столбцов и значения (в том же порядке, что и имена столбцов).

Синтаксис

Ниже приведен синтаксис оператора 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);

Вставка данных в таблицу MySQL с помощью Python

В execute()Метод (вызываемый на объекте курсора) принимает запрос в качестве параметра и выполняет данный запрос. Чтобы вставить данные, вам необходимо передать инструкцию MySQL INSERT в качестве параметра.

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

Чтобы вставить данные в таблицу в MySQL с помощью python -

  • импорт mysql.connector пакет.

  • Создайте объект подключения, используя mysql.connector.connect() , передав ему имя пользователя, пароль, хост (необязательно по умолчанию: localhost) и базу данных (необязательно) в качестве параметров.

  • Создайте объект курсора, вызвав cursor() в созданном выше объекте подключения.

  • Затем выполните INSERT оператор, передав его как параметр в execute() метод.

пример

В следующем примере выполняется инструкция SQL INSERT для вставки записи в таблицу EMPLOYEE:

import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
   user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
# Preparing SQL query to INSERT a record into the database.
sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
   VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
   # Executing the SQL command
   cursor.execute(sql)
   # Commit your changes in the database
   conn.commit()
except:
   # Rolling back in case of error
   conn.rollback()
# Closing the connection
conn.close()

Динамическая вставка значений

Вы также можете использовать “%s” вместо значений в INSERT запрос MySQL и передать им значения в виде списков, как показано ниже -

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

пример

В следующем примере запись динамически вставляется в таблицу сотрудников.

import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
   user='root', password='password', host='127.0.0.1', database='mydb'
)

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

# Preparing SQL query to INSERT a record into the database.
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:
   # Executing the SQL command
   cursor.execute(insert_stmt, data)
   # Commit your changes in the database
   conn.commit()
except:
   # Rolling back in case of error
   conn.rollback()
print("Data inserted")
# Closing the connection
conn.close()

Вывод

Data inserted