Các kiểu dữ liệu của mysql là gì?

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

Các loại văn bản

CHAR() 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ố định

Theo 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
tính bằng byte Giá trị tối thiểu
(Đã ký) Giá trị tối đa
(Đã ký) Giá trị tối thiểu
(Chưa ký)Giá trị tối đa
(Chưa ký)TINYINT1-1281270255SMALLINT2-3276832767065535MEDIUMINT3-83886088388607 to016777215INT4-2147483648214748364704294967295BIGINT8-9223374273680828
547758070184467440737
09551615

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
tính bằng byte Giá trị tối thiểu
(Đã ký) Giá trị tối đa
(Đã ký) Giá trị tối thiểu
(Chưa ký)Giá trị tối đa
(Chưa ký)FLOAT4-3. 402823466E+38 -1. 175494351E-38 1. 175494351E-38 3. 402823466E+38ĐÔI8-1. 7976931348623
157E+ 308-2. 22507385850720
14E- 3080, và
2. 22507385850720
14E- 308 1. 797693134862315
7E+ 308


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ố
Số lượng chữ số tối đa cho DECIMAL là 65, nhưng phạm vi thực tế cho một cột DECIMAL đã cho có thể bị hạn chế bởi độ chính xác hoặc tỷ lệ của một cột nhất định

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
Để chỉ định giá trị bit, có thể sử dụng ký hiệu b'value'. giá trị là một giá trị nhị phân được viết bằng số không và số một. Ví dụ: b'111' và b'10000000' tương ứng là 7 và 128

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ị
Đối với định dạng 4 chữ số, MySQL hiển thị các giá trị NĂM ở định dạng YYYY, với phạm vi từ 1901 đến 2155 hoặc 0000
Đối với định dạng 2 chữ số, MySQL chỉ hiển thị hai chữ số cuối cùng (ít quan trọng nhất);

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ữ
Bốn loại TEXT là TINYTEXT, TEXT, MEDIUMTEXT và LONGTEXT. Chúng tương ứng với bốn loại BLOB và có cùng độ dài tối đa và yêu cầu lưu trữ

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ụ -

CREATE TABLE length (     length ENUM('small', 'medium', 'large') ); 

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

Các kiểu dữ liệu của mysql là gì?

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

MySQL> create table tempdate (udatetime datetime, utimestamp timestamp);
Query OK, 0 rows affected (0.32 sec)
MySQL> insert into tempdate values ((now()), (now())); 
Query OK, 1 row affected (0.05 sec)

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ị

Các kiểu dữ liệu của mysql là gì?

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ả

MySQL> SET TIME_ZONE ='Europe/Paris';
Query OK, 0 rows affected (0.00 sec)

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 , .