Lệnh Create Table trong SQL Server

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_1column_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 table table_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.

Khóa học nên xem

Nguồn: freetuts.net