Tạo các bảng có ý nghĩa

Trong các bài giảng trước, chúng ta đã làm quen một chút với các truy vấn để tạo bảng, bây giờ là lúc để tìm hiểu sâu hơn về vấn đề này.

Việc tạo một bảng rất giống với việc khai báo một lớp trong Java và có mẫu sau:

CREATE TABLE table_name (
	column1 datatype,
	column2 datatype,
	column3 datatype,
   ....
);

Ví dụ: hãy viết truy vấn tạo bảng có người dùng:

CREATE TABLE user (
	id INT,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Nó trông rất đơn giản, bởi vì rất nhiều sắc thái không được chỉ ra ở đây.

Đầu tiên, bảng có thể có các cài đặt bổ sung.

Và thứ hai, mỗi cột có thể có các cài đặt bổ sung.

Và chúng ta sẽ bắt đầu với các cài đặt để tạo cột.

Chìa khóa trong bảng

Ngoài tên và kiểu dữ liệu, một cột trong bảng cũng có thể có các cài đặt sau:

KHÓA CHÍNH Cột là khóa của bảng
KHÓA ĐỘC ĐÁO Tất cả các giá trị cột phải là duy nhất.
Giá trị mặc định Giá trị mặc định
CÓ GIÁ TRỊ Cấm chấp nhận giá trị NULL
AUTO_INCREMENT SQL Server sẽ tự động tăng giá trị khi một bản ghi mới được thêm vào bảng
ĐÃ TẠO trường tính toán
KHO Nơi lưu trữ dữ liệu: trên đĩa hoặc trong bộ nhớ
BÌNH LUẬN Nhận xét cột, ví dụ: tiêu đề bằng ngôn ngữ địa phương

Dưới đây chúng ta sẽ xem xét một số trong số họ.

Đầu tiên, đó là PRIMARY KEY .

Thông thường, đây là một cột riêng biệt có tên id và loại INT. Đây được gọi là "khóa chính" của bảng và tất cả các hàng của bảng đều có các giá trị duy nhất cho khóa này. Nó chủ yếu được sử dụng để các bảng khác có thể tham chiếu đến các bản ghi của bảng của chúng ta và trỏ đến bản ghi cụ thể của nó.

Thứ hai là UNIQUE KEY .

Theo một số cách, nó tương tự như PRIMARY KEY, mặc dù tải ngữ nghĩa của nó hoàn toàn khác. Nếu một cột có thuộc tính ĐỘC ĐÁO, thì tất cả các giá trị trong cột đó phải là duy nhất. Một ví dụ điển hình về sự khác biệt giữa UNIQUE KEY và PRIMARY KEY là danh sách những người trong văn phòng hộ chiếu.

Mã số thuế là một KHÓA CHÍNH, nó được sử dụng để giúp dễ dàng tham khảo đúng người từ các bảng khác.

Số hộ chiếu là một KHÓA DUY NHẤT. Không thể có hai người có cùng số hộ chiếu. Tuy nhiên, số hộ chiếu có thể được thay đổi. Ví dụ, khi thay đổi họ. Và số thuế sẽ ở lại với bạn mãi mãi. Đây là nhiệm vụ chính của PRIMARY KEY. Một ví dụ về truy vấn chỉ định KHÓA CHÍNH:

CREATE TABLE user (
	id INT PRIMARY KEY,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Cài đặt kiểu dữ liệu

Có những thuộc tính ít quan trọng hơn nhưng hữu ích.

giá trị MẶC ĐỊNH

Khi chèn dữ liệu (thêm hàng mới) vào bảng, bạn có thể bỏ qua giá trị của một số cột nếu chúng có giá trị mặc định. Trong trường hợp này, máy chủ SQL sẽ chỉ đặt giá trị của chính cột đó.

Bắt đầu với phiên bản 8 của MySQL, bạn có thể chỉ định một biểu thức làm giá trị.

CÓ GIÁ TRỊ

Nếu bạn chỉ định thuộc tính NOT NULL cho một cột khi tạo bảng, thì SQL Server sẽ đảm bảo rằng không thể lưu trữ giá trị NULL trong cột này. Theo mặc định, bất kỳ cột nào cũng có thể có giá trị NULL, kể cả cột INT. Điều này hơi không rõ ràng đối với một lập trình viên Java.

AUTO_INCREMENT

Nó thường được sử dụng cho id của cột. Khi bạn thêm một hàng mới vào một bảng, bạn thực sự muốn máy chủ SQL gán một id cho mục này. Ai tốt hơn máy chủ biết anh ta có bao nhiêu hàng trong bảng. Đặc biệt nếu các yêu cầu từ các máy khách khác nhau đến cùng một máy chủ SQL.

Đây chính là chức năng của thuộc tính AUTO_INCREMENT. Khi thêm một hàng mới, chúng tôi chỉ đơn giản là không chuyển bất kỳ thứ gì dưới dạng id và máy chủ SQL sẽ chỉ định ID chính xác cho bản ghi này: nó sẽ chỉ lấy ID của bản ghi hiện có cuối cùng và tăng nó lên 1. Thuộc tính này chỉ có thể là được sử dụng với các kiểu số nguyên và số thực. Và, tất nhiên, hãy tạo một ví dụ về cách tạo một bảng như vậy:

CREATE TABLE user (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(100) NOT NULL,
	level INT DEFAULT 1,
	created_date DATE NOT NULL,
);