Tạo database và tạo table trong MySQL với Python

Đây là bài 49/54 bài của series môn học Ngôn ngữ lập trình Python

Để học tốt bài này, các bạn cần phải biết cách kết nối MySQL trong Python. Các bạn có thể đọc lại bài Kết nối hệ quản trị cơ sở dữ liệu MySQL trong Python để biết cách kết nối với MySQL trong Python.

Lưu ý, chúng ta đang sử dụng MySQL được tích hợp sẵn trong XAMPP. Các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách cài đặt XAMPP và khởi chạy MySQL.

1. Tạo database trong MySQL với Python

Sau khi đã tạo một kết nối đến MySQL trong XAMPP, các bạn có 2 cách để tạo các database trong MySQL:

Cách 1. Sử dụng công cụ phpMyAdmin để tạo database. Các bạn đọc lại phần Kết nối đến một database cụ thể trong MySQL để biết cách tạo database với phpMyAdmin.

Cách 2. Sử dụng Python để thực thi câu lệnh CREATE DATABASE” để tạo database trong MySQL.

import mysql.connector

# create connection to MySQL
mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password=""
)

mycursor = mydb.cursor()

mycursor.execute("CREATE DATABASE gochocit")
# disconnect from MySQL
mydb.close()

Nếu đoạn code Python thực thi không có lỗi thì tạo database thành công. Nếu gặp bất cứ lỗi nào thì tạo database không thành công. Ví dụ có một lỗi (error) bên dưới là lỗi khi tạo database gochocit. Lỗi này xảy ra do đã có database gochocit trong MySQL rồi nên không tạo được nữa.

mysql.connector.errors.DatabaseError: 1007 (HY000): Can't create database 'gochocit'; database exists

Để tránh lỗi trên, chúng ta sử dụng câu thực thi SQL như bên dưới để kiểm tra và tạo database nếu chưa tồn tại.

mycursor.execute("CREATE DATABASE IF NOT EXISTS gochocit")

Nếu muốn tạo database với bảng mã hóa ký tự cụ thể (ví dụ utf8_general_ci) thì sửa lại câu thực thi SQL như bên dưới.

mycursor.execute("CREATE DATABASE gochocit CHARACTER SET utf8 COLLATE utf8_general_ci")

Lưu ý: Bảng mã hóa ký tự mặc định trong MySQL trong XAMPP là utf8mb4_general_ci.

Sau khi đã tạo database trong MySQL, chúng ta cần kết nối đến database để thực hiện các thao tác, xử lý. Các bạn đọc lại phần Kết nối đến một database cụ thể trong MySQL để biết cách kết nối đến một database trong MySQL với Python.

2. Tạo table trong database trong MySQL

Để tạo table trong database, chúng ta sử dụng Python để thực thi câu lệnh SQL là CREATE TABLE. Lưu ý, cần tạo kết nối đến database trong MySQL để tạo được table.

import mysql.connector

# create connection to MySQL
mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="",
  database = "gochocit"
)
mycursor = mydb.cursor()

sql_string = """CREATE TABLE IF NOT EXISTS gochocit_posts (
                ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
                post_author VARCHAR(255),
                post_title TEXT,
                post_content TEXT,
                post_date DATETIME
                )
                """

mycursor.execute(sql_string)
# disconnect from MySQL
mydb.close()
Bảng gochocit_posts được tạo ra

Trong ví dụ trên, chúng ta tạo ra một table gochocit_posts trong database gochocit. Sử dụng lệnh IF NOT EXISTS để kiểm tra table đã tồn tại chưa, nếu chưa thì sẽ tạo table.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Kết nối hệ quản trị cơ sở dữ liệu MySQL trong PythonThêm (insert) và xóa (delete) dữ liệu trong MySQL với Python >>
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.