Python MySQL - แทรกข้อมูล

คุณสามารถเพิ่มแถวใหม่ในตาราง MySQL ที่มีอยู่โดยใช้ไฟล์ INSERT INTOคำให้การ. ในสิ่งนี้คุณต้องระบุชื่อของตารางชื่อคอลัมน์และค่า (ตามลำดับเดียวกันกับชื่อคอลัมน์)

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของคำสั่ง INSERT INTO ของ MySQL

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