Bây giờ chúng ta sẽ tìm hiểu cách tạo bảng trong bất kỳ cơ sở dữ liệu MySQL nào bằng Python và chúng ta cũng sẽ xem cách kiểm tra xem một bảng đã tồn tại hay chưa bằng cách liệt kê tất cả các bảng trong cơ sở dữ liệu bằng Python
Về cơ bản, để lưu trữ thông tin trong cơ sở dữ liệu MySQL, cần phải tạo các bảng. Cũng cần phải chọn cơ sở dữ liệu của chúng tôi trước rồi tạo các bảng bên trong cơ sở dữ liệu đó
Tại thời điểm tạo kết nối, bạn cũng có thể chỉ định tên cơ sở dữ liệu của mình, như được cung cấp bên dưới
import mysql.connector
db = mysql.connector.connect[
host = "localhost",
user = "yourusername",
password = "yourpassword",
database = "studytonight"
]
Nếu đoạn mã trên được thực thi mà không có bất kỳ lỗi nào thì có nghĩa là bạn đã kết nối thành công với cơ sở dữ liệu có tên là studytonight
Truy vấn SQL để tạo bảng
Để tạo một bảng trong cơ sở dữ liệu đã chọn, câu lệnh sau sẽ được sử dụng. Hãy để chúng tôi xem cú pháp
CREATE TABLE table_name;
Hãy để chúng tôi tạo một bảng có tên sinh viên trong cơ sở dữ liệu được chỉ định, đó là học tối nay
Trong bảng sinh viên chúng ta sẽ có các trường sau. tên, rollno, chi nhánh, và địa chỉ
#for our convenience we will import mysql.connector as mysql
import mysql.connector as mysql
db = mysql.connect[
host = "localhost",
user = "yourusername",
passwd = "yourpassword",
database="studytonight"
]
cursor = db.cursor[]
cursor.execute["CREATE TABLE students [name VARCHAR[255], rollno INTEGER[100], branch VARCHAR[255], address VARCHAR[255]]"]
Nếu mã này thực thi mà không có bất kỳ lỗi nào thì có nghĩa là bảng đã được tạo thành công
Bây giờ, nếu bạn muốn kiểm tra các bảng hiện có trong cơ sở dữ liệu thì bạn có thể sử dụng câu lệnh SQL SHOW TABLES
Liệt kê các Bảng hiện có trong Cơ sở dữ liệu
Bây giờ chúng ta đã tạo một bảng trong cơ sở dữ liệu của mình. Hãy để chúng tôi kiểm tra các bảng tồn tại trong cơ sở dữ liệu của chúng tôi. Sử dụng mã được đưa ra dưới đây
#for our convenience we will import mysql.connector as mysql
import mysql.connector as mysql
db = mysql.connect[
host = "localhost",
user = "yourusername",
passwd = "yourpassword",
database="studytonight"
]
cursor = db.cursor[]
## getting all the tables which are present in 'datacamp' database
cursor.execute["SHOW TABLES"]
tables = cursor.fetchall[] ## it returns list of tables present in the database
## showing all the tables one by one
for table in tables:
print[table]
Đầu ra của đoạn mã trên như sau
['sinh viên',]
Python MySQL - Bảng có khóa chính
Vì chúng tôi đã tạo một bảng có tên sinh viên trong cơ sở dữ liệu của mình, trong đó chúng tôi sẽ lưu trữ dữ liệu sinh viên và tìm nạp nó bất cứ khi nào được yêu cầu. Tuy nhiên, trong khi tìm nạp dữ liệu, chúng tôi có thể tìm thấy các sinh viên có cùng tên và điều đó có thể dẫn đến việc tìm nạp dữ liệu sai hoặc gây ra một số nhầm lẫn
Vì vậy, để xác định duy nhất từng bản ghi trong một bảng, chúng ta có thể sử dụng Khóa chính trong các bảng của mình. Trước tiên chúng ta hãy xem Khóa chính là gì?
Khóa chính là gì?
Khóa chính là một thuộc tính để tạo một cột hoặc một tập hợp các cột chỉ chấp nhận các giá trị duy nhất. Với sự trợ giúp của khóa chính, người ta có thể tìm thấy từng hàng duy nhất trong bảng
Xem video này để tìm hiểu về Khóa DBMS - Giải thích về Khóa DBMS với các ví dụ
Do đó, để xác định duy nhất mỗi hàng bằng một số bắt đầu từ 1. Chúng ta sẽ sử dụng cú pháp như sau
INT AUTO_INCREMENT PRIMARY KEY
Sử dụng đoạn mã trên với bất kỳ cột nào, chúng ta có thể đặt giá trị của nó ở dạng tăng tự động, nghĩa là cơ sở dữ liệu sẽ tự động thêm một giá trị tăng dần ngay cả khi bạn không chèn bất kỳ giá trị nào cho cột đó trong khi chèn một hàng dữ liệu mới vào bảng của bạn
Thêm Khóa chính trong quá trình tạo Bảng
Hãy xem cách thêm khóa chính khi tạo bảng. Đoạn mã cho cùng được đưa ra dưới đây
import mysql.connector as mysql
db = mysql.connect[
host = "localhost",
user = "yourusername",
passwd = "yourpassword",
database = "studytonight"
]
cursor = db.cursor[]
## creating the 'students' table with the 'PRIMARY KEY'
cursor.execute["CREATE TABLE students [name VARCHAR[255], rollno INTEGER[100] NOT NULL AUTO_INCREMENT PRIMARY KEY, branch VARCHAR[255], address VARCHAR[255]]"]
Nếu đoạn mã trên chạy mà không có lỗi thì có nghĩa là bạn đã tạo thành công bảng có tên "students" với cột rollno là khóa chính
Python MySQL - Mô tả bảng
Chúng tôi có thể sử dụng mã python bên dưới để mô tả bất kỳ bảng nào để xem tất cả các cột có những gì và tất cả thông tin meta về bảng và tất cả các cột của nó
import mysql.connector as mysql
db = mysql.connect[
host = "localhost",
user = "yourusername",
passwd = "yourpassword",
database = "studytonight"
]
cursor = db.cursor[]
cursor.execute["DESC students"]
print[cursor.fetchall[]]
đầu ra sẽ là
[['name', 'varchar[255]', 'YES', '', None, ''], ['rollno', 'int', 'NO', 'PRI', None, 'auto_increment'],
Thêm khóa chính vào bảng hiện có
Bây giờ trong ví dụ này, chúng tôi sẽ giả sử rằng cột rollno không tồn tại trong bảng sinh viên của chúng tôi. Vì vậy, chúng ta sẽ tìm hiểu cách thêm một cột được sử dụng làm khóa chính trong một bảng hiện có
Hãy để chúng tôi xem cách tạo khóa chính trên bảng hiện có. Đoạn mã cho cùng được đưa ra dưới đây
import mysql.connector as mysql
db = mysql.connect[
host = "localhost",
user = "root",
passwd = "himaniroot@99",
database = "studytonight"
]
cursor = db.cursor[]
## We are going to add rollno field with primary key in table students
cursor.execute["ALTER TABLE students ADD COLUMN rollno INT AUTO_INCREMENT PRIMARY KEY"]
print[cursor.fetchall[]]
Trong đoạn mã trên, chúng tôi đã sử dụng Truy vấn thay đổi SQL để thêm một cột mới vào một bảng hiện có. Bạn có thể sử dụng truy vấn mô tả bảng để xem cột mới được thêm vào
[['tên', 'varchar[255]', 'CÓ', '', Không, ''], ['nhánh', 'varchar[255]', 'CÓ', '', Không, '']
Vì vậy, trong hướng dẫn này, chúng tôi đã đề cập đến mọi thứ liên quan đến việc tạo một bảng MySQL mới trong python. Chúng tôi đã giới thiệu cách thay đổi bảng, cách liệt kê tất cả các bảng trong cơ sở dữ liệu và cách xác định một cột làm khóa chính