Trong bài này bạn sẽ được học cách sử dụng lệnh CREATE TABLE
để tạo mới một database. Ngoài cách sử dụng lệnh này thì bạn cũng có thể sử dụng công cụ SSMS, tuy nhiên thường thì DBA sẽ thích sử dụng SQL hơn.
1. Cú pháp lệnh Create Database trong SQL Server
Một table sẽ được lưu trữ trong một database duy nhất và tên table cũng duy nhất, nó có thể có một hoặc nhiều column và mỗi column sẽ thuộc một kiểu dữ liệu và các thông số cấu hình riêng.
Tùy vào ý tưởng thiết kế database mà mỗi một hệ thống sẽ có những bảng khác nhau, hai dự án giống nhau nhưng nếu hai người làm thì database chưa chắc đã giống nhau.
Để tạo mới một table thì bạn sử dụng lệnh CREATE TABLE
với cú pháp sau:
CREATE
TABLE
[database_name.][schema_name.]table_name (
pk_column data_type
PRIMARY
KEY
,
column_1 data_type,
column_2 data_type,
...,
table_constraints
);
Trong đó:
database_name
là tên của database mà table sẽ được tạo trong đó, nếu bạn không nhập thì nó sẽ lấy database hiện tại.schema_name
là tên của lược đồ mà bạn muốn table này nằm trong đó, giá trị này có thể không cần nhập.table_name
là tên của table cần tạo.column_1
,column_2
, ... là danh sách các column của table.data_type
là tên của kiểu dư liệu tương ứng cho column phía trước nó.pk_column
cũng là một column, chỉ có điều mình đặt tên khác để nhấn mạnh nó là khóa chính.PRIMARY KEY
là thuộc tính chỉ định column này là khóa chính.table_constraints
là danh sách những thông tin bổ sung như khóa ngoại, khóa chính.
Hãy xem ví dụ dưới đây:
CREATE
TABLE
QLHS.hs.STUDENTS(
id
INT
PRIMARY
KEY
,
full_name NVARCHAR(200)
NOT
NULL
,
age
INT
NULL
);
Mẹo nhỏ: Bạn nên bổ sung thêm đoạn code use database_name
ở phía trên cùng của file thì khi viết câu truy vấn sẽ không cần chỉ định rõ database. Xem ví dụ sau:
use BikeStores; go CREATE TABLE sales.visits ( visit_id INT PRIMARY KEY IDENTITY (1, 1), first_name VARCHAR (50) NOT NULL, last_name VARCHAR (50) NOT NULL, visited_at DATETIME, phone VARCHAR(20), store_id INT NOT NULL, FOREIGN KEY (store_id) REFERENCES sales.stores (store_id) );
Hoặc bạn nhìn lên khung database hiện tại nếu đang là database nào thì lúc chạy câu SQL sẽ áp dụng cho database đó.
Các ví dụ hơi khó nhỉ, nếu vậy thì cùng tìm hiểu chi tiết hơn ở phần 2 nhé.
2. Tìm hiểu các thuộc tính của column
Có lẽ thắc mắc lớn nhất của người mới học là những thông số cấu hình cho column sẽ có những gì, nếu vậy thì hãy xem phần giải thích dưới đây:
Cấu trúc của một column như sau: [column_name] [data_type] [options]. Trong đó:
column_name
là tên của column, phải là duy nhất trong bảng.data_type
là kiểu dữ liệu, mình sẽ liệt kê các kiểu dữ liệu thường dùng ở phần dưới.options
là những thông số bổ sung.
Bảng các options
Chúng ta có những options thường sử dụng sau:
- PRIMARY KEY - chỉ định khóa chính
- NULL - chỉ định cho phép để trống khi thêm, sửa.
- NOT NULL - chỉ định bắt buộc nhập khi thêm, sửa
- DEFAULT "value" - nếu lúc thêm dữ liệu bạn không xác định data cho column này thì nó sẽ lấy giá trị mặc định là value.
- UNIQUE - chỉ định dữ liệu của column này phải là duy nhất, tương tự như khóa chính.
- FOREIGN KEY REFERENCES table_name(column_name) - chỉ định là khóa ngoại và liên kết đến cột
column_name
của tabletable_name
.
Bảng các kiểu dữ liệu
Danh sách các kiểu dữ liệu thường dùng trong SQL Server.
- VARCHAR - kiểu chuỗi, dùng với dữ liệu tiếng Anh không dấu, phải chỉ định số ký tự tối đa.
- NVACHAR - kiểu chuỗi, dùng với dữ liệu tiếng Việt có dấu, phải chỉ định số ký tự tối đa.
- INT - kiểu số nguyên
- FLOAT - kiểu số thực
- DATETIME - kiểu ngày tháng - thời gian
Ví dụ: Tạo bảng SINHVIEN gồm các thông tin sau:
- MASINHVIEN - kiểu số nguyên, là khóa chính, không được để trống.
- TENSINHVIEN - kiểu chuỗi có dấu, tối đa 200 ký tự, không được để trống.
- MAKHOA - là kiểu số nguyên, khóa ngoại liên kết đến bảng KHOA.MAKHOA, không được để trống.
- NAMSINH - là kiểu số nguyên, có thể để trống, giá trị mặc định là 0.
Và đây là câu lệnh SQL cho bài này:
CREATE
TABLE
SINHVIEN(
MASINHVIEN
INT
NOT
NULL
PRIMARY
KEY
,
TENSINHVIEN NVARCHAR(200)
NOT
NULL
,
MAKHOA
INT
NOT
NULL
FOREIGN
KEY
REFERENCES
KHOA.MAKHOA,
NAMSINH
INT
NULL
DEFAULT
0
);
Như vậy là mình đã giới thiệu xong lệnh create trong SQL Server, hy vọng qua bài này bạn sẽ nắm vững đủ kiến thức cần thiết để vận dụng cho bài tiếp theo.