Số ký tự trong một trường dữ liệu là gì

Trong bài lần trước, chúng ta đã tìm hiểu CÁCH KHỞI TẠO XÓA SỬA TABLE TRONG SQL và một số lưu ý liên quan trong quá trình sử dụng SQL MANAGEMENT STUDIO. Nếu bạn còn nhớ trong cú pháp của tạo bảng còn có phần kiểu dữ liệu chưa được Kteam giới thiệu.

Vậy Kiểu dữ liệu là gì? Trong bài này, chúng ta sẽ cùng nhau tìm hiểu về KIỂU DỮ LIỆU TRONG SQL nhé!

Nội dung chính

Để theo dõi tốt nhất bài này, bạn nên xem qua bài:

  • Khởi tạo DATABASE trong SQL.
  • Khởi tạo, xóa, sửa TABLE trong SQL.

Trong bài này, Kteam sẽ cùng bạn tìm hiểu một số vấn đề sau:

  • Kiểu dữ liệu trong SQL.
  • Danh sách các kiểu dữ liệu.
  • Một số điều cần lưu ý.

Kiểu dữ liệu trong SQL

Kiểu dữ liệu là gì?

KIỂU DỮ LIỆU – DATA TYPE là một quy trình về cấu trúc, miền giá trị của dữ liệu có thể nhập vào và tập các phép toán / toán tử có thể tác động lên miền giá trị đó.

Như một số khóa học C++ CĂN BẢN, C# CĂN BẢN tại Howkteam.com đã đề cập rất kỹ đến định nghĩa chi tiết của Kiểu dữ liệu. Bạn dễ dàng nhận thấy được mỗi ngôn ngữ chỉ chấp nhận và xử lý những dữ liệu tuân theo sự quy định của ngôn ngữ lập trình đó. Trong lập trình, một sữ liệu luôn thuộc về một kiểu dữ liệu nhất định.

Tương tự vậy, kiểu dữ liệu trong SQL là:

  • Dạng dữ liệu chỉ định mà mỗi Column [Trường thuộc tính] có thể lưu trữ để thể hiện dữ liệu thuộc tính của nó.
  • Quyết định kích thước mà dữ liệu trong Column đó sử dụng trong vùng nhớ.
  • Dựa trên cơ sở các Kiểu dữ liệu do chuẩn ANSI/ISOcung cấp.
  • Trong đó, 16/143 kiểu được sử dụng thông dụng trong các Hệ quản trị cơ sở dữ liệu thương mại hiện nay.

Tại sao phải dùng các kiểu dữ liệu riêng?

Tại sao không thể dùng chung một kiểu dữ liệu cho tất cả các Column [Trường thuộc tính] trong một Table hoặc một Database?

Nếu việc lưu trữ các dữ liệu cùng một kiểu, bạn không thể phân loại đâu là ngày tháng, đâu là chuỗi, đâu là số…. Vì vậy việc thực hiện các toán tử, tìm kiếm cũng trở nên rất khó khăn trong quá trình truy vấn dữ liệu.

Mặt khác, đặt ra một bài toán thực tế: Khi bạn thiết kế một CSDL thương mại, việc cài đặt Database lưu trữ rất quan trọng. Ta có một ví dụ nhỏ như sau, giả sử:

  • Trong một Table, cứ 1 record [bản ghi] tương ứng 1 byte bộ nhớ.
  • Một ngày bạn lưu 1.000.000 records sẽ chiếm 1.000.000 byte.
  • Nếu lưu một năm sẽ là 365.000.000 byte.

Vậy nếu lưu trữ thừa 1byte/ ngày, bạn sẽ gây ra thất thoát dung lượng đến 365.000.000 byte /năm. Ngược lại, việc thiếu dung lượng gây ra trì trệ hệ thống như lỗi thiếu bộ nhớ, không đủ dung lượng lưu trữ. Đó chỉ là một bài toán minh họa nhỏ, còn thực tế thường gấp nhiều lần như vậy.

Ngày nay, dung lượng máy tính thường khá lớn, việc thất thoát dung lượng lưu trữ nên trên có thể tạm chấp nhận. Nhưng còn đối với lập trình di động thì sao? Theo xu hướng sử dụng thiết bị hiện đại, bạn thấy rõ rằng việc tiết kiệm dung lượng là rất quan trọng. Các thiết bị nhỏ không thể lưu trữ dung lượng quá lớn, vì vậy nếu xảy ra thất thoát dữ liệu sẽ gây trì trệ ảnh hưởng đến hệ thống thiết bị.

Vì vậy, cần thiết để xác định KIỂU DỮ LIỆU THÍCH HỢP cho từng thuộc tính dữ liệu để đảm bảo tối ưu bộ nhớ trong quá trình sử dụng.

Danh sách các kiểu dữ liệu

Trong phần này, Kteam sẽ giới thiệu đến các bạn một số kiểu dữ liệu thông dụng. Bạn có thể xem chi tiết hơn trong Tài liệu đầy đủ từ Tutorielspoint.com

Theo chuẩn ANSI/ISO SQL, các kiểu dữ liệu trong SQL được quy định và phân loại thành các nhóm chính như sau:

Một số điều cần lưu ý

Cấp phát động và cấp phát tĩnh

Ở kiểu dữ liệu char[n], varchar[n] ta có thể thấy sự khác biệt giữa hai kiểu dữ liệu này là khả năng cấp phát bộ nhớ. Vậy chúng khác nhau như thế nào?

Ví dụ sau sẽ giúp bạn dễ hiểu hơn khái niệm này

USE SQLDBUI GO CREATE TABLE TEST [ --Cấp phát bộ nhớ tĩnh cho column MASV             MASV CHAR[10], --Cấp phát bộ nhớ động cho column MALop             MALop VARCHAR[50] ]

Với đoạn code trên, khi bạn nhập dữ liệu “Kteam” cho 2 Column trên

  • Ở column MASV sẽ CẤP PHÁT TĨNH và luôn lưu trữ trên 10 ô nhớ trong bộ nhớ, với 5 ký tự nhập vào và 5 ký tự rỗng.
  • Ở column MALop sẽ CẤP PHÁT ĐỘNG theo số ký tự nhập vào. Ở đây, sẽ là 5 ký tự tương ứng “Kteam” không có ký tự rỗng theo sau.

Việc sử dụng varchar[n] giúp việc lưu trữ trở nên linh hoạt hơn và tiết kiệm bộ nhớ hơn. Tuy nhiên trong thực tế, có lúc bạn cần đảm bảo số lượng ký tự lưu trữ có độ dài giống nhau, chính xác ở mọi dữ liệu trong một trường thược tính, vì vậy cần thiết sử dụng char[n] trong trường hợp này.

Chương trình minh họa

Để hiểu hơn về cách sử dụng Kiểu dữ liệu, bạn có thể tham khảo chương trình đơn giản sau:

Khởi tạo Database Quản lý bán hàng CREATE DATABASE QUANLYBANHANG GO Sử dụng Database Quản lý bán hàng USE QUANLYBANHANG GO Tạo Table Khách CREATE TABLE KHACH [ MAKH CHAR[5], TENKH NVARCHAR[30], GIOITINH BIT, DIACHI NTEXT, DTHOAI CHAR[11] ] GO Tạo Table Hàng hóa CREATE TABLE HANG_HOA [ MAHH VARCHAR[5], TENHH NTEXT, DVTINH NVARCHAR[10], DONGIA MONEY ] GO -- Tạo Table Hóa đơn CREATE TABLE HOADON [ SOHD CHAR[5], MAKH CHAR[5], NGAYBAN DATETIME ] GO

Thử tự viết chương trình cơ bản của bạn, tìm kiểu dữ liệu thích hợp cho từng trường thuộc tính và tự tìm hiểu một số câu hỏi trong phần cuối Video hướng dẫn nhé!

Comment câu trả lời của bạn xuống dưới và cùng giải đáp với Kteam ở hướng dẫn lần sau.

Kết

Trong bài này, chúng ta đã tìm hiểu về KIỂU DỮ LIỆU trong SQL cũng như cách sử dụng chúng.

Bài sau, chúng ta sẽ tìm hiểu về INSERT, DELETE, UPDATE TABLE TRONG SQL.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”

Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Kiểu dữ liệu trong SQL Server dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên like và share để ủng hộ Kteam và tác giả nhé!

Project

Nếu việc thực hành theo hướng dẫn không diễn ra suôn sẻ như mong muốn. Bạn cũng có thể tải xuống PROJECT THAM KHẢO ở link bên dưới!

Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Chủ Đề