Trong hướng dẫn này, bạn sẽ tìm hiểu về GUID trong SQL Server và cách sử dụng hàm NEWID()
để tạo giá trị GUID.
Tất cả mọi thứ trong thế giới của chúng ta đều được đánh số, ví dụ sách có ISBN, ô tô có VIN và mọi người có số an sinh xã hội (SSN).
Các con số hoặc mã định danh giúp chúng ta tham chiếu mọi thứ một cách rõ ràng. Ví dụ: chúng ta có thể xác định John Doe
bằng cách sử dụng số an sinh xã hội duy nhất của anh ấy 123-45-6789
.
Số nhận dạng duy nhất trên toàn cầu hoặc GUID là phiên bản rộng hơn của loại số ID này.
GUID được đảm bảo là duy nhất trên các bảng, cơ sở dữ liệu và thậm chí cả máy chủ.
Trong SQL Server, GUID là kiểu dữ liệu nhị phân 16 byte, được tạo bằng cách sử dụng hàm NEWID()
:
SELECT NEWID() AS GUID;
Nếu bạn thực hiện câu lệnh trên nhiều lần, bạn sẽ thấy giá trị khác nhau mỗi lần. Đây là một trong số chúng:
GUID
------------------------------------
3297F0F2-35D3-4231-919D-1CFCF4035975
(1 row affected)
Trong SQL Server, kiểu dữ liệu UNIQUEIDENTIFIER
chứa các giá trị GUID.
Các câu lệnh sau khai báo một biến có kiểu UNIQUEIDENTIFIER
và gán cho nó một giá trị GUID do hàm NEWID()
tạo ra.
DECLARE @id UNIQUEIDENTIFIER;
SET @id = NEWID();
SELECT @id AS GUID;
Đây là kết quả:
GUID
------------------------------------
69AA3BA5-D51E-465E-8447-ECAA1939739A
(1 row affected)
Đôi khi, bạn thích sử dụng các giá trị GUID cho cột khóa chính của bảng hơn là sử dụng số nguyên.
Sử dụng GUID làm khóa chính của bảng mang lại những lợi ích sau:
https://www.example.com/customer/100/
, không quá khó để tìm ra rằng sẽ có những khách hàng có id 101, 102, v.v. Tuy nhiên với GUID, việc này gần như là không thể: https://www.example.com/customer/F4AB02B7-9D55-483D-9081-CC4E3851E851/
Bên cạnh những ưu điểm này, việc lưu trữ GUID trong cột khóa chính của bảng có những nhược điểm sau:
INT
(4 byte) hoặc thậm chí BIGINT
(8 byte)WHERE id = 100
với WHERE id = 'F4AB02B7-9D55-483D-9081-CC4E3851E851'
.Đầu tiên, tạo một bảng mới có tên customers
trong lược đồ marketing
:
CREATE SCHEMA marketing;
GO
CREATE TABLE marketing.customers(
customer_id UNIQUEIDENTIFIER DEFAULT NEWID(),
first_name NVARCHAR(100) NOT NULL,
last_name NVARCHAR(100) NOT NULL,
email VARCHAR(200) NOT NULL
);
GO
Thứ hai, chèn các hàng mới vào bảng marketing.customers
:
INSERT INTO
marketing.customers(first_name, last_name, email)
VALUES
('John','Doe','john.doe@example.com'),
('Jane','Doe','jane.doe@example.com');
Thứ ba, truy vấn dữ liệu từ bảng marketing.customers
:
SELECT
customer_id,
first_name,
last_name,
email
FROM
marketing.customers;
Đây là kết quả:
Trong hướng dẫn này, bạn đã tìm hiểu về GUID trong SQL Server và cách sử dụng hàm NEWID()
để tạo giá trị GUID.
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATETIMEOFFSET trong SQL Server để thao tác datetime với múi giờ.
Trong hướng dẫn này, bạn sẽ học cách lưu trữ thời gian trong ngày trong cơ sở dữ liệu bằng cách sử dụng kiểu dữ liệu TIME trong SQL Server.
Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATE trong SQL Server để lưu trữ dữ liệu ngày tháng trong một bảng.
Trong hướng dẫn này, bạn sẽ học cách sử dụng DATETIME2 trong SQL Server để lưu trữ cả dữ liệu ngày và giờ trong một bảng.