Bài 05: Lệnh tạo bảng (Create Table) trong MySQL

Trong bài này chúng ta sẽ tìm hiểu một lệnh đầu tiên trong ngôn ngữ T-SQL nói riêng và trong MySQL nói chung đó là lệnh tạo mới một bảng (Create Table). Trong bài này chúng ta có sử dụng một số kiểu dữ liệu trong MySQL nên để thiết lập kiểu dữ liệu cho các field trong table.

Nhưng trước khi vào vấn đề chính thì chúng ta cần phải làm sáng tỏ một vài vấn đề. Như bạn biết trong các mô hình như mô hình thực thể mối kết hợp thì chúng ta có tìm hiểu khái niệm về loại thực thể (entity), nếu liên hệ tới hệ CSDL thì ta sẽ gọi nó là một table. Ví dụ như trong mô hình quản lý sinh viên ta sẽ có bảng SINHVIEN, bảng LOP, bảng MONHOC và đây cũng chính là các loại thực thể. 

Mỗi table chúng ta sẽ có một số thông tin riêng. Ví dụ như bảng SINHVIEN chúng ta có:

  • Tên sinh viên
  • Năm sinh
  • Đang học lớp
  • ...
Note: Tất cả các đoạn code SQL này bạn copy và dán vào trình chạy và Execute nhé, nếu chưa biết nó ở đâu bạn quay lại bài cài đặt mysql để tìm hiểu thêm

Bây giờ ta sẽ tìm hiểu chi tiết hơn nhé.

1. Lệnh tạo bảng (Create Table) trong MySQL

Trước tiên chúng ta cần sử dụng lệnh tạo database để tạo mới một database, sau đó sử dụng lệnh USE để chọn database này.

CREATE DATABASE QLSV

Để tạo mới một bảng ta sử dụng cú pháp sau:

CREATE TABLE [IF NOT EXISTS] table_name(
        /*column_list*/
) ENGINE=table_type
Trong đó:

  • CREATE TABLE: là từ khóa tạo bảng
  • [IF NOT EXISTS]: dòng này có thể có hoặc không, ý nghĩa của nó là nếu table này chưa tồn tại thì thực hiện tạo, còn nếu tồn tại rồi thì không tạo mới.
  • column_list: là danh sách các fields, ví dụ như TenSV, MaSV, ... Mỗi field gồm hai thông số là tên field và kiểu dữ liệu cho nó, nếu có nhiều field thì sẽ dùng dấu phảy (,) để ngăn cách.
    Ví dụ: TenSV varchar(255)
  • ENGINE=table_type: Là kiểu engine của bảng này, các kiểu này chúng ta đã được học ở bài MySQL Table Types & Storage Engines

Ví dụ: Cho bảng SINHVIEN gồm có các thông tin sau:

  • TenSV: Tên sinh viên, kiểu varchar và chiều dài tối đa 255 ký tự
  • MaSV: Mã sinh viên, kiểu INT và chiều dai là tối đa 11 số
  • NamSinh: Năm sinh, kiểu INT và chiều dài tối đa là 4 số

Lệnh tạo bảng như sau:

USE QLSV; 

CREATE TABLE SINHVIEN(
	TenSV VARCHAR(255),
	MaSV INT(11),
	NamSinh INT(4)
) ENGINE = InnoDB

2. Gán giá trị mặc định cho table

Giá trị mặc định tức là khi bạn tạo một record mới mà bạn không nhập dữ liệu vào thì mặc nhiên nó sẽ lấy giá trị mặc định đó làm giá trị. Để gán giá trị mặc định thì ta sẽ dùng từ khóa DEFAULT đằng sau mỗi fields. 

Ví dụ:

USE QLSV; 

CREATE TABLE SINHVIEN(
	TenSV VARCHAR(255) DEFAULT 'noname',
	MaSV INT(11),
	NamSinh INT(4)
) ENGINE = InnoDBsinhvien

3. Thiết lập Null và Not Null cho Column

Nếu bạn muốn một column nào đó mỗi khi nhập dữ liệu thì bắt buộc phải nhập cho nó thì bạn sẽ sử dụng từ khóa NOT NULL. Ngược lại thì bạn sẽ dùng từ khóa NULL (mặc định là NULL nếu ban không truyền)

Ví dụ:

USE QLSV; 

CREATE TABLE SINHVIEN(
	TenSV VARCHAR(255) DEFAULT 'noname',
	MaSV INT(11) NOT NULL,
	NamSinh INT(4)
) ENGINE = InnoDBsinhvien<br><br><br><br>

5. Xóa bảng (DROP TABLE)

Để xóa bảng ta sử dụng cú pháp: DROP TABLE tb_name.

Ví dụ:

DROP TABLE users

# Lời kết

Trong thực tế thì bạn có thể sử dụng các chương trình quản lý CSDL MySQL thông dụng như SQLYog hay thậm chí là PHPMyAdmin để tạo bảng thay vì sử dụng lệnh. Nhưng nếu bạn code giỏi thì nên tìm hiểu để biết thêm lỡ sau này đi phỏng vấn thì còn biết đường trả lời. Bài này chúng ta tìm hiểu tới đây thôi, bài tiếp theo chúng ta sẽ tìm hiểu các lệnh sửa bảng, ví dụ sửa tên bảng, sửa tên field, mời các bạn theo dõi nhé.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Group Facebook để được hỗ trợ nhanh nhất.