MySQL Data Types

Như ta biết trong SQL có một ngôn ngữ tên là T-SQL, mà đã là ngôn ngữ lập trình thì đương nhiên sẽ có các kiểu dữ liệu. Cũng như các ngôn ngữ lập trình khác, khi lưu dữ liệu của người dùng chúng ta cũng phải định nghĩa kiểu dữ liệu cho nó. Ví dụ khi lưu năm sinh thì ta sẽ lưu một số nên kiểu của nó là INT, còn khi lưu tên thì ta sẽ lưu kiểu chuỗi varchar. Tùy vào mỗi loại mà chúng ta sẽ chọn các kiểu dữ liệu cho phù hợp.

Trong mỗi Table sẽ chứa nhiều cột (column) và mỗi cột chúng ta phải xác định kiểu dữ liệu cho nó. Như ở ví dụ trên thì cột nam_sinh sẽ là kiểu INT và cột ten thì kiểu varchar. Mỗi loại dữ liệu sẽ có một số đặc điểm sau:

  • Kiểu dữ liệu (varchar, int, text)
  • Chiều dài tối đa
  • Có thể lập được loại chỉ mục (indexes) nào?

Bây giờ ta sẽ tìm hiểu chi tiết hơn nhé.

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

Trong MySQL có các kiểu dữ liệu dạng số như số nguyên (nguyên âm, nguyên dương). Ngoài ra MySQL còn hỗ trợ lưu trữ kiểu dữ liệu dạng BIT, và bạn không thể lưu trữ một chuỗi cho kiểu dữ liệu số. Sau đây là danh sách tất cả các kiểu dữ liệu dạng số trong MySQL. 

Kiểu dữ liệu Mô tả
TINYINT Kích thước rất nhỏ
SMALLINT Kích thước nhỏ
MEDIUMINT Kích thước vừa
INT Kích thước chuẩn
BIGINT Kích thước lớn
DECIMAL Số cố định
FLOAT Số có dấu chấm động
DOUBLE Số có dấu chấm động lớn hơn
BIT Kiểu BIT

2. Kiểu chuỗi (String)

Khi khai báo kiểu dữ liệu chuỗi thì đồng nghĩa với việc bạn có thể lưu trữ một chuỗi, một chuỗi ở đây chính là một dãy các kí tự các chữ cái hoặc các con số và các kí tự đặc biệt. Sau đây là một số kiểu dữ liệu chuỗi.

Kiểu dữ liệu Mô tả
CHAR Có chiều dài cố định và không ở dạng nhị phân
VARCHAR Có chiều dài và ta phải xác định chiều dài cho nó, không ở dạng nhị phần
BINARY Chuỗi nhị phân có độ dài cố định
VARBINARY Chuỗi nhị phân có độ dài thay đổi
TINYBLOB BLOB rất nhỏ
BLOB BLOB nhỏ
MEDIUMBLOB BLOB vừa
LONGBLOB BLOB lớn
TINYTEXT Chuỗi không nhị phân rất nhỏ
TEXT Chuỗi không nhị phân nhỏ
MEDIUMTEXT Chuỗi không nhị phân trung bình
LONGTEXT Chuỗi không nhị phân lớn
ENUM enumeration
SET Bộ

3. Kiểu ngày tháng (Date and Date time)

MySQL cũng cung cấp các kiểu dữ liệu liên quan đến thời gian nhằm giúp ta lưu trữ ngày tháng và thời gian dễ dàng hơn. Khi lưu ở dạng này bạn có thể truy vấn dữ liệu theo từng phần riêng lẻ như theo ngày, theo tháng và theo năm, hay thậm chi là truy vấn kết hơp cả ngày tháng năm.

Nếu bạn muốn lưu trữ ngày, tháng và năm thì chọn kiểu Date, lưu trữ có thêm giờ phút giây thì Datetime và lưu trữ chỉ giờ phút giây thì chọn time. Ngoài ra có thêm kiểu timestamp dùng lưu trữ thời gian khi record được thêm vào. Sau đây là danh sách các kiểu dữ liệu trong MYSQL:

Kiểu dữ liệu Mô tả
DATE Kiểu ngày tháng, định dạng YYYY-MM-DD
TIME Kiểu thời gian, định dạng HH:MM:SS
DATETIME Kiểu ngày tháng có thời gian, định dạng YYYY-MM-DD HH:MM:SS
TIMESTAMP Kiểu ngày tháng có thời gian, định dạng YYYY-MM-DD HH:MM:SS
YEAR Kiểu năm, định dạng YYYY

4. Các loại dữ liệu không gian (Spatial)

Khi làm việc với các ứng dụng web thì các loại dữ liệu trên kia là quá đủ rồi, bạn không cần phải tìm hiểu các kiểu dữ liệu dưới đây làm gì. Tuy nhiên tôi vẫn liệt kê ra để các bạn tham khảo cho biết.

MySQL có hỗ trợ nhiều loại kiểu dữ liệu không gian liên quan đến đối tượng điểm, tọa độ và địa lý sau:

Kiểu dữ liệu Mô tả
GEOMETRY Giá trị không gian của bất kì loại nào
POINT  Một cặp điểm tọa độ X:Y
LINESTRING Một đường cong
POLYGON Một đa giác
GEOMETRYCOLLECTION Một dãy các GEOMETRY
MULTILINESTRING Một dãy các đường cong
MULTIPOINT Một day các điểm
MULTIPOLYGON Một dãy các đa giác

5. Lời kết

Trên là danh sách các kiểu dữ liệu trong MySQL thông dụng mà chúng ta hay sử dụng khi xây dựng các ứng dụng Website. Không chỉ có ở MySQL mà ở SQL Server cũng có các kiểu dữ liệu tương tự.

Nguồn: freetuts.net

FREETUTS LÀM ĐẠI LÝ BÁN KHÓA HỌC ONLINE

Tin vui, hiện freetuts.net đã liên hệ được với các trung tâm dạy lập trình online (FEDU, UNICA, KYNA) để làm đại lý bán khóa học, giá sẽ rẻ hơn rất nhiều bởi mình đã trích % hoa hồng ra để hỗ trợ các bạn.

Tên khóa học Giá bán / giá giảm
FEDU - 18: Học lập trình PHP/MySql Back-end theo mô hình MVC.

(Giảng viên: Nguyễn Đức Việt)

Gốc (0%): 699,000đ
Tại fedu (50%): 349,000đ
Tại freetuts (57%): 297,000đ
XEM
MUA
FEDU - 18-19: Học lập trình Back-end Php/MySQL theo mô hình MVC từ cơ bản – nâng cao (combo)

( Nguyễn Đức Việt)

Gốc (0%): 1,349,000đ
Tại fedu (63%): 499,000đ
Tại freetuts (68%): 425,000đ
XEM
MUA
UNICA - Lập trình Backend cho website bằng PHP/Mysql theo mô hình MVC

(Giảng viên: Nguyễn Đức Việt)

Gốc (0%): 700,000đ
Tại unica (0%): 699,000đ
Tại freetuts (55%): 315,000đ
XEM
MUA
UNICA - Lập trình FULLSTACK với ANGULAR - PHP - MYSQL

(Giảng viên: Nguyễn Đức Việt)

Gốc (0%): 801,000đ
Tại unica (0%): 800,000đ
Tại freetuts (54%): 361,000đ
XEM
MUA
KYNA - Lập trình Backend cho website bằng PHP/Mysql theo mô hình MVC

(Giảng viên: Nguyễn Đức Việt)

Gốc (0%): 500,000đ
Tại kyna (60%): 199,000đ
Tại freetuts (68%): 160,000đ
XEM
MUA

XEM TẤT CẢ

BÌNH LUẬN

Đặt câu hỏi: Hãy tham gia vào group học lập trình web để tham gia thảo luận và đặt câu hỏi, với hơn 20.000 thành viên hiện đang hoạt động tại group này. Ngoài ra bạn cũng có thể đặt câu hỏi nếu cần tư vấn về các vấn đề như định hướng nghề nghiệp, những khó khăn trong quá trình học tập.

Hỗ trợ việc làm: Hãy tham gia vào group việc làm công nghệ thông tin để tìm và đăng tuyển lập trình viên. Hy vọng đây sẽ là nơi tìm kiếm việc làm lý tưởng cho bạn và nhà tuyển dụng.