Datatype là gì?
Kiểu dữ liệu được định nghĩa là kiểu dữ liệu mà bất kỳ cột hoặc biến nào có thể lưu trữ trong MS SQL Server.
Trong khi tạo bất kỳ bảng hoặc biến nào, ngoài việc chỉ định tên, bạn cũng đặt Loại dữ liệu mà nó sẽ lưu trữ.
Cách sử dụng kiểu dữ liệu MS SQL
- Bạn cần xác định trước loại dữ liệu mà một cột hoặc một biến có thể lưu trữ. Việc xác định kiểu dữ liệu cũng hạn chế người dùng nhập bất kỳ dữ liệu không mong muốn hoặc không hợp lệ.
- Bạn có thể sử dụng hiệu quả bộ nhớ bằng cách gán một kiểu dữ liệu thích hợp cho biến hoặc cột sẽ chỉ cấp phát lượng bộ nhớ hệ thống cần thiết cho dữ liệu của cột tương ứng.
- MS SQL cung cấp nhiều loại kiểu dữ liệu theo nhu cầu của người dùng. Như Ngày tháng, hình ảnh nhị phân, v.v.
Trong hướng dẫn này, bạn sẽ học:
- Datatype là gì?
- Cách sử dụng kiểu dữ liệu MS SQL
- Tại sao sử dụng DataTypes?
- Số chính xác
- Số gần đúng
- Ngày và giờ
- Chuỗi ký tự
- Chuỗi ký tự Unicode
- Chuỗi nhị phân
- Các kiểu dữ liệu khác
Tại sao sử dụng DataTypes?
Hãy lấy một ví dụ về trang Đăng ký đơn giản của ứng dụng trang web. Ba trường nhập là Tên, Họ & Số liên lạc.
Ở đây, chúng ta cần lưu ý rằng trong thời gian thực:
- "Họ / Tên" sẽ luôn được xếp theo thứ tự bảng chữ cái .
- "Liên hệ" sẽ luôn ở dạng số .
- Từ hình trên, bạn nên xác định "Họ / Tên" là một ký tự và " Liên hệ" là một số nguyên .
Rõ ràng là trong bất kỳ ứng dụng nào, tất cả các trường đều có một hoặc loại dữ liệu khác. Ví dụ: số, chữ cái, ngày tháng và nhiều thứ khác.
Ngoài ra, lưu ý rằng các kiểu dữ liệu khác nhau có yêu cầu bộ nhớ khác nhau. Do đó, sẽ có ý nghĩa hơn khi xác định cột hoặc biến với kiểu dữ liệu mà nó sẽ giữ để sử dụng bộ nhớ hiệu quả.
Kiểu dữ liệu có sẵn trong MS SQL
Máy chủ MS SQL hỗ trợ các danh mục sau của Kiểu dữ liệu:
- Số chính xác
- Số gần đúng
- Ngày và giờ
- Chuỗi ký tự
- Chuỗi ký tự Unicode
- Chuỗi nhị phân
- Các kiểu dữ liệu khác

Số chính xác
Số chính xác có chín loại kiểu dữ liệu con. Các kiểu dữ liệu số chính xác
Loại dữ liệu | Sự miêu tả | Giơi hạn dươi | Giới hạn trên | Ký ức |
---|---|---|---|---|
bigint | Nó lưu trữ các số nguyên trong phạm vi đã cho | −2 63 (−9,223,372, 036,854,775,808) | 2 63−1 (−9,223,372, 036,854,775,807) | 8 byte |
int | Nó lưu trữ các số nguyên trong phạm vi đã cho | −2 31 (−2,147, 483,648) | 2 31−1 (−2,147, 483,647) | 4 byte |
lửa nhỏ | Nó lưu trữ các số nguyên trong phạm vi đã cho | −2 15 (−32,767) | 2 15 (−32,768) | 2 byte |
tí hon | Nó lưu trữ các số nguyên trong phạm vi đã cho | 0 | 255 | 1 byte |
bit | Nó có thể nhận giá trị 0, 1 hoặc NULL. | 0 | 1 | Cột 1 byte / 8 bit |
thập phân | Được sử dụng cho quy mô và số chính xác cố định | −10 38 + 1 | 10 381−1 | 5 đến 17 byte |
số | Được sử dụng cho quy mô và số chính xác cố định | −10 38 + 1 | 10 381−1 | 5 đến 17 byte |
tiền bạc | Dữ liệu tiền tệ đã sử dụng | −922,337, 203, 685,477,5808 | +922.337, 203, 685.477.5807 | 8 byte |
tiền nhỏ | Dữ liệu tiền tệ đã sử dụng | −214.478,3648 | +214.478.3647 | 4 byte |
Ví dụ:
Truy vấn:
DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int
Đầu ra: 2
Cú pháp: Decimal (P, S)
Đây,
- P là độ chính xác
- S là quy mô
Truy vấn:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal
Đầu ra: 2,31
Số gần đúng
Danh mục Số gần đúng bao gồm dấu phẩy động và các giá trị thực. Chúng chủ yếu được sử dụng trong các tính toán khoa học. Kiểu dữ liệu số gần đúng
Loại dữ liệu | Sự miêu tả | Giơi hạn dươi | Giới hạn trên | Ký ức | Độ chính xác |
---|---|---|---|---|---|
float (n) | Được sử dụng cho một số chính xác động | −1,79E + 308 | 1,79E + 308 | Phụ thuộc vào giá trị của n | 7 chữ số |
thực tế | Được sử dụng cho một số chính xác động | −3.40E + 38 | 3,40E + 38 | 4 byte | 15 chữ số |
Syntax: FLOAT [(n)]
Ở đây, n là số bit được sử dụng để lưu trữ các mantissa của phao số trong ký hiệu khoa học. Theo mặc định, giá trị của n là 53.
Khi người dùng xác định kiểu dữ liệu như float, n phải là giá trị từ 1 đến 53.
SQL Server coi n là một trong hai giá trị có thể. Nếu 1 <= n <= 24, n được coi là 24. Nếu 25 <= n <= 53, n được coi là 53.
Truy vấn mẫu:
DECLARE @Datatype_Float FLOAT(24) = 22.1234PRINT @Datatype_Float
Đầu ra: 22.1234
Ngày và giờ
Nó lưu trữ dữ liệu kiểu Ngày và giờ. Loại dữ liệu ngày và giờ
Loại dữ liệu | Sự miêu tả | Kích thước lưu trữ | Sự chính xác | Cấp thấp hơn | Dãy trên |
---|---|---|---|---|---|
Ngày giờ | Được sử dụng để chỉ định ngày và giờ từ ngày 1 tháng 1 năm 1753 đến ngày 31 tháng 12 năm 9999. Nó có độ chính xác là 3,33 mili giây. | 8 byte | Được làm tròn đến gia số .000, .003, .007 | 1753-01-01 | 9999-12-31 |
smalldatetime | Được sử dụng để chỉ định ngày và giờ từ ngày 1 tháng 1 năm 0001 đến ngày 31 tháng 12 năm 9999. Nó có độ chính xác 100 nano giây | 4 byte, cố định | 1 phút | 1900-01-01 | 2079-06-06 |
ngày | Chỉ dùng để lưu trữ ngày từ ngày 1 tháng 1 năm 0001 đến ngày 31 tháng 12 năm 9999 | 3 byte, cố định | 1 ngày | 0001-01-01 | 9999-12-31 |
thời gian | Được sử dụng để lưu trữ các giá trị chỉ thời gian với độ chính xác 100 nano giây. | 5 byte | 100 nano giây | 00: 00: 00.0000000 | 23: 59: 59.9999999 |
datetimeoffset | Tương tự như datatime nhưng có chênh lệch múi giờ | 10 byte | 100 nano giây | 0001-01-01 | 9999-12-31 |
datetime2 | Được sử dụng để chỉ định ngày và giờ từ ngày 1 tháng 1 năm 0001 đến ngày 31 tháng 12 năm 9999 | 6 byte | 100 nano giây | 0001-01-01 | 9999-12-31 |
Truy vấn mẫu:
DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date
Đầu ra: '2030-01-01'
Chuỗi ký tự
Danh mục này có liên quan đến một loại ký tự. Nó cho phép người dùng xác định kiểu dữ liệu của ký tự có thể có độ dài cố định và thay đổi. Nó có bốn loại kiểu dữ liệu. Kiểu dữ liệu chuỗi ký tự
Loại dữ liệu | Sự miêu tả | Giơi hạn dươi | Giới hạn trên | Ký ức |
---|---|---|---|---|
char | Nó là một chuỗi ký tự có chiều rộng cố định. Nó lưu trữ tối đa 8.000 ký tự. | 0 ký tự | 8000 ký tự | n byte |
varchar | Đây là một chuỗi ký tự có chiều rộng thay đổi | 0 ký tự | 8000 ký tự | n byte + 2 byte |
varchar (tối đa) | Đây là một chuỗi ký tự có độ rộng thay đổi. Nó lưu trữ tối đa 1.073.741.824 ký tự. | 0 ký tự | 2 31 ký tự | n byte + 2 byte |
bản văn | Đây là một chuỗi ký tự có độ rộng thay đổi. Nó lưu trữ tối đa 2GB dữ liệu văn bản. | 0 ký tự | 2.147.483.647 ký tự | n byte + 4 byte |
Truy vấn mẫu:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char
Đầu ra: Đây là Kiểu dữ liệu ký tự
Chuỗi ký tự Unicode
Danh mục này lưu trữ đầy đủ các ký tự Unicode sử dụng mã hóa ký tự UTF-16. Các kiểu dữ liệu chuỗi ký tự Unicode
Loại dữ liệu | Sự miêu tả | Giơi hạn dươi | Giới hạn trên | Ký ức |
---|---|---|---|---|
nchar | Nó là một chuỗi Unicode có chiều rộng cố định | 0 ký tự | 4000 ký tự | 2 lần n byte |
nvarchar | Nó là một chuỗi unicode có chiều rộng thay đổi | 0 ký tự | 4000 ký tự | 2 lần n byte + 2 byte |
ntext | Nó là một chuỗi unicode có chiều rộng thay đổi | 0 ký tự | 1,073,741,823 ký tự | 2 lần độ dài chuỗi |
Truy vấn mẫu:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar
Đầu ra: Đây là nCharacter Datatype
Chuỗi nhị phân
Danh mục này chứa một chuỗi nhị phân có độ dài cố định và thay đổi. Kiểu dữ liệu chuỗi nhị phân
Loại dữ liệu | Sự miêu tả | Giơi hạn dươi | Giới hạn trên | Ký ức |
---|---|---|---|---|
nhị phân | Nó là một chuỗi nhị phân có chiều rộng cố định. Nó lưu trữ tối đa 8.000 byte. | 0 byte | 8000 byte | n byte |
varbinary | Đây là một chuỗi nhị phân có độ rộng thay đổi. Nó lưu trữ tối đa 8.000 byte | 0 byte | 8000 byte | Độ dài thực tế của dữ liệu đã nhập + 2 byte |
hình ảnh | Đây là một chuỗi nhị phân có độ rộng thay đổi. Nó lưu trữ tối đa 2GB. | 0 byte | 2.147.483.647 byte |
Truy vấn mẫu:
DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary
Đầu ra: 0x000C
Các kiểu dữ liệu khác
Đây là các kiểu dữ liệu khác nhau với mô tả bên dưới-
Loại dữ liệu | Sự miêu tả |
---|---|
con trỏ | Đầu ra của nó là một cột gồm sp_cursor_list và sp_describe_cursor. Nó trả về tên của biến con trỏ. |
Phiên bản hàng | Nó phiên bản tem hàng bảng. |
Hierarchyid | Kiểu dữ liệu này đại diện cho một vị trí trong hệ thống phân cấp |
Định danh duy nhất | Chuyển đổi từ một biểu thức ký tự. |
Sql_variant | Nó lưu trữ các giá trị của kiểu dữ liệu được hỗ trợ máy chủ SQL. |
XML | Nó lưu trữ dữ liệu XML trong một cột. |
Kiểu hình học không gian | Nó biểu diễn dữ liệu trong một hệ tọa độ phẳng. |
Loại địa lý không gian | Nó đại diện cho dữ liệu trong hệ tọa độ trái đất tròn. |
bàn | Nó lưu trữ một tập hợp kết quả để xử lý sau này. |
Sự thật thú vị!
- Kiểu dữ liệu CHAR nhanh hơn VARCHAR trong khi truy xuất dữ liệu.
Tóm lược:
- Mỗi cột trong bảng xác định với kiểu dữ liệu của nó trong quá trình tạo bảng.
- Có sáu danh mục chính và một danh mục linh tinh khác. Các mục khác có sẵn chín danh mục phụ của các kiểu dữ liệu.