Kiểu Date trong MySQL

Kiểu dữ liệu trong MySQL cho biết loại dữ liệu mà cột lưu trữ, từ đó có thể truy vấn, tính toán theo giá trị của dữ liệu. MySQL có các loại [kiểu dữ liệu] cơ bản sau:

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

KiểuĐộ dài [byte]Giá trị lưu trữTINYINT1-128 đên 128 [số nguyên có dấu] hoặc 0 ... 255 [số nguyên không dấu]SMALLINT2-32768 ... 32767 [số nguyên có dấu] hoặc 0 ... 65535 [số nguyên không dấu]MEDIUMINT3-8388608 ... 8388607 [số nguyên có dấu] hoặc 0 ... 16777215 [số nguyên không dấu]INT4-2147483648 ... 2147483647 [số nguyên có dấu] hoặc 0 ... 4294967295 [số nguyên không dấu]BIGINT8-9223372036854775808 ... 9223372036854775807 [số nguyên có dấu] hoặc 0 ... 18446744073709551615 [số nguyên không dấu]

Kiểu dữ liệu số thực dấu chấm động trong MySQL

KiểuĐộ dài [byte]Giá trị lưu trữFLOAT4-3.402823466E+38 ... -1.175494351E-38 [có dấu] hoặc 1.175494351E-38 ... 3.402823466E+38 [không dấu]DOUBLE8-1.7976931348623157E+ 308 ... -2.2250738585072014E- 308[có dấu] hoặc 0 và 2.2250738585072014E-308 ... 1.7976931348623157E+ 308 [không dấu]

DOUBLE và FLOAT là kiểu biểu diễn số thực dấu chấm động [gần chính xác số thực], float dùng 4 byte còn double có độ chính xác gấp đôi [dùng 8 byte]. Ngoài ra MySQL cho phép dùng cú pháp DOUBLE[M,D] và FLOAT[M,D] với M là phần số nguyên [số chữ số] và D là phần thập phân - số chữ số sau dấu chấm

Kiểu dữ liệu số thực dấu chấm cố định DECIMAL trong MySQL

DECIMAL : Số thực dấu chấm cố định đó là số thực nhưng số con số sau dấu chấm - phần thập phân là cố định, ví dụ các số có hai số phần thập phân, trong các phép toán nó không làm tròn [biểu diễn gần đúng] như float, double nên nó chính xác hơn [ví dụ nếu float thì 0.1 + 0.2 có thể là 0.300000001 còn với DECIMAL nó sẽ là 0.30]. Trong MySQL các số dạng này biểu diễn bởi kiểu dữ liệu DECIMAL và NUMERIC, nó được biểu diễn cho các số chính xác như tiền tệ. MySQL cũng dùng cú pháp DECIMAL[M,D] để xác định rõ phần nguyên và thập phân.

Kiểu dữ liệu DATE, TIME, DATETIME, TIMESTAMP, YEAR trong MySQL

KiểuMô tảĐịnh dạng hiện thịGiá trị lưu trữDATETIMELưu trữ đủ thông tin năm-tháng-ngày-giờ-phút-giâyYYYY-MM-DD HH:MM:SS'1000-01-01 00:00:00' đến '9999-12-31 23:59:59'DATELưu trữ đủ thông tin năm-tháng-ngàyYYYY-MM-DD'1000-01-01 00:00:00' đến '9999-12-31 23:59:59'TIMESTAMPLưu trữ thời gian [năm-tháng-ngày-giờ-phút-giây] của timezone hiện tại được convert về UTC. Khi truy vấn đọc thì tự động convert về timezone hiện tại[timezone hiện tại thường là timezone của Server]. Như vậy cùng một giá trị TIMESTAMP, nhưng tùy thuộc vào timezone của server mà giá trị đọc được có thể khác nhau.YYYY-MM-DD HH:MM:SS'1970-01-01 00:00:01' UTC đến '2038-01-19 03:14:07' UTCYEARSử dụng 1 byte để lưu trữ nămYYYY1901 tới 2155 và giá trị 0000

Kiểu dữ liệu chuỗi ký tự trong MySQL

Lưu trữ dữ liệu chuỗi MySQL có các kiểu dữ liệu: CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM, SET

Ví dụ, khi bạn lên Facebook để đăng ký tài khoản. Hệ thống yêu cầu cung cấp: Họ tên, ngày sinh, giới tính, số điện thoại,…. Sau khi bấm nút đăng ký, những thông tin đó được lưu vào hệ thống [tức là lưu vào cơ sở dữ liệu], thì những thông tin được lưu trong cơ sở dữ liệu đó được gọi là DỮ LIỆU.

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

Kiểu dữ liệu tức là KIỂU của DỮ LIỆU

Nhắc lại ví dụ trên, chúng ta có một mẫu dữ liệu đăng ký tài khoản như sau

HỌ TÊNNGÀY SINHGIỚI TÍNHSỐ ĐIỆN THOẠINguyễn Thanh Nhân11-11-1989Nam9999999999
  • Dữ liệu ở cột HỌ TÊN có dạng chuỗi ký tự, nên người ta gọi cột HỌ TÊN có kiểu dữ liệu là kiểu chuỗi
  • Dữ liệu ở cột NGÀY SINH có dạng ngày tháng, nên người ta gọi cột NGÀY SINH có kiểu dữ liệu là kiểu ngày tháng
  • Dữ liệu ở cột GIỚI TÍNH có dạng chuỗi ký tự, nên người ta gọi cột GIỚI TÍNH có kiểu dữ liệu là kiểu chuỗi
  • Dữ liệu ở cột SỐ ĐIỆN THOẠI có dạng số nguyên, nên người ta gọi cột SỐ ĐIỆN THOẠI có kiểu dữ liệu là kiểu số nguyên

Trong MySQL, các kiểu dữ liệu được thay thế bởi một cái tên tiếng Anh
[Ví dụ: Kiểu chuỗi thì gọi là VARCHAR, kiểu ngày tháng thì gọi là DATE, kiểu số nguyên thì gọi là INT]

Trong MySQL, kiểu dữ liệu được chia làm ba loại chính: kiểu số, kiểu văn bản, kiểu ngày tháng

Kiểu số

Kiểu dữ liệuMô tảTINYINT[size]Lưu trữ một số nguyên có giá trị từ -128 đến -127 hoặc 0 đến 255SMALLINT[size]Lưu trữ một số nguyên có giá trị từ -32768 đến 32767 hoặc 0 đến 65535MEDIUMINT[size]Lưu trữ một số nguyên có giá trị từ -8388608 đến 8388607 hoặc 0 đến 16777215INT[size]Lưu trữ một số nguyên có giá trị từ -2147483648 đến 2147483647 hoặc 0 đến 4294967295BIGINT[size]Lưu trữ một số nguyên có giá trị từ -9223372036854775808 đến 9223372036854775807 hoặc 0 đến 18446744073709551615.FLOAT[size,d]Lưu trữ một số thập phân loại nhỏ [Ví dụ: 567.25]. Tham số “size” dùng để xác định kích thước tối đa của phần nguyên [nằm bên trái dấu chấm]. Tham số “d” dùng để xác định kích thước tối đa của phần thập phân [nằm bên phải dấu chấm].DOUBLE[size,d]Lưu trữ một số thập phân loại lớn. Tham số “size” dùng để xác định kích thước tối đa của phần nguyên [nằm bên trái dấu chấm]. Tham số “d” dùng để xác định kích thước tối đa của phần thập phân [nằm bên phải dấu chấm].DECIMAL[size,d]Lưu trữ như một chuỗi, cho phép một dấu thập phân cố định. Tham số “size” dùng để xác định kích thước tối đa của phần nguyên [nằm bên trái dấu chấm]. Tham số “d” dùng để xác định kích thước tối đa của phần thập phân [nằm bên phải dấu chấm].

Kiểu văn bản

Kiểu dữ liệuMô tảCHAR[size]Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 255 ký tựVARCHAR[size]Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 255 ký tự. Nếu đặt “size” lớn hơn 255 thì nó sẽ chuyển sang kiểu TEXTTINYTEXTDùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 255 ký tựTEXTDùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 65,535 ký tựBLOBDùng để lưu trữ dữ liệu nhị phân tối đa là 65,535 byteMEDIUMTEXTDùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 16,777,215 ký tựMEDIUMBLOBDùng để lưu trữ dữ liệu nhị phân tối đa là 16,777,215 byteLONGTEXTDùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 4,294,967,295 ký tựLONGBLOBDùng để lưu trữ dữ liệu nhị phân tối đa là 4,294,967,295 byte

Kiểu ngày tháng

Kiểu dữ liệuMô tảDATE[]Lưu trữ một ngày theo định dạng YYYY-MM-DD [Ví dụ: 2016-09-12 tức là lưu ngày 12 tháng 9 năm 2016]TIME[]Lưu trữ thời gian theo định dạng HH:MI:SS [Ví dụ 17:25:36 tức là lưu 17 giờ 25 phút 36 giây]YEAR[]Lưu trữ một năm theo định dạng hai số hoặc bốn sốDATETIME[]Lưu trữ một ngày cùng với thời gian theo định dạng YYYY-MM-DD HH:MI:SS [Ví dụ: 2016-09-12 17:25:36 tức là lưu ngày 12 tháng 9 năm 2016 lúc 17 giờ 25 phút 36 giây]

Chủ Đề