Bảng dữ liệu là cấu trúc có vai trò quan trọng nhất trong cơ sở dữ liệu quan hệ. Toàn bộ dữ liệu của cơ sở dữ liệu được tổ chức trong các bảng, những bảng này có thể là những bảng hệ thống được tạo ra khi tạo cơ sở dữ liệu, và cũng có thể là những bảng do người sử dụng định nghĩa.
Trong các bảng, dữ liệu được tổ chức dưới dạng các dòng và cột. Mỗi một dòng là một bản ghi duy nhất trong bảng và mỗi một cột là một trường. Các bảng trong cơ sở dữ liệu được sử dụng để biểu diễn thông tin, lưu giữ dữ liệu về các đối tượng trong thế giới thực và/hoặc mối quan hệ giữa các đối tượng. Bảng trong hình trên bao gồm 7 bản ghi và 5 trường là ID, NAME, AGE, ADDRESS, SALARY.
Nội dung chính
Cú pháp tạo bảng trong MySQL
Sau đây là cú pháp tạo bảng trong MySQL:
CREATE TABLE ten_bang ( ten_cot thuoc_tinh_cot cac_rang_buoc_cot [, ..., ten_cot_n thuoc_tinh_cot_n cac_rang_buoc_cot_n], [cac_rang_buoc_tren_bang] )
Trong đó:
ten_bang : Tên của bảng cần tạo. Tên phải tuân theo qui tắc định danh và không được vượt quá 128 ký tự.
ten_cot : Là tên của cột (trường) cần định nghĩa, tên cột phải tuân theo qui tắc định danh và không được trùng nhau trong mỗi một bảng. Mỗi một bảng phải có ít nhất một cột. Nếu bảng có nhiều cột thì định nghĩa của các cột (tên cột, thuộc tính và các ràng buộc) phải phân cách nhau bởi dấu phẩy.
thuoc_tinh_cot : Mỗi một cột trong một bảng ngoài tên cột còn có các thuộc tính bao gồm:
- Kiểu dữ liệu của cột. Đây là thuộc tính bắt buộc phải có đối với mỗi cột.
- Giá trị mặc định của cột: là giá trị được tự động gán cho cột nếu như người sử dụng không nhập dữ liệu cho cột một cách tường minh. Mỗi một cột chỉ có thể có nhiều nhất một giá trị mặc định.
- Cột có tính chất IDENTITY hay không? tức là giá trị của cột có được tự động tăng mỗi khi có bản ghi mới được bổ sung hay không. Tính chất này chỉ có thể sử dụng đối với các trường kiểu số.
- Cột có chấp nhận giá trị NULL hay không.
Ví dụ tạo bảng trong MySQL
Câu lệnh dưới đây định nghĩa bảng NHANVIEN với các trường MANV (mã nhân viên), HOTEN (họ và tên), NGAYSINH (ngày sinh của nhân viên), DIENTHOAI (điện thoại) và HSLUONG (hệ số lương)
CREATE TABLE nhanvien ( manv INT NOT NULL AUTO_INCREMENT, hoten VARCHAR(50) NOT NULL, ngaysinh DATETIME NULL, dienthoai VARCHAR(11) NULL, hsluong DECIMAL(3, 2), PRIMARY KEY (manv) );
Trong câu lệnh trên, trường MANV và HOTEN của bảng NHANVIEN không được NULL (tức là bắt buộc phải có dữ liệu), trường NGAYSINH và DIENTHOAI sẽ nhận giá trị NULL.
Thuộc tính ràng buộc NOT NULL của trường được sử dụng bởi vì chúng ta không muốn trường này là NULL. Vì thế, nếu người dùng cố gắng tạo một bản ghi có giá trị NULL, thì MySQL sẽ tạo một lỗi.
Thuộc tính AUTO_INCREMENT nói cho MySQL tự động tăng khóa chính và thêm giá trị có sẵn tiếp theo tới trường manv.
Từ khóa PRIMARY KEY được sử dụng để định nghĩa một cột là PRIMARY KEY (khóa chính). Bạn có thể sử dụng nhiều cột phân biệt nhau bởi dấu phảy để định nghĩa một PRIMARY KEY.
Insert dữ liệu vào bảng nhanvien
Nếu ta thực thi các câu lệnh dưới đây sau khi tạo bảng để bổ sung dữ liệu cho bảng nhanvien
INSERT INTO nhanvien (hoten, ngaysinh, dienthoai, hsluong) VALUES('Nguyen Van Vinh', '2020/10/03', '886963', 2.14); INSERT INTO nhanvien(hoten) VALUES('Mai Thanh Toan'); INSERT INTO nhanvien(hoten,dienthoai) VALUES('Tran Thi C','849290');
Ta sẽ có được dữ liệu trong bảng nhanvien như sau: