Kiểu dữ liệu SQL Server: Varchar, Numeric, Date Time (Ví dụ T-SQL)

Mục lục:

Anonim

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ự " 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
Kiểu dữ liệu MSQL

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_listsp_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.