:quality(75)/2023_11_29_638368492640606946_cac-kieu-du-lieu-trong-sql-1-1.jpg)
Tổng hợp các kiểu dữ liệu trong SQL đầy đủ, chi tiết, chuẩn xác cho người muốn tìm hiểu
Các kiểu dữ liệu trong SQL là một chủ đề “mới” được nhiều người dùng SQL Server tìm hiểu. Nền tảng nổi lên nhờ cuộc cách mạng công nghệ lần thứ tư trong thời đại hiện nay. Thế nhưng không phải ai cũng hiểu những kiểu dữ liệu được khai báo như thế nào? Đừng bỏ lỡ hàng loạt chia sẻ từ FPT Shop nếu bạn muốn khám phá về chủ đề này.
Giới thiệu sơ lược về công nghệ SQL Server
SQL Server là gì?
SQL Server là một hệ thống quản lý cơ sở dữ liệu quan hệ do Microsoft phát triển. Nền tảng cung cấp hàng loạt các tính năng quản lý dữ liệu để lưu trữ, truy xuất cơ sở dữ liệu. SQL Server hỗ trợ ngôn ngữ truy vấn SQL (Structured Query Language). Đây là bộ ngôn ngữ tiêu chuẩn được sử dụng để tương tác với cơ sở dữ liệu.

SQL Server có những tính năng nào?
Một số tính năng quan trọng của SQL Server bao gồm:
- Tính nhất quán: SQL Server đảm bảo tính nhất quán của dữ liệu thông qua giao thức ACID (Atomicity, Consistency, Isolation, Durability) để đảm bảo rằng các giao dịch cơ sở dữ liệu được thực hiện một cách an toàn và nhất quán.
- Bảo mật: SQL Server cung cấp các cơ chế bảo mật để bảo vệ dữ liệu khỏi truy cập trái phép và đảm bảo tính toàn vẹn của dữ liệu.
- Tối ưu hóa hiệu suất: SQL Server cung cấp các công cụ tối ưu hóa hiệu suất để đảm bảo việc truy xuất dữ liệu và thao tác cơ sở dữ liệu diễn ra một cách hiệu quả.
- Sao lưu và phục hồi: Hệ thống sao lưu và phục hồi dữ liệu của SQL Server giúp đảm bảo an toàn cho dữ liệu và khả năng phục hồi sau các sự cố.

Hệ thống SQL Server bao gồm các công cụ quản lý cơ sở dữ liệu như SQL Server Management Studio (SSMS) để thực hiện nhiệm vụ. Hệ thống được trang bị nhiều công cụ giúp lập trình viên và quản trị viên tối ưu hóa hiệu suất của cơ sở dữ liệu. Với các tính năng mạnh mẽ này chính là lý do SQL Server được sử dụng rộng rãi trong môi trường doanh nghiệp. Mục đích nhằm hỗ trợ người dùng quản lý cơ sở dữ liệu quan trọng và đảm bảo tính an toàn của dữ liệu.
Tìm hiểu quy trình sử dụng Data Type
Để sử dụng kiểu dữ liệu trong SQL Server, trước hết, bạn cần xác định kiểu dữ liệu cho từng cột trong bảng để đảm bảo nó có khả năng lưu trữ kiểu dữ liệu mong muốn. Bằng cách xác định đúng kiểu dữ liệu mà công nghệ không chỉ ngăn chặn được sự nhập thông tin không hợp lệ mà còn tối ưu hóa việc sử dụng bộ nhớ.

Khi bạn gán kiểu dữ liệu phù hợp cho cột, hệ thống sẽ phân bổ bộ nhớ một cách hiệu quả tùy thuộc vào loại dữ liệu và giá trị được lưu trữ. Để xác định kiểu dữ liệu trong SQL Server, bạn có thể sử dụng những thông tin sau:
- Kiểu dữ liệu (fixed-length or variable-length): Xác định xem kiểu dữ liệu đại diện cho chuỗi dữ liệu có độ dài cố định (fixed-length) hay biến thiên (variable-length).
- Dung lượng lưu trữ: Xác định dung lượng bộ nhớ được sử dụng cho dữ liệu, có thể cố định hoặc biến thiên tùy thuộc vào giá trị.
- Kiểu dữ liệu có thể được chỉ mục hay không: Xác định xem kiểu dữ liệu có thể được chỉ mục (index) hay không, điều này có thể ảnh hưởng đến hiệu suất truy vấn dữ liệu.
- Triển khai so sánh giá trị: SQL Server triển khai cách so sánh giá trị của mỗi kiểu dữ liệu cụ thể theo một cách đặc biệt.
- Một số kiểu dữ liệu phổ biến trong SQL Server bao gồm chuỗi (string), số (numeric), ngày và thời gian (date and time).
Phân tích các kiểu dữ liệu trong SQL Server
Kiểu dữ liệu chuỗi các ký tự
Cú pháp kiểu dữ liệu | Kích thước tối đa | Giải thích |
CHAR(kich_thuoc) | Tối đa 8000 kí tự. |
|
VARCHAR(kich_thuoc) hoặc VARCHAR(toi_da) | Tối đa 8000 kí tự hoặc theo số tối đa. |
|
TEXT | Tối đa 2GB. |
|
NCHAR(kich_thuoc) | Tối đa 4000 kí tự. |
|
NVARCHAR(kich_thuoc) hoặc NVARCHAR(toi_da) | Tối đa 4000 kí tự hoặc theo số tối đa. |
|
NTEXT | Tối đa 1.073.741.823 byte. |
|
BINARY(kich_thuoc) | Tối đa 8000 kí tự. |
|
VARBINARY(kich_thuoc) hoặc VARBINARY(toi_da) | Tối đa 8000 kí tự hoặc theo số tối đa. |
|
IMAGE | kích thước tối đa là 2GB. |
|
Kiểu dữ liệu dạng số
Cú pháp kiểu dữ liệu | Kích thước tối đa | Giải thích | |
BIT | số nguyên 0, 1 hoặc NULL | ||
TINYINT | từ 0 đến 255 | ||
SMALLINT | từ -32768 đến 32767 | ||
INT | -2,147,483,648 đến 2,147,483,647 | ||
BIGINT | từ -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807 | ||
DECIMAL(m,d) |
| m là tổng số lượng các số còn d là số lượng các số nằm sau dấu phẩy. | |
DEC(m,d) |
| m là tổng số lượng các số còn d là số lượng các số nằm sau dấu phẩy. Đồng nghĩa với kiểu dữ liệu DECIMAL. | |
NUMERIC(m,d) |
| m là tổng số lượng các số còn d là số lượng các số nằm sau dấu phẩy. Đồng nghĩa với kiểu dữ liệu DECIMAL. | |
FLOAT(n) | số dấu phẩy động n mặc định là 53 nếu không được chỉ định cụ thể. | n là số lượng của số bit lưu trữ trong một kí hiệu hóa học. | |
REAL | tương đương với FLOAT(24) | ||
SMALLMONEY | từ - 214,748.3648 đến 214,748.3647 | ||
MONEY | từ -922,337,203,685,477.5808 đến 922,337,203,685,477.5807 | ||
Kiểu dữ liệu ngày tháng/ thời gian
| Cú pháp kiểu dữ liệu | Kích thước tối đa | Giải thích |
| DATE | giá trị từ '0001-01-01' đến '9999-12-31. | hiển thị dưới dạng ‘YYYY-MM-DD’ |
| DATETIME |
| hiển thị dưới dạng ‘YYYY-MM-DD hh:mm:ss[.mmm] |
| DATETIME2(chính xác tới số thập phân của giây) |
| hiển thị dưới dạng 'YYYY-MM-DD hh:mm:ss[.số giây thập phân]' |
| SMALLDATETIME |
| hiển thị dưới dạng 'YYYY-MM-DD hh:mm:ss |
| TIME |
| hiển thị dưới dạng 'YYYY-MM-DD hh:mm:ss[.nnnnnnn]' |
| DATETIMEOFFSET (chính xác tới số thập phân của giây) |
| hiển thị dưới dạng YYYY-MM-DD hh:mm:ss[.nnnnnnn]' [{+|-}hh:mm] |
Các kiểu dữ liệu khác trong SQL Server
Kiểu dữ liệu | Mô tả |
sql_variant | Chứa tới 8,000 byte dữ liệu của các kiểu khác nhau, ngoại trừ text, ntext, và timestamp |
uniqueidentifier | Lưu trữ một mã định danh duy nhất trên toàn cục (GUID) |
xml | Lưu trữ dữ liệu định dạng XML. Tối đa 2GB |
cursor | Lưu trữ một tham chiếu tới con trỏ được dùng cho các hoạt động database |
table | Lưu trữ một bộ kết quả để xử lý sau |
Xem thêm: Kolotibablo Bot: Công cụ đọc văn bản và thu thập dữ liệu
Lưu ý về các kiểu dữ liệu trong SQL Server
Decimal và Numeric
Trong SQL Server, DECIMAL và NUMERIC đều là kiểu dữ liệu dùng để lưu trữ các số thực có phần thập phân cố định. Chúng được sử dụng để đảm bảo tính chính xác cao khi lưu trữ giá trị tiền tệ, tỷ lệ phần trăm hay các số liệu tài chính khác.

Cả hai kiểu dữ liệu này đều yêu cầu người dùng phải xác định độ chính xác trong việc lưu trữ số thập phân. Trong đó, DECIMAL được sử dụng để lưu trữ giá trị Decimal cố định, NUMERIC cũng có chức năng tương tự.
Ví dụ minh họa
Khi bạn khai báo một cột với kiểu dữ liệu DECIMAL(10, 2) có nghĩa là cột đó lưu trữ số có tổng cộng 10 chữ số (bao gồm cả phần nguyên và phần thập phân) và 2 chữ số sau dấu thập phân. Điều này giúp chúng ta xác định độ chính xác cụ thể khi lưu trữ số liệu tài chính hoặc các giá trị có phần thập phân quan trọng.
Float and Real
Trong SQL Server, kiểu dữ liệu FLOAT và REAL đều được sử dụng để lưu trữ các số thực (floating point numbers) với phần nguyên và phần thập phân.

Cụ thể:
- Kiểu dữ liệu FLOAT được sử dụng để lưu trữ số thực với độ chính xác cao, có thể lưu trữ các giá trị lớn nhỏ và phạm vi rộng.
- Kiểu dữ liệu REAL cũng được sử dụng để lưu trữ số thực, nhưng với một mức độ chính xác thấp hơn so với kiểu dữ liệu FLOAT.
- Người dùng có thể chọn kiểu dữ liệu phù hợp dựa trên yêu cầu về mức độ chính xác và phạm vi của giá trị số thực mà họ muốn lưu trữ trong cơ sở dữ liệu.
Kiểu dữ liệu Money
Trong SQL Server, kiểu dữ liệu MONEY được sử dụng để lưu trữ các giá trị tiền tệ có đơn vị tiền tệ của cơ sở dữ liệu. Kiểu dữ liệu này được thiết kế để lưu trữ các giá trị tiền tệ với một phạm vi cụ thể và chính xác đối với các tính toán liên quan đến tiền tệ.

Một điều quan trọng mà bạn cần lưu ý khi sử dụng kiểu dữ liệu MONEY chính là công nghệ lưu trữ giá trị tiền tệ dựa trên đơn vị tiền tệ của cơ sở dữ liệu, tức là nó sẽ lưu trữ theo đơn vị tiền tệ mặc định của hệ thống. Điều này dẫn đến nguy cơ lưu trữ không chính xác nếu đơn vị tiền tệ không được xác định cụ thể.
Tuy nhiên, kiểu dữ liệu MONEY cung cấp lợi ích về độ chính xác và tiện lợi trong các tính toán liên quan đến tiền tệ, ví dụ như tính toán tổng các số tiền, hay tính toán các khoản lãi suất. Khi sử dụng kiểu dữ liệu MONEY, nên đảm bảo rằng đơn vị tiền tệ được sử dụng là chính xác và được quản lý một cách cẩn thận.
Kiểu dữ liệu Date
Trong SQL, kiểu dữ liệu DATE được sử dụng để lưu trữ ngày tháng trong định dạng yyyy-mm-dd (năm-tháng-ngày). Kiểu dữ liệu này cho phép lưu trữ ngày tháng mà không có thông tin về thời gian hoặc múi giờ.

Khi bạn sử dụng kiểu dữ liệu DATE trong SQL, bạn có thể thực hiện các thao tác như so sánh các ngày tháng, tính toán khoảng cách thời gian, và tạo các điều kiện tra cứu dựa trên ngày tháng. Kiểu dữ liệu DATE trong SQL rất hữu ích khi bạn cần lưu trữ và xử lý thông tin ngày tháng mà không cần quan tâm đến thời gian cụ thể.
Kiểu dữ liệu hình ảnh
Kiểu dữ liệu hình ảnh thường được sử dụng để lưu trữ dữ liệu hình ảnh, âm thanh, video hoặc các loại dữ liệu nhị phân khác. Trong Microsoft SQL Server có hai kiểu dữ liệu phổ biến để lưu trữ dữ liệu nhị phân là IMAGE và VARBINARY(MAX).

Kiểu dữ liệu IMAGE được sử dụng để lưu trữ dữ liệu nhị phân có kích thước cố định. Tuy nhiên, từ phiên bản SQL Server 2005 trở đi, Microsoft khuyến nghị sử dụng kiểu dữ liệu VARBINARY(MAX) thay vì IMAGE bởi vì VARBINARY(MAX) hỗ trợ lưu trữ dữ liệu nhị phân độ dài tùy ý.
Khi truy vấn dữ liệu hình ảnh từ cơ sở dữ liệu, bạn có thể sử dụng các phương thức tương ứng của ngôn ngữ lập trình hoặc framework để hiển thị hoặc xử lý hình ảnh.
Tạm kết
Trên đây cập nhật những kiến thức được FPT Shop đưa ra để bạn tìm hiểu các kiểu dữ liệu trong SQL. Bên cạnh đó, bạn có thể cập nhật các phương pháp khai báo hiệu quả trên thiết bị của mình.
Xem thêm:
- Gzip là gì? Bí quyết ứng dụng Gzip nâng cao tốc đổi tải web cực hiệu quả
- Mã hóa đầu cuối là gì? Cập nhật cách thức mã hóa trực tiếp, đơn giản và hiệu quả
Tại FPT Shop cung cấp nhiều dòng điện thoại đời mới dành cho những khách hàng “sành công nghệ”. Nếu bạn đang săn tìm những chiếc smartphone chất lượng, giá tốt thì hãy mua hàng tại đây.
:quality(75)/estore-v2/img/fptshop-logo.png)