Trong cơ sở dữ liệu MySQL, có ba (3) kiểu dữ liệu chính. văn bản, số và ngày/thời gian. Khi bạn thiết kế cơ sở dữ liệu của mình, điều quan trọng là bạn phải chọn loại thích hợp, vì điều này xác định lý do loại dữ liệu bạn có thể lưu trữ trong cột đó. Sử dụng loại thích hợp nhất cũng có thể tăng hiệu suất tổng thể của cơ sở dữ liệu Show Các loại văn bảnCHAR() Một phần cố định dài từ 0 đến 255 ký tự. VARCHAR() Một phần biến dài từ 0 đến 255 ký tự. Chuỗi TINYTEXTA có độ dài tối đa là 255 ký tự. Chuỗi TEXTA có độ dài tối đa 65535 ký tự. Chuỗi BLOBA có độ dài tối đa là 65535 ký tự. Chuỗi MEDIUMTEXTA có độ dài tối đa là 16777215 ký tự. Chuỗi MEDIUMBLOBA có độ dài tối đa là 16777215 ký tự. Chuỗi LONGTEXTA có độ dài tối đa là 4294967295 ký tự. Chuỗi LONGBLOBA có độ dài tối đa là 4294967295 ký tựDấu ngoặc ( ) cho phép bạn chỉ định số ký tự tối đa có thể được sử dụng trong cột BLOB là viết tắt của Đối tượng lớn nhị phân và có thể được sử dụng để lưu trữ thông tin phi văn bản được mã hóa thành văn bản Loại sốTINYINT ( )-128 to 127 normal0 to 255 UNSIGNEDSMALLINT( )-32768 to 32767 normal0 to 65535 UNSIGNEDMEDIUMINT( )-8388608 to 8388607 normal0 to 16777215 UNSIGNEDINT( )-2147483648 to 2147483647 normal0 to 4294967295 UNSIGNEDBIGINT( )-9223372036854775808 to 9223372036854775807 normal0 to 18446744073709551615 . NHÂN ĐÔI( , )Một số lớn có dấu thập phân động. DECIMAL( , )A DOUBLE được lưu dưới dạng chuỗi, cho phép dấu thập phân cố địnhTheo mặc định, các loại số nguyên sẽ cho phép phạm vi giữa số âm và số dương, như được chỉ ra trong bảng trên. Bạn có thể sử dụng phần thưởng UNSIGNED, thay vào đó sẽ chỉ cho phép các số dương, bắt đầu từ 0 và đếm lên 2. Một kiểu dữ liệu cũng chỉ định các giá trị có thể có cho kiểu đó, các thao tác có thể được thực hiện trên kiểu đó và cách các giá trị của kiểu đó được lưu trữ Các kiểu dữ liệu MySQL MySQL hỗ trợ một số kiểu dữ liệu chuẩn SQL trong các danh mục khác nhau. MySQL có các loại số, các loại DATETIME, DATE và TIMESTAMP và các loại chuỗi. Các loại dữ liệu được thảo luận trên trang này dựa trên máy chủ cộng đồng MySQL 5. 6 Các loại số MySQL MySQL hỗ trợ tất cả các kiểu dữ liệu số SQL tiêu chuẩn bao gồm INTEGER, SMALLINT, DECIMAL và NUMERIC. Nó cũng hỗ trợ các loại dữ liệu số gần đúng (FLOAT, REAL và DOUBLE PRECISION). Từ khóa INT là từ đồng nghĩa với INTEGER và từ khóa DEC và FIXED là từ đồng nghĩa với DECIMAL. NHÂN ĐÔI là một từ đồng nghĩa với CHÍNH XÁC NHÂN ĐÔI (một phần mở rộng không chuẩn). REAL là từ đồng nghĩa với DOUBLE PRECISION (một biến thể không chuẩn) trừ khi chế độ SQL REAL_AS_FLOAT được bật. Kiểu dữ liệu BIT lưu trữ các giá trị trường bit và được hỗ trợ cho các bảng MyISAM, MEMORY, InnoDB và NDB các kiểu số nguyên Các kiểu số nguyên chuẩn SQL INTEGER (hoặc INT) và SMALLINT được hỗ trợ bởi MySQL. Là một phần mở rộng của tiêu chuẩn, MySQL cũng hỗ trợ các kiểu số nguyên TINYINT, MEDIUMINT và BIGINT. Bảng sau hiển thị dung lượng lưu trữ và phạm vi cần thiết (giá trị tối đa và tối thiểu cho số nguyên có dấu và không dấu) cho từng loại số nguyên loạiChiều dài Các loại dấu phẩy động Các loại FLOAT và DOUBLE đại diện cho các giá trị dữ liệu số gần đúng. MySQL sử dụng bốn byte cho các giá trị có độ chính xác đơn và tám byte cho các giá trị có độ chính xác kép TypeDescriptionĐộ chính xác của FLOATA từ 0 đến 23 dẫn đến cột FLOAT có độ chính xác đơn bốn byte Độ chính xác DOUBLEA từ 24 đến 53 dẫn đến cột DOUBLE có độ chính xác kép tám byte MySQL cho phép một cú pháp không chuẩn. FLOAT(M,D) hoặc REAL(M,D) hoặc CHÍNH XÁC NHÂN ĐÔI(M,D). Tại đây, các giá trị có thể được lưu trữ tổng cộng tối đa M chữ số trong đó D đại diện cho dấu thập phân. Ví dụ: một cột được xác định là FLOAT(8,5) sẽ có dạng -999. 99999. MySQL thực hiện làm tròn khi lưu trữ giá trị, vì vậy nếu bạn chèn 999. 00009 vào cột FLOAT(7,4), kết quả gần đúng là 999. 0001 Bảng sau hiển thị dung lượng lưu trữ và phạm vi cần thiết (giá trị tối đa và tối thiểu cho số nguyên có dấu và không dấu) cho từng loại dấu phẩy động loạiChiều dài Các loại điểm cố định Các loại dữ liệu Điểm cố định được sử dụng để duy trì độ chính xác chính xác, ví dụ như với dữ liệu tiền tệ. Trong các loại DECIMAL và NUMERIC của MySQL lưu trữ các giá trị dữ liệu số chính xác. mysql 5. 6 cửa hàng giá trị DECIMAL ở định dạng nhị phân Trong SQL tiêu chuẩn, cú pháp DECIMAL(5,2) (trong đó 5 là độ chính xác và 2 là tỷ lệ. ) có thể lưu trữ bất kỳ giá trị nào có năm chữ số và hai số thập phân. Do đó, phạm vi giá trị sẽ từ -999. 99 đến 999. 99. Cú pháp DECIMAL(M) tương đương với DECIMAL(M,0). Tương tự, cú pháp DECIMAL tương đương với DECIMAL(M,0). MySQL hỗ trợ cả hai dạng biến thể cú pháp DECIMAL này. Giá trị mặc định của M là 10. Nếu tỷ lệ là 0, các giá trị DECIMAL không chứa dấu thập phân hoặc phần phân số Các loại giá trị bit Kiểu dữ liệu BIT được sử dụng để lưu trữ các giá trị trường bit. Một loại BIT(N) cho phép lưu trữ các giá trị N-bit. N có thể nằm trong khoảng từ 1 đến 64 Thuộc tính kiểu số MySQL hỗ trợ tiện ích mở rộng để tùy chọn chỉ định độ rộng hiển thị của kiểu dữ liệu số nguyên trong dấu ngoặc đơn theo sau từ khóa cơ sở cho kiểu LoạiMô tảTYPE(N)Trong đó N là số nguyên và chiều rộng hiển thị của loại tối đa N chữ số. ZEROFILLPhần đệm mặc định của khoảng trắng được thay thế bằng số không. Vì vậy, đối với cột INT(3) ZEROFILL, 7 được hiển thị là 007 Các loại ngày và giờ của MySQL Các loại ngày và giờ đại diện cho NGÀY, GIỜ, DATETIME, DẤU THỜI GIAN và NĂM. Mỗi loại có một loạt các giá trị hợp lệ, cũng như giá trị "không" Các loại DATETIME, DATE và TIMESTAMP LoạiMô tảĐịnh dạng hiển thịPhạm viDATETIMESử dụng khi bạn cần các giá trị chứa cả thông tin ngày và giờ. YYYY-MM-DD HH. MM. SS'1000-01-01 00. 00. 00' đến '9999-12-31 23. 59. 59'. DATESử dụng khi bạn chỉ cần thông tin ngày tháng. YYYY-MM-DD'1000-01-01' đến '9999-12-31'. DẤU THỜI GIAN Các giá trị được chuyển đổi từ múi giờ hiện tại sang UTC trong khi lưu trữ và chuyển đổi ngược lại từ UTC sang múi giờ hiện tại khi truy xuất. YYYY-MM-DD HH. MM. SS'1970-01-01 00. 00. 01' UTC đến '2038-01-19 03. 14. 07' UTC Loại thời gian MySQL tìm nạp và hiển thị các giá trị THỜI GIAN trong 'HH. MM. định dạng SS' hoặc 'HHH. MM. Định dạng SS' Phạm vi của. giá trị THỜI GIAN từ '-838. 59. 59' đến '838. 59. 59'. Phần giờ có thể khá lớn vì không chỉ loại TIME có thể được sử dụng để biểu thị thời gian trong ngày, tôi. e. ít hơn 24 giờ, mà còn là thời gian đã qua hoặc thời gian giãn cách giữa hai sự kiện Các giá trị THỜI GIAN trong MySQL có thể được nhận dạng ở nhiều định dạng khác nhau, một số định dạng có thể bao gồm phần giây phân số ở cuối với độ chính xác lên đến 6 chữ số micro giây. Phạm vi cho các giá trị THỜI GIAN là '-838. 59. 59. 000000' đến '838. 59. 59. 000000' MySQL giải thích các giá trị THỜI GIAN viết tắt với dấu hai chấm là thời gian trong ngày. Giả sử '09. 10' có nghĩa là '09. 10. 00', không phải '00. 09. 10'. MySQL hiểu các giá trị viết tắt không có dấu hai chấm như vậy, hai chữ số ngoài cùng bên phải biểu thị giây. Ví dụ: chúng tôi nghĩ về '0910' và 0910 có nghĩa là '09. 10. 00', tôi. e. 10 phút sau 9 giờ nhưng thực tế là MySQL hiểu chúng là '00. 09. 10', tôi. e. 9 phút 10 giây. Vì vậy, hãy cẩn thận về việc sử dụng thời gian viết tắt trong MySQL Theo mặc định, các giá trị thời gian nằm ngoài TIME được chuyển đổi thành phạm vi giá trị thời gian hợp lệ. Ví dụ: '-930. 00. 00' và '930. 00. 00' được chuyển đổi thành '-838. 59. 59' và '838. 59. 59'. Các giá trị THỜI GIAN không hợp lệ được chuyển đổi thành '00. 00. 00', vì '00. 00. 00' tự nó là một giá trị THỜI GIAN hợp lệ trong MySQL Loại năm Loại NĂM là loại 1 byte được sử dụng để biểu thị các giá trị năm. Nó có thể được khai báo là NĂM(2) hoặc NĂM(4) để chỉ định chiều rộng hiển thị của hai hoặc bốn ký tự. Nếu không có chiều rộng, mặc định là bốn ký tự NĂM(4) và NĂM(2) có định dạng hiển thị khác nhau nhưng có cùng phạm vi giá trị Bạn có thể chỉ định các giá trị NĂM ở nhiều định dạng khác nhau Chiều dài chuỗiPhạm vichuỗi 4 chữ số'1901' đến '2155'. đầu số có 4 chữ số1901 đến 2155. Chuỗi 1 hoặc 2 chữ số'0' đến '99'. Các giá trị trong phạm vi '0' đến '69' và '70' đến '99' được chuyển đổi thành giá trị NĂM trong phạm vi 2000 đến 2069 và 1970 đến 1999. số có 1 hoặc 2 chữ số từ 1 đến 99. Các giá trị trong phạm vi 1 đến 69 và 70 đến 99 được chuyển đổi thành giá trị NĂM trong phạm vi 2001 đến 2069 và 1970 đến 1999 Các loại chuỗi Các loại chuỗi là CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM và SET Các loại CHAR và VARCHAR Các loại CHAR và VARCHAR tương tự nhau nhưng khác nhau về cách chúng được lưu trữ và truy xuất. Chúng cũng khác nhau về độ dài tối đa và khoảng trắng ở cuối có được giữ lại hay không LoạiMô tảĐịnh dạng hiển thịPhạm vi ký tựCHARChứa chuỗi không nhị phân. Độ dài được cố định khi bạn khai báo trong khi tạo bảng. Khi được lưu trữ, chúng được đệm bên phải với khoảng trắng theo độ dài đã chỉ định. Dấu cách được loại bỏ. Độ dài có thể là bất kỳ giá trị nào từ 0 đến 255. VARCHARChứa các chuỗi không nhị phân. Cột là các chuỗi có độ dài thay đổi. Như được lưu trữ. Giá trị từ 0 đến 255 trước MySQL 5. 0. 3 và 0 đến 65,535 trong 5. 0. 3 và các phiên bản mới hơn Các loại BINARY và VARBINARY Các loại BINARY và VARBINARY tương tự như CHAR và VARCHAR, ngoại trừ việc chúng chứa các chuỗi nhị phân thay vì các chuỗi không nhị phân Các loạiMô tảRange tính bằng byteBINARYChứa các chuỗi nhị phân. 0 đến 255VARBINARYChứa chuỗi nhị phân. Giá trị từ 0 đến 255 trước MySQL 5. 0. 3 và 0 đến 65,535 trong 5. 0. 3 và các phiên bản mới hơn Các loại BLOB và TEXT BLOB là một đối tượng lớn nhị phân có thể chứa một lượng dữ liệu thay đổi. Có bốn loại BLOB, TINYBLOB, BLOB, MEDIUMBLOB và LONGBLOB. Chúng chỉ khác nhau về độ dài tối đa của các giá trị mà chúng có thể giữ TypeDescriptionCategoriesRangeBLOBĐối tượng nhị phân lớn chứa một lượng dữ liệu thay đổi. Các giá trị được coi là chuỗi nhị phân. Bạn không cần chỉ định độ dài khi tạo cột. TINYBLOBĐộ dài tối đa 255 ký tự. MEDIUMBLOB Độ dài tối đa 16777215 ký tự. LONGBLOBĐộ dài tối đa 4294967295 ký tựTEXTCác giá trị được coi là chuỗi ký tự có bộ ký tự. TINYBLOBĐộ dài tối đa 255 ký tự. MEDIUMBLOB Độ dài tối đa 16777215 ký tự. LONGBLOBĐộ dài tối đa 4294967295 ký tự Các loại ENUM Một đối tượng chuỗi có giá trị được chọn từ danh sách các giá trị được cung cấp tại thời điểm tạo bảng. Ví dụ -
THIẾT LẬP các loại Đối tượng chuỗi có 0 hoặc nhiều giá trị được phân tách bằng dấu phẩy (tối đa 64). Các giá trị được chọn từ danh sách các giá trị được cung cấp tại thời điểm tạo bảng Sự khác biệt giữa các loại dữ liệu Dấu thời gian và Dấu thời gian của MySQL Loại DATETIME được sử dụng khi bạn cần các giá trị chứa cả thông tin 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ũng được sử dụng khi bạn cần các giá trị chứa cả thông tin ngày và giờ. DẤU THỜI GIAN có phạm vi '1970-01-01 00. 00. 01' UTC đến '2038-01-19 03. 14. 07' UTC Sự khác biệt chính giữa DATETIME và TIMESTAMP là các giá trị TIMESTAMP được chuyển đổi từ múi giờ hiện tại sang UTC trong khi lưu trữ và được chuyển đổi ngược lại từ UTC sang múi giờ hiện tại khi truy xuất. Giá trị kiểu dữ liệu ngày giờ không thay đổi Xem ví dụ sau Lệnh sau hiển thị thông tin múi giờ hiện tại Hãy tạo một bảng có hai trường udatetime (data type -> datetime) utimestamp (data type -> timestamp) và chèn một bản ghi với now() (trả về ngày và giờ hiện tại) làm giá trị trong cả hai trường
Bây giờ hãy xem các bản ghi; Tại thời điểm này, kiểu dữ liệu ngày giờ và dấu thời gian có cùng giá trị Trong kết quả trên, cả hai trường có cùng giá trị. Hãy thay đổi múi giờ và xem kết quả
Bây giờ thực hiện lệnh sau Đầu ra mẫu MySQL> select * from tempdate; +---------------------+---------------------+ | udatetime | utimestamp | +---------------------+---------------------+ | 2013-06-29 16:55:18 | 2013-06-29 13:25:18 | +---------------------+---------------------+ 1 row in set (0.00 sec) Đầu ra ở trên cho thấy udatetime (kiểu dữ liệu là DATETIME) không thay đổi trong khi utimestamp (kiểu dữ liệu là DẤU THỜI GIAN) bị thay đổi khi múi giờ mới được đặt thành 'Châu Âu/Paris' 4 kiểu dữ liệu trong MySQL là gì?MySQL hỗ trợ các kiểu dữ liệu SQL trong một số danh mục. kiểu số, kiểu ngày và giờ, kiểu chuỗi (ký tự và byte), kiểu không gian và kiểu dữ liệu JSON .
5 loại trong MySQL là gì?Kiểu dữ liệu chuỗi Cú pháp Các loại CHAR và VARCHAR Các loại BINARY và VARBINARY Các loại BLOB và TEXT Loại ENUM Loại BỘ 5 loại dữ liệu chính là gì?Hầu hết các ngôn ngữ máy tính hiện đại đều nhận ra năm loại dữ liệu cơ bản. Các loại tích phân, Dấu phẩy động, Ký tự, Chuỗi ký tự và hỗn hợp , với nhiều loại phụ cụ thể được xác định trong mỗi danh mục rộng.
Các kiểu dữ liệu của số trong MySQL là gì?MySQL hỗ trợ tất cả các kiểu dữ liệu số SQL tiêu chuẩn. Các loại này bao gồm các loại dữ liệu số chính xác ( INTEGER , SMALLINT , DECIMAL và NUMERIC ), cũng như các loại dữ liệu số gần đúng ( FLOAT , REAL , . |