Ví dụ về kiểu dữ liệu thời gian của MySQL

Kiểu dữ liệu của cột xác định giá trị mà cột có thể giữ. số nguyên, ký tự, tiền, ngày và giờ, nhị phân, v.v.


Mỗi cột trong bảng cơ sở dữ liệu bắt buộc phải có tên và kiểu dữ liệu

Nhà phát triển SQL phải quyết định loại dữ liệu nào sẽ được lưu trữ bên trong mỗi cột khi tạo bảng. Kiểu dữ liệu là hướng dẫn để SQL hiểu loại dữ liệu nào được mong đợi bên trong mỗi cột và nó cũng xác định cách SQL sẽ tương tác với dữ liệu được lưu trữ

Ghi chú. Các kiểu dữ liệu có thể có tên khác nhau trong cơ sở dữ liệu khác nhau. Và ngay cả khi tên giống nhau, kích thước và các chi tiết khác có thể khác nhau. Luôn kiểm tra tài liệu


Các kiểu dữ liệu MySQL (Phiên bản 8. 0)

Trong MySQL có ba kiểu dữ liệu chính. chuỗi, số và ngày giờ

Kiểu dữ liệu chuỗi

Kiểu dữ liệuMô tảCHAR(size)Một chuỗi độ dài CỐ ĐỊNH (có thể chứa các chữ cái, số và ký tự đặc biệt). Tham số kích thước chỉ định độ dài cột theo ký tự - có thể từ 0 đến 255. Mặc định là 1VARCHAR(size)A VARIABLE chuỗi độ dài (có thể chứa các chữ cái, số và ký tự đặc biệt). Tham số kích thước chỉ định độ dài chuỗi tối đa tính bằng ký tự - có thể từ 0 đến 65535BINARY(size) Bằng CHAR(), nhưng lưu trữ các chuỗi byte nhị phân. Tham số kích thước chỉ định độ dài cột theo byte. Mặc định là 1VARBINARY(size)Equal to VARCHAR(), nhưng lưu chuỗi byte nhị phân. Tham số kích thước chỉ định độ dài cột tối đa tính bằng byte. TINYBLOBDành cho BLOB (Đối tượng lớn nhị phân). chiều dài tối đa. 255 byteTINYTEXTGiữ chuỗi có độ dài tối đa 255 ký tựTEXT(size)Giữ chuỗi có độ dài tối đa 65.535 byteBLOB(size)Dành cho BLOB (Đối tượng lớn nhị phân). Chứa tối đa 65.535 byte dữ liệuMEDIUMTEXTGiữ một chuỗi có độ dài tối đa 16.777.215 ký tựMEDIUMBLOBDành cho BLOB (Đối tượng lớn nhị phân). Chứa tối đa 16.777.215 byte dữ liệuLONGTEXTGiữ một chuỗi có độ dài tối đa là 4.294.967.295 ký tựLONGBLOBDành cho BLOB (Đối tượng lớn nhị phân). Chứa tới 4.294.967.295 byte dữ liệuENUM(val1, val2, val3,. ) Một đối tượng chuỗi chỉ có thể có một giá trị, được chọn từ danh sách các giá trị có thể. Bạn có thể liệt kê tối đa 65535 giá trị trong danh sách ENUM. Nếu một giá trị được chèn không có trong danh sách, một giá trị trống sẽ được chèn vào. Các giá trị được sắp xếp theo thứ tự bạn nhập chúngSET(val1, val2, val3,. ) Một đối tượng chuỗi có thể có 0 hoặc nhiều giá trị, được chọn từ danh sách các giá trị có thể. Bạn có thể liệt kê tối đa 64 giá trị trong danh sách SET

Kiểu dữ liệu số

Kiểu dữ liệu Mô tảBIT(size)Một loại giá trị bit. Số lượng bit trên mỗi giá trị được chỉ định trong kích thước. Tham số kích thước có thể giữ giá trị từ 1 đến 64. Giá trị mặc định cho kích thước là 1. TINYINT(size)Một số nguyên rất nhỏ. Phạm vi đã ký là từ -128 đến 127. Phạm vi không dấu là từ 0 đến 255. Tham số kích thước chỉ định chiều rộng hiển thị tối đa (là 255)BOOLZero được coi là sai, các giá trị khác không được coi là đúng. BOOLEANEbằng với BOOLSMALLINT(size)Một số nguyên nhỏ. Phạm vi đã ký là từ -32768 đến 32767. Phạm vi không dấu là từ 0 đến 65535. Tham số kích thước chỉ định chiều rộng hiển thị tối đa (là 255)TRUNG BÌNH(kích thước)Một số nguyên trung bình. Phạm vi đã ký là từ -8388608 đến 8388607. Phạm vi không dấu là từ 0 đến 16777215. Tham số kích thước chỉ định chiều rộng hiển thị tối đa (là 255)INT(size)Một số nguyên trung bình. Phạm vi đã ký là từ -2147483648 đến 2147483647. Phạm vi không dấu là từ 0 đến 4294967295. Tham số kích thước chỉ định chiều rộng hiển thị tối đa (là 255)INTEGER(size)Equal to INT(size)BIGINT(size)Một số nguyên lớn. Phạm vi đã ký là từ -9223372036854775808 đến 9223372036854775807. Phạm vi không dấu là từ 0 đến 18446744073709551615. Tham số kích thước chỉ định chiều rộng hiển thị tối đa (là 255)FLOAT(size, d)Số dấu phẩy động. Tổng số chữ số được quy định trong kích thước. Số chữ số sau dấu thập phân được chỉ định trong tham số d. Cú pháp này không được dùng trong MySQL 8. 0. 17 và nó sẽ bị xóa trong các phiên bản MySQL trong tương laiFLOAT(p)A số dấu phẩy động. MySQL sử dụng giá trị p để xác định nên sử dụng FLOAT hay DOUBLE cho kiểu dữ liệu kết quả. Nếu p từ 0 đến 24, kiểu dữ liệu trở thành FLOAT(). Nếu p từ 25 đến 53, kiểu dữ liệu trở thành DOUBLE()DOUBLE(size, d)A normal-size floating point number. Tổng số chữ số được quy định trong kích thước. Số chữ số sau dấu thập phân được chỉ định trong tham số dDOUBLE PRECISION(size, d)DECIMAL(size, d)Một số điểm cố định chính xác. Tổng số chữ số được quy định trong kích thước. Số chữ số sau dấu thập phân được chỉ định trong tham số d. Số lượng tối đa cho kích thước là 65. Số lớn nhất cho d là 30. Giá trị mặc định cho kích thước là 10. Giá trị mặc định cho d là 0. DEC(size, d)Bằng DECIMAL(size,d)

Ghi chú. Tất cả các loại dữ liệu số có thể có một tùy chọn bổ sung. UNSIGNED hoặc ZEROFILL. Nếu bạn thêm tùy chọn UNSIGNED, MySQL sẽ không cho phép các giá trị âm cho cột. Nếu bạn thêm tùy chọn ZEROFILL, MySQL cũng tự động thêm thuộc tính UNSIGNED vào cột

Kiểu dữ liệu ngày và giờ

Kiểu dữ liệuMô tảDATEA ngày. Định dạng. YYYY-MM-DD. Phạm vi được hỗ trợ là từ '1000-01-01' đến '9999-12-31'DATETIME(fsp)Kết hợp ngày và giờ. Định dạng. YYYY-MM-DD hh. mm. ss. Phạm vi được hỗ trợ là từ '1000-01-01 00. 00. 00' đến '9999-12-31 23. 59. 59'. Thêm MẶC ĐỊNH và BẬT CẬP NHẬT trong định nghĩa cột để tự động khởi tạo và cập nhật ngày và giờ hiện tạiDẤU THỜI GIAN(fsp)Dấu thời gian. Các giá trị DẤU THỜI GIAN được lưu trữ dưới dạng số giây kể từ Kỷ nguyên Unix ('1970-01-01 00. 00. 00' UTC). Định dạng. YYYY-MM-DD hh. mm. ss. Phạm vi được hỗ trợ là từ '1970-01-01 00. 00. 01' UTC đến '2038-01-09 03. 14. 07' UTC. Có thể chỉ định tự động khởi tạo và cập nhật ngày giờ hiện tại bằng cách sử dụng MẶC ĐỊNH CURRENT_TIMESTAMP và BẬT CẬP NHẬT CURRENT_TIMESTAMP trong định nghĩa cộtTIME(fsp)A time. Định dạng. hh. mm. ss. Phạm vi được hỗ trợ là từ '-838. 59. 59' đến '838. 59. Năm 59'YEARA ở định dạng bốn chữ số. Các giá trị được phép ở định dạng bốn chữ số. 1901 đến 2155 và 0000.
MySQL 8. 0 không hỗ trợ năm ở định dạng hai chữ số.

Các kiểu dữ liệu máy chủ SQL

Kiểu dữ liệu chuỗi

Kiểu dữ liệu Mô tảKích thước tối đaStoragechar(n)Chuỗi ký tự có độ rộng cố định8.000 ký tựChiều rộng được xác địnhvarchar(n)Chuỗi ký tự có độ rộng thay đổi8.000 ký tự2 byte + số lượng ký tựvarchar(tối đa)Chuỗi ký tự có độ rộng thay đổi1.073.741.824 ký tự2 byte + số lượng ký tựChuỗi ký tự có độ rộng thay đổi2GB dữ liệu văn bản4

Kiểu dữ liệu số

Data typeDescriptionStoragebitInteger that can be 0, 1, or NULLtinyintAllows whole numbers from 0 to 2551 bytesmallintAllows whole numbers between -32,768 and 32,7672 bytesintAllows whole numbers between -2,147,483,648 and 2,147,483,6474 bytesbigintAllows whole numbers between -9,223,372,036,854,775,808 and 9,223,372,036,854,775,8078 bytesdecimal(p

Cho phép các số từ -10^38 +1 đến 10^38 –1

Tham số p cho biết tổng số chữ số tối đa có thể được lưu trữ (cả bên trái và bên phải dấu thập phân). p phải là một giá trị từ 1 đến 38. Mặc định là 18

Tham số s cho biết số chữ số tối đa được lưu ở bên phải dấu thập phân. s phải là một giá trị từ 0 đến p. Giá trị mặc định là 0

5-17 bytesnumeric(p,s)Cố định số chính xác và tỷ lệ

Cho phép các số từ -10^38 +1 đến 10^38 –1

Tham số p cho biết tổng số chữ số tối đa có thể được lưu trữ (cả bên trái và bên phải dấu thập phân). p phải là một giá trị từ 1 đến 38. Mặc định là 18

Tham số s cho biết số chữ số tối đa được lưu ở bên phải dấu thập phân. s phải là một giá trị từ 0 đến p. Giá trị mặc định là 0

5-17 bytesmallmoneyDữ liệu tiền tệ từ -214,748. 3648 đến 214.748. 36474 bytemoneyDữ liệu tiền tệ từ -922,337,203,685,477. 5808 đến 922.337.203.685.477. 58078 bytesfloat(n)Dữ liệu số chính xác trôi nổi từ -1. 79E + 308 ăn 1. 79E + 308

Tham số n cho biết trường sẽ chứa 4 hay 8 byte. float(24) giữ trường 4 byte và float(53) giữ trường 8 byte. Giá trị mặc định của n là 53

Dữ liệu số chính xác 4 hoặc 8 bytesrealFloating từ -3. 40E + 38 ăn 3. 40E + 384 byte

Kiểu dữ liệu ngày và giờ

Data typeDescriptionStoragedatetimeTừ ngày 1 tháng 1 năm 1753 đến ngày 31 tháng 12 năm 9999 với độ chính xác là 3. 33 mili giây8 bytengày giờ2Từ ngày 1 tháng 1 năm 0001 đến ngày 31 tháng 12 năm 9999 với độ chính xác 100 nano giây6-8 bytethời gian nhỏTừ ngày 1 tháng 1 năm 1900 đến ngày 6 tháng 6 năm 2079 với độ chính xác 1 phút4 bytengàyChỉ lưu trữ một ngày. Từ ngày 1 tháng 1 năm 0001 đến ngày 31 tháng 12 năm 99993 bytestimeChỉ lưu trữ thời gian với độ chính xác là 100 nano giây3-5 bytedatetimeoffsetGiống như datetime2 với việc bổ sung độ lệch múi giờ8-10 bytetimestampLưu trữ một số duy nhất được cập nhật mỗi khi một hàng được tạo hoặc . Giá trị dấu thời gian dựa trên đồng hồ bên trong và không tương ứng với thời gian thực. Mỗi bảng có thể chỉ có một biến dấu thời gian

Các loại dữ liệu khác

Kiểu dữ liệuMô tảsql_variantLưu trữ tối đa 8.000 byte dữ liệu thuộc nhiều loại dữ liệu khác nhau, ngoại trừ văn bản, ntext và dấu thời gianNhận dạng duy nhấtLưu trữ mã định danh duy nhất toàn cầu (GUID)xmlLưu trữ dữ liệu có định dạng XML. Tối đa 2GB con trỏLưu trữ tham chiếu đến con trỏ được sử dụng cho bảng thao tác cơ sở dữ liệuLưu trữ tập hợp kết quả để xử lý sau

Các loại dữ liệu truy cập MS

Kiểu dữ liệu Mô tảLưu trữVăn bảnSử dụng cho văn bản hoặc tổ hợp văn bản và số. Tối đa 255 ký tựMemoMemo được sử dụng cho lượng văn bản lớn hơn. Lưu trữ tối đa 65.536 ký tự. Ghi chú. Bạn không thể sắp xếp một trường ghi nhớ. Tuy nhiên, chúng có thể tìm kiếm đượcByteCho phép số nguyên từ 0 đến 2551 byteIntegerCho phép số nguyên trong khoảng từ -32,768 đến 32,7672 byteLongCho phép số nguyên trong khoảng từ -2,147,483,648 đến 2,147,483,6474 byte Dấu phẩy động chính xác đơn. Sẽ xử lý hầu hết các số thập phân4 byteDoubleDouble dấu phẩy động chính xác. Sẽ xử lý hầu hết các số thập phân8 byteCurrencySử dụng cho tiền tệ. Giữ tới 15 chữ số của toàn bộ đô la, cộng với 4 chữ số thập phân. Mẹo. Bạn có thể chọn đơn vị tiền tệ của quốc gia sẽ sử dụng8 byteTự độngNumberTự độngCác trường số tự động cung cấp cho mỗi bản ghi số riêng của nó, thường bắt đầu từ 14 byteNgày/GiờSử dụng cho ngày và giờ8 byteCó/KhôngTrường logic có thể được hiển thị là Có/Không, Đúng/Sai hoặc Bật/Tắt. Trong mã, sử dụng các hằng True và False (tương đương với -1 và 0). Ghi chú. Giá trị null không được phép trong các trường Có/Không1 đối tượng bitOleCó thể lưu trữ ảnh, âm thanh, video hoặc các BLOB khác (Đối tượng lớn nhị phân)lên đến 1GBHyperlinkChứa liên kết đến các tệp khác, bao gồm cả trang webTrình hướng dẫn tra cứuCho phép bạn nhập danh sách các tùy chọn, sau đó có thể nhập danh sách này

Kiểu dữ liệu cho thời gian trong MySQL là gì?

Loại DATETIME được sử dụng cho các giá trị chứa cả phần ngày và giờ. MySQL truy xuất và hiển thị các giá trị DATETIME trong ' YYYY-MM-DD hh. mm. định dạng ss. Phạm vi được hỗ trợ là '1000-01-01 00. 00. 00' đến '9999-12-31 23. 59. 59'. Kiểu dữ liệu DẤU THỜI GIAN được sử dụng cho các giá trị chứa cả phần ngày và giờ.

Kiểu dữ liệu cho thời gian là gì?

Kiểu dữ liệu DATETIME lưu trữ thời gian tức thời được biểu thị dưới dạng ngày theo lịch và thời gian trong ngày. Bạn chọn cách chính xác giá trị DATETIME được lưu trữ;

Làm cách nào để sử dụng thời gian trong MySQL?

Hàm TIME() trong MySQL được sử dụng để trích xuất phần thời gian từ một biểu thức thời gian/ngày giờ nhất định . Nếu biểu thức không phải là giá trị thời gian hoặc ngày giờ, hàm TIME sẽ trả về '00. 00. 00′. Nếu biểu thức là NULL, hàm TIME sẽ trả về NULL.

Làm cách nào để lấy thời gian trong MySQL?

Hàm CURRENT_TIME() trong MySQL dùng để kiểm tra thời gian hiện tại. Nó trả về thời gian hiện tại dưới dạng giá trị trong 'hh. mm. ss' hoặc hhmmss, tùy thuộc vào việc hàm được sử dụng trong ngữ cảnh chuỗi hay số