MySQL 資料庫表格建立、資料插入及獲取插入的 ID:Python 教學

2023-11-10 06:00:54

建立表格

要在MySQL中建立表格,請使用"CREATE TABLE"語句。

確保在建立連線時定義了資料庫的名稱。

範例建立一個名為 "customers" 的表格:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")

如果上述程式碼沒有出現錯誤,那麼您已成功建立了一個表格。

檢查表格是否存在

您可以通過使用"SHOW TABLES"語句列出資料庫中的所有表格來檢查表格是否存在:

範例返回系統中的表格列表:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("SHOW TABLES")

for x in mycursor:
  print(x)

主鍵

在建立表格時,您還應該為每個記錄建立一個具有唯一鍵的列。

這可以通過定義主鍵來完成。

我們使用語句"INT AUTO_INCREMENT PRIMARY KEY",它將為每個記錄插入一個唯一的數位。從1開始,每個記錄遞增一次。

範例在建立表格時建立主鍵:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")

如果表格已經存在,可以使用ALTER TABLE關鍵字:

範例在現有表格上建立主鍵:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("ALTER TABLE customers ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")

插入資料到表格

要在MySQL中填充表格,請使用"INSERT INTO"語句。

範例在 "customers" 表格中插入一條記錄:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record inserted.")

重要提示:請注意語句 mydb.commit()。這是必需的,以使更改生效,否則不會對錶格進行更改。

插入多行

要將多行插入到表格中,使用 executemany() 方法。

executemany() 方法的第二個引數是包含要插入資料的元組列表:

範例填充 "customers" 表格的資料:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
  ('Peter', 'Lowstreet 4'),
  ('Amy', 'Apple st 652'),
  ('Hannah', 'Mountain 21'),
  ('Michael', 'Valley 345'),
  ('Sandy', 'Ocean blvd 2'),
  ('Betty', 'Green Grass 1'),
  ('Richard', 'Sky st 331'),
  ('Susan', 'One way 98'),
  ('Vicky', 'Yellow Garden 2'),
  ('Ben', 'Park Lane 38'),
  ('William', 'Central st 954'),
  ('Chuck', 'Main Road 989'),
  ('Viola', 'Sideway 1633')
]

mycursor.executemany(sql, val)

mydb.commit()

print(mycursor.rowcount, "were inserted.")

獲取插入的ID

您可以通過詢問遊標物件來獲取剛剛插入的行的ID。

注意:如果插入多行,將返回最後插入行的ID。

範例插入一行,並返回ID:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("Michelle", "Blue Village")
mycursor.execute(sql, val)

mydb.commit()

print("1 record inserted, ID:", mycursor.lastrowid)

最後

為了方便其他裝置和平臺的小夥伴觀看往期文章:公眾號搜尋Let us Coding,或者掃描下方二維條碼,關注公眾號,即可獲取最新文章。

看完如果覺得有幫助,歡迎點贊、收藏關注