Bài 3 – Tạo bảng cho cơ sở dữ liệu MySQL trong Python

Như chúng ta biết, trong mỗi cơ sở dữ liệu thường có nhiều bảng dùng để chứa dữ liệu và để tạo bảng bằng câu lệnh SQL sẽ như sau: CREATE TABLE và để không tạo bảng trùng tên với các bảng đã có trong cơ sở dữ liệu chúng ta sẽ hiển thị toàn bộ bảng đã có bằng câu lệnh SQL như sau: SHOW TABLES

Kết nối Python với cơ sở dữ liệu MySQL

Hiển thị toàn bộ bảng đã có trong cơ sở dữ liệu

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)

Tạo bảng trong cơ sở dữ liệu MySQL

import mysql.connector

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

mycursor = mydb.cursor()

try:
    mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")
except:
    mydb.rollback()

Tạo bảng có chứa khóa chính Primary Key, dữ liệu của khóa chính không được giống nhau giữa các bản ghi. Chúng ta sẽ sử dụng cú pháp “INT AUTO_INCREMENT PRIMARY KEY” thì dữ liệu của khóa chính sẽ tự động được điền các giá trị duy nhất từ 1 đến số bản ghi cuối cùng.

import mysql.connector

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

mycursor = mydb.cursor()

try:
    mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")
except:
    mydb.rollback()

Thêm cột cho bảng đã có trong cơ sở dữ liệu

Trong quá trình chúng ta tạo ra bảng, có thể chưa có cột nào đó, do đó chúng ta có thể bổ sung cột đó vào bảng bằng câu lệnh ALTER TABLE, ví dụ thêm cột id như sau:

import mysql.connector

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

mycursor = mydb.cursor()

try:
    mycursor.execute("ALTER TABLE customers ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")
except:
    mydb.rollback()

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *