Python MySQL - Wstaw dane
Możesz dodać nowe wiersze do istniejącej tabeli MySQL za pomocą rozszerzenia INSERT INTOkomunikat. W tym celu musisz określić nazwę tabeli, nazwy kolumn i wartości (w tej samej kolejności, co nazwy kolumn).
Składnia
Poniżej przedstawiono składnię instrukcji INSERT INTO MySQL.
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
Przykład
Poniższe zapytanie wstawia rekord do tabeli o nazwie EMPLOYEE.
INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000);
Możesz zweryfikować rekordy tabeli po operacji wstawiania za pomocą instrukcji SELECT jako -
mysql> select * from Employee;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Mac | Mohan | 20| M | 2000 |
+------------+-----------+------+------+--------+
1 row in set (0.00 sec)
Nie jest obowiązkowe podawanie nazw kolumn zawsze, jeśli przekazujesz wartości rekordu w tej samej kolejności, co kolumny tabeli, możesz wykonać instrukcję SELECT bez nazw kolumn w następujący sposób -
INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000);
Wstawianie danych do tabeli MySQL za pomocą Pythona
Plik execute()metoda (wywoływana na obiekcie kursora) przyjmuje zapytanie jako parametr i wykonuje zadane zapytanie. Aby wstawić dane, musisz przekazać do nich instrukcję MySQL INSERT jako parametr.
cursor.execute("""INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)""")
Aby wstawić dane do tabeli w MySQL za pomocą Pythona -
import mysql.connector pakiet.
Utwórz obiekt połączenia przy użyciu mysql.connector.connect() metody, przekazując jako parametry nazwę użytkownika, hasło, host (opcjonalnie domyślnie: localhost) i bazę danych (opcjonalnie).
Utwórz obiekt kursora, wywołując plik cursor() na obiekt połączenia utworzony powyżej.
Następnie wykonaj INSERT instrukcja, przekazując ją jako parametr do execute() metoda.
Przykład
Poniższy przykład wykonuje instrukcję SQL INSERT , aby wstawić rekord do tabeli 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()
Dynamiczne wstawianie wartości
Możesz także użyć “%s” zamiast wartości w INSERT zapytanie MySQL i przekazanie do nich wartości w postaci list, jak pokazano poniżej -
cursor.execute("""INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000)""",
('Ramya', 'Ramapriya', 25, 'F', 5000))
Przykład
Poniższy przykład dynamicznie wstawia rekord do tabeli 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.
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()
Wynik
Data inserted