Giới thiệu các kiểu dữ liệu trong MySQL và những câu hỏi thường gặp | KTPM

Các kiểu dữ liệu trong MySQL cần được xác định một cách chính xác để hệ cơ sở dữ liệu vận hành một cách trơn tru. Khi làm việc trên hệ thống quản trị cơ sở dữ liệu MySQL, bạn sẽ phải quản lý một lượng dữ liệu khổng lồ. Các dữ liệu trên hệ thống sẽ được phân loại thành những kiểu dữ liệu đa dạng, tương ứng với kích thước bộ nhớ dữ liệu khác nhau. Cùng kienthucphanmem.com tìm hiểu rõ hơn về các kiểu dữ liệu được quy định trong MySQL nhé.

Tổng quan về các kiểu dữ liệu trong MySQL

Kiểu dữ liệu (Data type) là gì?

Kiểu dữ liệu là lao lý về miền giá trị và cấu trúc của dữ liệu hoàn toàn có thể được nhập vào. Cùng với đó là những toán tử, phép toán có năng lực làm biến hóa miền giá trị của dữ liệu đó. Cũng giống như mỗi ngôn từ lập trình khác nhau sẽ được vận dụng những lao lý khác nhau. Mỗi dữ liệu cũng được phân loại thành từng kiểu dữ liệu riêng .
Kiểu dữ liệu là quy định về miền giá trị và cấu trúc của dữ liệu có thể được nhập vào
Có một số ít đặc thù về kiểu dữ liệu mà bạn cần quan tâm :

  • Kiểu dữ liệu là yếu tố ảnh hưởng tới kích thước bộ nhớ dữ liệu mà trường có thể sử dụng
  • Tiêu chuẩn xây dựng kiểu dữ liệu được cung cấp bởi ANSI/ISO
  • Các hệ thống quản trị cơ sở dữ liệu thương mại hiện nay sử dụng 16 trên tổng số 143 kiểu dữ liệu phổ biến
  • Dạng dữ liệu được chỉ định trong mỗi trường (column) chính là thuộc tính của dữ liệu

Xác định kiểu dữ liệu có vai trò gì?

Xác định đúng kiểu dữ liệu và các trường đóng vai trò vô cùng thiết yếu trong việc tối ưu hóa tổng thể cơ sở dữ liệu trên MySQL. Cụ thể, cơ sở dữ liệu sẽ gặp nhiều trục trặc nếu bạn áp dụng kiểu dữ liệu 2 ký tự cho dữ liệu cần tối thiểu 10 ký tự. Mặt khác, nếu sử dụng loại dữ liệu rộng tới 10 ký tự cho trường 2 ký tự thì cơ sở dữ liệu của bạn sẽ nhanh chóng bị quá tải.

Các kiểu dữ liệu trong MySQL bao gồm những gì?

MySQL cung ứng tổng số 11 kiểu dữ liệu khác nhau. Từ 11 kiểu dữ liệu này, tất cả chúng ta hoàn toàn có thể phân loại thành ba nhóm lớn đó là : Kiểu dữ liệu chuỗi ( String Data Types ), Kiểu dữ liệu ngày và thời hạn ( Date and Time Data Types ) và Kiểu dữ liệu số ( Numeric Data Types ) .

Kiểu dữ liệu số (Numeric Data Types)

Kiểu dữ liệu số nguyên

MySQL có 2 kiểu số dữ liệu số nguyên tiêu chuẩn là SMALLINT và INTEGER ( or INT ). Bên cạnh đó còn có những kiểu số nguyên khác gồm BIGINT, MEDIUMINT hay TINYINT. Sau đây là thông tin cụ thể về từng kiểu dữ liệu :
Thông tin chi tiết về các kiểu dữ liệu số nguyên trong MySQL

Kiểu dữ liệu số thực

Kiểu dữ liệu số thực còn được gọi là kiểu dấu chấm động ( Floating-Point Types ), gồm có hai kiểu dữ liệu là DOUBLE và FLOAT. Những data type này miêu tả gần như đúng mực giá trị của những số thực. Dưới đây bạn hoàn toàn có thể tìm thấy pháp luật về độ dài, giá trị lớn nhất và nhỏ nhất của hai kiểu dữ liệu này :
Thông tin chi tiết về các kiểu dữ liệu số thực trong MySQL

Kiểu dữ liệu dấu chấm cố định

Kiểu dữ liệu này còn có tên gọi là “ Fixed-Point Types ”, được dùng để bảo vệ tính đúng chuẩn của dữ liệu. Kiểu dữ liệu dấu chấm cố định và thắt chặt được cho phép tàng trữ dữ liệu dưới định dạng nhị phân, được vận dụng cho tiền tệ hay đơn giá. Vì vậy đây còn được gọi là kiểu dữ liệu tiền tệ trong MySQL .
Có 2 loại Fixed-Point Data Types chính đó là :

  • DECIMAL: có độ dài tối đa 65, lưu trữ dữ liệu theo định dạng nhị phân
  • NUMERIC: độ dài từ -999.99 đến 999.99, lưu trữ dữ liệu số một cách chính xác

Ví dụ : Khi viết Decimal ( 5,2 ) tức là kiểu dữ liệu này hoàn toàn có thể tàng trữ giá trị gồm 5 chữ số ( trong đó 2 số là số thập phân )

Kiểu dữ liệu Bit

Trong số những kiểu dữ liệu trong MySQL, kiểu dữ liệu BIT trong MySQL ( Bit Value Types ) được sử dụng khi tàng trữ những trường tương ứng với giá trị bit, khoanh vùng phạm vi của kiểu dữ liệu này là 1 – 64 .

Kiểu số và kiểu thuộc tính

Đây là hai kiểu dữ liệu lan rộng ra có năng lực kiểm soát và điều chỉnh độ dài hiển thị trong ngoặc nằm sau từ khóa. Hai kiểu dữ liệu chính là :

  • TYPE(N): ký tự N tượng trưng cho số nguyên và có thể chứa được N chữ số
  • ZEROFILL: với kiểu dữ liệu này, số 0 sẽ được dùng để thay cho các khoảng đệm. Ví dụ: nếu viết INT(5) ZEROFILL thì dữ liệu sẽ được hiển thị là 00005

Kiểu dữ liệu ngày tháng và thời gian (Date and Time Data Types)

Các kiểu dữ liệu Date and Time sẽ gồm 5 kiểu chính đó là YEAR, TIMESTAMP, DATETIME, TIME và DATE .

Kiểu dữ liệu DATE

  • Kiểu dữ liệu này chỉ cho phép bạn lưu trữ các dữ liệu liên quan tới ngày tháng.
  • Hiển thị dưới dạng: YYYY-MM-DD
  • Giới hạn thời gian: từ ‘1000-01-01 00:00:00’ đến ‘9999-12-31’

Kiểu dữ liệu DATETIME

  • Kiểu dữ liệu này được áp dụng khi bạn muốn lưu trữ các dữ liệu về ngày tháng và thời gian.
  • Hiển thị dưới dạng: YYYY-MM-DD HH:MM:SS
  • Giới hạn thời gian: từ ‘1000-01-01 00:00:00’ đến ‘9999-12-31 23:59:59’

Kiểu dữ liệu TIMESTAMP

  • Là một trong các kiểu dữ liệu trong MySQL được áp dụng khi bạn chỉ muốn lưu trữ thông tin về thời gian
  • Hiển thị dưới dạng: HH:MM:SS
  • Giới hạn thời gian: từ ‘-838:59:59’ đến ‘838:59:59’

Lưu ý :

  • Kiểu dữ liệu TIME không chỉ được dùng để thể hiện thời gian 24 tiếng trong một ngày mà nó còn là khoảng thời gian giữa hai sự kiện, thời gian đã qua. Vì vậy giá trị thời gian có thể nhiều hơn 24 tiếng hay thậm chí được biểu thị bằng giá trị âm.
  • Như vậy ta thấy có điểm khác biệt lớn giữa hai kiểu dữ liệu TIMESTAMP và DATETIME. Kiểu dữ liệu DATETIME luôn được giữ nguyên. Còn kiểu TIMESTAMP khi lưu trữ có thể được chuyển từ múi giờ hiện tại thành UTC và lúc trích xuất dữ liệu thì được chuyển ngược lại từ UTC thành múi giờ hiện tại.

Kiểu dữ liệu YEAR

Kiểu dữ liệu YEAR được miêu tả giá trị bằng 1 – byte. Có 2 kiểu dữ liệu YEAR là :
YEAR ( 2 )

  • Chiều rộng hiển thị: 2 ký tự
  • Hiển thị dưới dạng: 2 số cuối cùng của năm
  • Giới hạn: từ ‘0’ đến ’99’

YEAR ( 4 )

  • Chiều rộng hiển thị: 4 ký tự
  • Hiển thị dưới dạng: YYYY
  • Giới hạn: ‘1901’ đến ‘2155’

So sánh giữa các kiểu dữ liệu YEAR, TIMESTAMP, DATETIME, TIME và DATE trong MySQL

Kiểu dữ liệu chuỗi (String Data Types)

Kiểu dữ liệu chuỗi ( String Types ) sẽ gồm có 8 kiểu dữ liệu thông dụng đó là : CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM và SET .

CHAR và VARCHAR

CHAR và VARCHAR tựa như nhau ở góc nhìn dữ liệu. Tuy nhiên cách tàng trữ và truy xuất dữ liệu so với những kiểu dữ liệu trong MySQL này lại có sự độc lạ nằm ở khoảng chừng trống phía trước ( trailing space ) và chiều dài tối đa .
CHAR

  • Bao gồm chuỗi không ở dưới dạng nhị phân (non-binary)
  • Không có khoảng trắng phía trước
  • Độ dài cố định
  • Phạm vi các ký tự dao động từ ‘0’ đến ‘255’.

VARCHAR

  • Bao gồm chuỗi không ở dưới dạng nhị phân
  • Có khoảng trắng phía trước
  • Độ dài thay đổi
  • Phạm vi các ký tự dao động từ ‘0’ đến ‘65535’.

BINARY và VARBINARY

Hai kiểu dữ liệu BINARY và VARBINARY giá giống với CHAR và VARCHAR. Tuy nhiên những kiểu dữ liệu BINARY trong MySQL và VARBINARY được cho phép chứa những chuỗi nhị phân ( binary strings ) .

  • BINARY: phạm vi các ký tự dao động từ ‘0’ đến ‘255’
  • VARBINARY: phạm vi các ký tự dao động từ ‘0’ đến ‘65535’ đối với bản MySQL từ 5.0.3 trở lên, phạm vi từ ‘0’ đến ‘255’ đối với bản MySQL từ 5.0.3 trở về trước.

BLOB và TEXT

  • BLOB: là một “Binary Large Object” (đối tượng nhị phân lớn. Kiểu dữ liệu này cho phép chứa một lượng dữ liệu lớn, với 4 kiểu BLOB là TINYBLOB, BLOB, MEDIUMBLOB và LONGBLOB.
  • TEXT: dùng để lưu trữ dữ liệu được coi như một chuỗi các ký tự có mã hóa (được gọi là character set). Cũng giống như BLOB, có 4 kiểu TEXT đó là TINYTEXT, TEXT, MEDIUMTEXT và LONGTEXT.

Những đặc điểm của các kiểu dữ liệu BLOB và TEXT

Kiểu dữ liệu ENUM

Khi một trường được vận dụng kiểu dữ liệu ENUM tức là bạn đã xác lập một list những đối tượng người dùng trường đó phải nhận ( hoàn toàn có thể là Null ) .
Ví dụ, nếu muốn chỉ định một trường chỉ nhận 1 trong những giá trị là A, B hoặc C. Bạn phải định nghĩa trường đó là ENUM ( ‘ A ’, ‘ B ’, ‘ C ’ ). Như vậy, trong trường này sẽ chỉ Open 1 trong 3 giá trị trên ( hoặc NULL ) .

Xem thêm : Lệnh INSERT INTO trong SQL, chèn dữ liệu vào bảng

Những câu hỏi thường gặp về các kiểu dữ liệu trong MySQL

Kiểu dữ liệu hình ảnh trong MySQL là gì?

Kiểu dữ liệu hình ảnh trong MySQL là BLOB. BLOB ( đối tượng người tiêu dùng lớn binary ) là kiểu dữ liệu có năng lực chứa lượng lớn dữ liệu. Kiểu dữ liệu này được cho phép tàng trữ những dữ liệu binary gồm có file PDF, file đa phương tiện và cả hình ảnh .

Kiểu dữ liệu số điện thoại trong SQL là gì?

Kiểu dữ liệu số điện thoại thông minh trong SQL là CHAR ( 10 ), VARCHAR ( 15 ), VARCHAR ( 22 ) … Bạn hoàn toàn có thể kiểm soát và điều chỉnh sao cho tương thích với độ dài của số điện thoại thông minh .

Làm thế nào để sửa kiểu dữ liệu trong MySQL

Để sửa kiểu dữ liệu trong MySQL, bạn nhập cú pháp như sau :
ALTER TABLE table_name MODIFY column_name COLUMN_TYPE

Trên đây là tổng hợp tất cả các kiểu dữ liệu trong MySQL mà bạn nên biết. Khi nắm được đặc điểm của từng kiểu dữ liệu, công việc quản trị cơ sở dữ liệu của bạn sẽ trở nên dễ dàng hơn. Hy vọng rằng bài viết trên đây đã giúp ích cho bạn và đừng quên tham khảo thêm các bài viết có chủ đề tương tự trên Kiến Thức Phần Mềm nhé.

5/5 – ( 1 bầu chọn )

Giới thiệu các kiểu dữ liệu trong MySQL và những câu hỏi thường gặp | KTPM

Bài viết liên quan
Hotline 24/7: O984.666.352
Alternate Text Gọi ngay