Các kiểu dữ liệu trong SQL Server

Các kiểu dữ liệu trong SQL Server

Để có thể sử dụng hiệu quả SQL Server trong phân tích dữ liệu hay trong các công việc khác, chúng ta cần phải hiểu
     1/ dữ liệu của chúng ta là gì ( số tiền giao dịch, id khác hàng,..)
     2/ kiểu dữ liệu của chúng là gì ( số nguyên/ thập phân, id có thể là số/ chữ/ số + chữ)
     3/ Chúng được thể hiện trong SQL Server dưới dạng nào?

Sau khi đã hiểu được các kiểu dữ liệu trong SQL Server, việc vận dụng – kết hợp các câu lệnh phân tích với nhau sẽ hạn chế việc xảy ra lỗi trong quá trình phân tích. Nhờ đó, chúng ta có thể tiết kiệm được nhiều thời gian hơn cho việc Debug.  

Và phần cuối sẽ hướng dẫn các bạn chuyển đổi các kiểu dữ liệu trong SQL Server thông qua các câu lệnh phổ biến.

1/ Các kiểu dữ liệu trong SQL Server thường gặp

Thông thường sẽ có 5 nhóm kiểu dữ liệu chính mà chúng ta hay gặp và hay sử dụng nhiều nhất. Vì vậy GNV sẽ giúp bạn hiểu rõ hơn về những kiểu dữ liệu chính trong SQL Server 

  • Kiểu dữ liệu chuỗi văn bản: Varchar(n) , Nvarchar(n)
  • Kiểu dữ liệu: Int, Float
  • Kiểu dữ ngày tháng: Date, Datetime
    – n: là số lượng ký tự trong chuỗi của bạn

Ví dụ cụ thể: 
Varchar(5): Độ dài ký tự đầu vào của bạn tối đa là 5 ký tự và ký tự này không có dấu. Nếu dữ liệu đầu vào của bạn là: ‘trắng’, ‘tranggg’, ‘tra ng’ đều sẽ bị lỗi vì có chứa ký tự Unicode (1) và độ dài của chuỗi hơn 5 ký tự (2, 3)

Nvarchar(5): Độ dài ký tự đầu vào của bạn tối đa là 5 ký tự và ký tự này có thể có hoặc không có dấu tùy vào dữ liệu đầu vào.

float: Dữ liệu đầu vào của bạn có thể là số nguyên (3) hoặc số thập phân (3.2), kết quả truy vấn sẽ trả ra như ký tự đã nhập vào ( 3.0 và 3.2). Tuy nhiên, nếu bạn nhập ký tự chữ thì sẽ bị lỗi.

int: Nếu bạn nhập vào ký tự số thập phân (2.435) thì kết quả trả ra sẽ là một số nguyên    ( 2 ), phần thập phân sẽ được cắt bỏ. Và nếu ký tự đầu vào là dạng chữ thì sẽ bị lỗi.

Tham khảo thêm: Một số kiểu dữ liệu khác

2/ Chuyển đổi các kiểu dữ liệu trong SQL Server

Giữa các kiểu dữ liệu chung nhóm với nhau. chúng ta vẫn có thể dùng các toán tử để kết hợp tạo thành chuỗi ký tự mới, nhưng đối với một ký dạng chữ kết hợp dạng số thì chúng ta cần phải chuyển đổi ký tự dạng số thành chữ ( không thể chuyển chữ thành số rồi kết hợp)

  • INTFLOAT có thể dùng các toán tử để tạo ra chuỗi ký tự mới
  • Với các ký tự trong chuỗi ký tự văn bảng, bạn chỉ có thể dùng dấu + để kết hợp thành chuỗi mới
  •  Với chuỗi ký tự trong văn bảng và ký tự kiểu dữ liệu ( số nguyên hoặc số thập phân), bạn phải chuyển đổi ký tự dạng số liệu thành ký tự văn bảng, sau đó mới có thể dùng toán tử + để kết hợp thành chuỗi ký tự mới
ví dụ kết hợp các kiểu dữ liệu trong SQL Server

Như vậy, để kết hợp một ký tự dạng văn bảng và ký tự dạng dữ liệu (dạng số) chúng ta cần phải chuyển đổi kiểu dữ liệu dạng số thành kiểu dữ liệu dạng văn bảng. Sau đây là một số câu lệnh sẽ giúp bạn chuyển đỏi kiểu dữ liệu dạng số thành dạng văn bảng.

2.1/ CAST và TRY_CAST

Cast giúp bạn chuyển đổi kiểu dữ liệu ban đầu thành kiểu dữ liệu mới, nếu kiểu dữ liệu mới tương đương với kiểu dữ liệu ban đầu.
Ví dụ:

    • Float – > Int và ngược lại
    • Varchar(n) -> Nvarchar(n) và ngược lại
    • Float, Int -> Varchar(n), Nvarchar(n) và không có chiều ngược lại
      Lưu ý về độ dài số ký tự khi chuyển đổi từ float, int sang varcahr và nvarchar
Giả sử, trong lúc chuyển đổi kiểu dữ liệu của một cột/trường trong bảng dữ liệu nhưng có giá trị bị lỗi do đánh máy nhầm số 0 và chữ o.
Nếu chúng ta sử dụng CAST để chuyển đổi thì SQL Server sẽ không thực hiện được và chúng ta phải tìm và sửa lại các lỗi đó.
Tuy nhiên, trường hợp cột có chửa giá trị lỗi nhưng chúng ta vẫn muốn lệnh tiếp tục được chạy và bỏ qua các lỗi thì chúng ta sẽ dùng hàm TRY_CAST. Các giá trị không bị lỗi sẽ được chuyển sang kiểu dữ liệu mới, dữ liệu bị lỗi sẽ ở dưới dạng NULL (như hình)
            SELECT TRY_CAST(Cot2 as int) as Vidu
            FROM test
2.2/ CONVERT and TRY_CONVERT

Hàm Convert và Try_Convert có tính năng và cách sử dụng tương tự như hàm Cast và Try_Cast. Các giá trị tương đương sẽ chuyển đổi lại qua lại với nhau và giá trị bị lỗi sẽ trả lại giá trị NULL.

Ngoài ra, Convert và Try_Convert có một đặc điểm hơn Cast và Try_Cast ở dạng giá trị được trả lại. Bạn có thể chọn được format cho giá trị được trả lại.

SELECT NGDK,
       CONVERT(varchar(20), NGDK) AS format_so_1,
       CONVERT(varchar(10), NGDK, 101AS format_so_2 
FROM KHACHHANG;
2.3/ STR

Hàm STR sẽ giúp bạn chuyển đổi ký tự dạng số sang ký tự dạng văn bảng.

Như vậy, ở bài này chúng ta đã học được các loại dữ liệu trong SQL Server thông dụng, cách sử dụng chúng và quan trọng hơn rất là cach kết hợp cac chuỗi này lại với nhau tùy theo mục đích của chúng ta.

Nội dung