Bài viết Learn & More

Bài 3: Khái niệm Table, Primary Key và Cách tạo Cấu trúc Dữ liệu (DDL)

Bài viết này thuộc SQL ServerCơ bản.

Bạn đã cài đặt thành công SQL Server và mở được SSMS. Nhưng hiện tại, nó chỉ là một không gian trống rỗng. Trước khi có thể lưu trữ thông tin (ví dụ: Tên khách hàng, Giá sản phẩm), chúng ta cần phải xây "nhà" cho chúng. Trong bài này, chúng ta sẽ làm quen với khái niệm Database, Table, Khóa chính, và học nhóm lệnh DDL (Data Definition Language) để xây dựng cơ sở hạ tầng dữ liệu. Đừng quên mở script "Bài 0" để cùng phân tích nhé!

Bài 3: Khái niệm Table, Primary Key và Cách tạo Cấu trúc Dữ liệu (DDL)

Bạn đã cài đặt thành công SQL Server và mở được SSMS. Nhưng hiện tại, nó chỉ là một không gian trống rỗng. Trước khi có thể lưu trữ thông tin (ví dụ: Tên khách hàng, Giá sản phẩm), chúng ta cần phải xây "nhà" cho chúng.

 

Trong bài này, chúng ta sẽ làm quen với khái niệm Database, Table, Khóa chính, và học nhóm lệnh DDL (Data Definition Language) để xây dựng cơ sở hạ tầng dữ liệu. Đừng quên mở script "Bài 0" để cùng phân tích nhé!

 

1. Các khái niệm cốt lõi

 

Database (Cơ sở dữ liệu) là gì?

Hãy coi Database như một "Cái tủ hồ sơ". Mỗi hệ thống phần mềm (như Website bán hàng, App quản lý nhân sự) sẽ có một tủ hồ sơ riêng. Trong bài học của chúng ta, tủ hồ sơ mang tên ShopDB.

 

Table (Bảng) là gì?

Trong tủ hồ sơ sẽ có các "Ngăn kéo" để phân loại giấy tờ. Ngăn đựng danh sách khách hàng (Customers), ngăn đựng danh sách sản phẩm (Products). Table chính là các ngăn kéo đó.

Mỗi Table gồm:

- Cột (Column/Field): Định nghĩa loại thông tin (Tên, Số điện thoại).

- Hàng (Row/Record): Mỗi hàng là thông tin của 1 đối tượng cụ thể (Ví dụ: Khách hàng Nguyễn Văn A).

 

Khóa chính (Primary Key - PK) là gì?

Trong bảng Customers, nếu có 2 người cùng tên "Nguyễn Văn A" thì làm sao phân biệt? Chúng ta cần một Cột làm CMND/CCCD cho mỗi dòng dữ liệu.

Khóa chính (PK) là một cột có 2 quy tắc:

1. Dữ liệu không được trùng lặp (Unique).

2. Không được để trống (Not Null).

Thường người ta dùng số ID tăng dần (1, 2, 3...) làm Khóa chính.

 

2. Nhóm lệnh DDL: CREATE, ALTER, DROP

DDL (Data Definition Language) là các lệnh dùng để thay đổi "Cấu trúc" (như xây nhà, đập tường), chứ chưa đụng gì đến "Dữ liệu" (đồ đạc trong nhà).

 

2.1 Tạo Database và Chọn Database

Cú pháp rất đơn giản:

```sql

-- Tạo một tủ hồ sơ mới

CREATE DATABASE ShopDB;

GO

 

-- Quan trọng: Bảo SQL Server biết tôi muốn làm việc với tủ hồ sơ này

USE ShopDB;

GO

```

Lưu ý: GO là lệnh báo cho SSMS biết kết thúc một lô lệnh (batch) để chạy.

 

2.2 Tạo Table (Bảng)

Hãy xem cách chúng ta tạo bảng Khách hàng ở Bài 0:

 

```sql

CREATE TABLE Customers (

    CustomerID INT IDENTITY(1,1) PRIMARY KEY,

    FullName NVARCHAR(100) NOT NULL,

    Email VARCHAR(100) UNIQUE,

    PhoneNumber VARCHAR(20)

);

```

Giải thích cú pháp:

- CREATE TABLE Tên_Bảng: Lệnh tạo bảng.

- Khai báo cột theo cấu trúc: Tên_Cột  Kiểu_Dữ_Liệu  [Các_Ràng_Buộc]

- IDENTITY(1,1): Tính năng tự động tăng số ID (Bắt đầu từ 1, mỗi lần thêm dữ liệu tự cộng lên 1).

- PRIMARY KEY: Khai báo cột này là Khóa chính.

- NOT NULL: Bắt buộc phải nhập dữ liệu, không được để trống.

- UNIQUE: Email không được phép trùng lặp giữa các khách hàng.

 

2.3 Sửa cấu trúc Bảng (ALTER)

Giả sử tạo xong bảng, sếp yêu cầu thêm cột "Địa chỉ". Thay vì xóa bảng tạo lại, ta dùng ALTER:

 

```sql

-- Thêm cột mới

ALTER TABLE Customers ADD Address NVARCHAR(200);

 

-- Xóa một cột đi

ALTER TABLE Customers DROP COLUMN PhoneNumber;

```

 

2.4 Xóa Bảng hoặc Database (DROP)

Cảnh báo: Lệnh này rất nguy hiểm, nó xóa sạch cả cấu trúc lẫn toàn bộ dữ liệu bên trong.

 

```sql

-- Đập bỏ bảng

DROP TABLE Customers;

 

-- Đập bỏ cả cái tủ hồ sơ

DROP DATABASE ShopDB;

```

 

Thực hành

1. Hãy thử tự viết lệnh CREATE TABLE tạo một bảng Employees (Nhân viên) gồm các cột: EmployeeID (Khóa chính, tự tăng), EmployeeName, BirthDate.

2. Dùng lệnh ALTER TABLE thêm cột Salary vào bảng vừa tạo.

 

Tổng kết (Key Takeaways)

- Database chứa nhiều Table. Table chứa nhiều Cột và Hàng.

- Primary Key (Khóa chính) giúp phân biệt các dòng dữ liệu không bị nhầm lẫn.

- Dùng CREATE để tạo, ALTER để sửa cấu trúc, và DROP để xóa cấu trúc.

 

Điều hướng (Next Steps)

Nhà đã xây xong, ngăn kéo đã có sẵn. Bài tiếp theo chúng ta sẽ tìm hiểu kỹ hơn về các [Kiểu dữ liệu (Data Types)] để biết cách định nghĩa cột sao cho tối ưu bộ nhớ nhé!

Đọc tiếp

SQL Server Cơ bản

Bài 4: Các Kiểu Dữ Liệu (Data Types) phổ biến nhất trong SQL Server

Nội dung liên quan

Thêm bài viết trong danh mục này