Một trong những tính năng chính của cơ sở dữ liệu quan hệ nói chung là khả năng xác định các lược đồ hoặc cấu trúc bảng xác định chính xác định dạng của dữ liệu mà chúng sẽ chứa. Điều này được thực hiện bằng cách quy định các cột mà các cấu trúc này chứa cùng với kiểu dữ liệu của chúng và bất kỳ ràng buộc nào.
Các kiểu dữ liệu chỉ định một mẫu chung cho dữ liệu mà chúng chấp nhận và lưu trữ. Các giá trị phải tuân thủ các yêu cầu mà chúng phác thảo để được MySQL chấp nhận. Mặc dù có thể xác định các yêu cầu tùy chỉnh, các kiểu dữ liệu cung cấp các khối xây dựng cơ bản cho phép MySQL xác thực đầu vào và làm việc với dữ liệu bằng các thao tác thích hợp
MySQL bao gồm nhiều loại dữ liệu được sử dụng để gắn nhãn và xác thực rằng các giá trị phù hợp với các loại thích hợp. Trong hướng dẫn này, chúng tôi sẽ thảo luận về các loại dữ liệu phổ biến nhất có sẵn trong MySQL, các định dạng đầu vào và đầu ra khác nhau mà chúng sử dụng và cách định cấu hình các trường khác nhau để đáp ứng nhu cầu của ứng dụng của bạn
Các kiểu dữ liệu trong MySQL là gì?
Trước khi đi vào chi tiết, chúng ta hãy có một cái nhìn bao quát về những loại dữ liệu mà MySQL cung cấp
MySQL hỗ trợ nhiều loại dữ liệu hợp lý phù hợp với nhiều loại dữ liệu đơn giản và phức tạp. Bao gồm các
3NUMERIC[5]
4NUMERIC[5]
5NUMERIC[5]
6NUMERIC[5]
7NUMERIC[5]
8NUMERIC[5]
9NUMERIC[5]
0NUMERIC[5, 2]
1NUMERIC[5, 2]
2NUMERIC[5, 2]
3NUMERIC[5, 2]
4NUMERIC[5, 2]
5NUMERIC[5, 2]
6NUMERIC[5, 2]
7NUMERIC[5, 2]
8NUMERIC[5, 2]
9NUMERIC[5, 2]
70NUMERIC[5]
71NUMERIC[5]
72NUMERIC[5]
73NUMERIC[5]
74NUMERIC[5]
75NUMERIC[5]
76NUMERIC[5]
77NUMERIC[5]
78NUMERIC[5]
79NUMERIC[5]
70NUMERIC[5]
71NUMERIC[5]
72NUMERIC[5]
73NUMERIC[5]
74NUMERIC[5]
Chúng tôi sẽ đề cập đến những điều phổ biến nhất trong số này sâu hơn trong suốt hướng dẫn này
Bắt đầu với kiểu dữ liệu MySQL
Khi bạn bắt đầu với các loại, điều quan trọng cần nhớ là các loại không phải lúc nào cũng là một giải pháp hoàn chỉnh để xác thực dữ liệu, mà là một thành phần. Các công cụ cơ sở dữ liệu khác, như các ràng buộc cũng có vai trò trong việc xác định tính chính xác. Tuy nhiên, các loại dữ liệu thường là tuyến phòng thủ đầu tiên chống lại dữ liệu không hợp lệ
Trong nhiều trường hợp, các loại chung do MySQL cung cấp phù hợp với các loại dữ liệu bạn sẽ lưu trữ. Ví dụ: trong khi bạn có thể lưu trữ tọa độ của một điểm hình học trong hai cột số khác nhau, loại
75 được cung cấp được xây dựng nhằm mục đích lưu trữ và xác thực chính xác loại thông tin này. Khi chọn loại, hãy kiểm tra xem bạn có đang sử dụng loại cụ thể nhất áp dụng cho trường hợp sử dụng của mình không
NUMERIC[5]
Số và giá trị số
MySQL bao gồm một loạt các kiểu dữ liệu số phù hợp với các tình huống khác nhau. Loại thích hợp phụ thuộc vào bản chất chính xác của các giá trị bạn dự định lưu trữ cũng như các yêu cầu về độ chính xác của bạn
số nguyên
Kiểu dữ liệu số nguyên là một danh mục các loại được sử dụng để lưu trữ các số không có bất kỳ phân số hoặc số thập phân nào. Đây có thể là giá trị dương hoặc âm và các loại số nguyên khác nhau có thể lưu trữ các phạm vi số khác nhau. Các loại số nguyên có phạm vi giá trị chấp nhận được nhỏ hơn sẽ chiếm ít dung lượng hơn so với các loại có phạm vi rộng hơn
Danh sách cơ bản của các loại số nguyên bao gồm như sau
Integer typeLengthApplicable signed rangeApplicable unsigned range
31 bytes-128 to 1270 to 255
NUMERIC[5]
42 bytes-32768 to 327670 to 65535
NUMERIC[5]
53 bytes-8388608 to 83886070 to 16777215
NUMERIC[5]
64 bytes-2147483648 to 21474836470 to 4294967295
NUMERIC[5]
78 bytes-2^63 to 2^63-10 to 2^64-
NUMERIC[5]
Các loại trên bị giới hạn bởi phạm vi hợp lệ của chúng. Bất kỳ giá trị nào nằm ngoài phạm vi sẽ dẫn đến lỗi
Ngoài các loại được đề cập ở trên, MySQL cũng nhận ra một bí danh gọi là
81. Đánh dấu một cột là
NUMERIC[5]
81 sẽ cung cấp cho nó các thuộc tính này.
NUMERIC[5]
83. Điều này được sử dụng như một cách viết tắt cho các thuộc tính cột khóa chính phổ biến. Cột sẽ tự động gán một giá trị duy nhất mới bất cứ khi nào một bản ghi được thêm vào
NUMERIC[5]
điểm cố định
Các loại điểm cố định được sử dụng để kiểm soát mức độ chính xác hoặc độ đặc hiệu có thể có đối với một số có số thập phân. Trong MySQL, điều này có thể được kiểm soát bằng cách thao tác hai yếu tố. độ chính xác và quy mô
Độ chính xác là tổng số chữ số tối đa mà một số có thể có. Ngược lại, tỷ lệ là số chữ số ở bên phải dấu thập phân. Bằng cách thao tác với các số này, bạn có thể kiểm soát mức độ lớn của các thành phần phân số và không phải phân số của một số
Hai đối số này được sử dụng để kiểm soát độ chính xác tùy ý bằng cách sử dụng kiểu dữ liệu
84 hoặc
NUMERIC[5]
85 [hai kiểu này đồng nghĩa với nhau trong MySQL]. Loại
NUMERIC[5]
84 nhận từ 0 đến 2 đối số
NUMERIC[5]
Không có đối số, cột được định nghĩa là có độ chính xác là 10 và tỷ lệ là 0. Điều này có nghĩa là cột có thể chứa tối đa 10 chữ số, nhưng không có chữ số nào trong số này có thể nằm sau dấu thập phân
4
NUMERIC[5]
Khi một đối số duy nhất được cung cấp, nó được hiểu là độ chính xác của cột có tỷ lệ được đặt thành 0. Điều này cho phép bạn chỉ định số chữ số tối đa trong một số giống như số nguyên [không có thành phần phân số hoặc thập phân] một cách hiệu quả. Ví dụ: nếu bạn cần một số nguyên gồm 5 chữ số, bạn có thể chỉ định
NUMERIC[5]
Chỉ định độ chính xác theo sau là tỷ lệ khi định cấu hình cột bằng cả hai điều khiển. MySQL sẽ làm tròn thành phần thập phân của bất kỳ đầu vào nào thành số chữ số chính xác bằng cách sử dụng số tỷ lệ. MySQL sẽ sử dụng độ chính xác và tỷ lệ để xác định có bao nhiêu chữ số được phép ở phía bên trái của dấu thập phân. Nếu một mục vượt quá số chữ số cho phép, MySQL sẽ báo lỗi
Ví dụ: chúng ta có thể chỉ định một cột có tổng độ chính xác là 5 và tỷ lệ là 2
NUMERIC[5, 2]
Cột này sẽ có hành vi sau
Giá trị đầu vào Giá trị làm trònĐược chấp nhận [phù hợp với độ chính xác]?400. 28080400. 28Có8. 3327998. 33Có11799. 79911799. 80No1179911799No2802. 272802. 27Không
dấu phẩy động
Số dấu phẩy động là một cách khác để biểu thị số thập phân, nhưng không có độ chính xác nhất quán, chính xác. Thay vào đó, các loại dấu chấm động chỉ có khái niệm về độ chính xác tối đa thường liên quan đến kiến trúc và nền tảng của phần cứng
Ví dụ: để giới hạn cột dấu phẩy động ở độ chính xác 8 chữ số, bạn có thể sử dụng loại
0, lưu trữ kết quả bằng cách sử dụng 4 byte với độ chính xác từ 0 đến 23 chữ số
NUMERIC[5, 2]
7
NUMERIC[5]
Tương tự, loại
1 sử dụng 8 byte để lưu trữ dữ liệu và có thể sử dụng độ chính xác từ 24 đến 53 chữ số
NUMERIC[5, 2]
Do những lựa chọn thiết kế này, các số dấu phẩy động có thể hoạt động với các số có số thập phân lớn một cách hiệu quả, nhưng không phải lúc nào cũng chính xác. Biểu diễn bên trong của các số có thể gây ra sự khác biệt nhỏ giữa đầu vào và đầu ra. Điều này có thể gây ra hành vi không mong muốn khi so sánh các giá trị, thực hiện phép toán dấu phẩy động hoặc thực hiện các thao tác yêu cầu giá trị chính xác
Dấu phẩy động so với số
Cả hai số dấu phẩy động được cung cấp bởi các loại như
0 và
NUMERIC[5, 2]
1 và số dấu phẩy động được cung cấp bởi các loại
NUMERIC[5, 2]
9 hoặc
NUMERIC[5]
8 đều có thể được sử dụng để lưu trữ các giá trị thập phân. Làm thế nào để bạn biết cái nào để sử dụng?
NUMERIC[5]
Nguyên tắc chung là nếu bạn cần sự chính xác trong tính toán của mình, loại
9 luôn là lựa chọn tốt hơn. Loại
NUMERIC[5]
9 sẽ lưu trữ các giá trị chính xác như chúng được cung cấp, nghĩa là kết quả hoàn toàn có thể dự đoán được khi truy xuất hoặc tính toán các giá trị. Loại
NUMERIC[5]
9 được gọi là độ chính xác tùy ý vì bạn chỉ định mức độ chính xác mà loại yêu cầu và nó sẽ lưu số lượng chữ số chính xác đó trong trường
NUMERIC[5]
Ngược lại, các loại như
0 và
NUMERIC[5, 2]
1 là các loại có độ chính xác thay đổi. Mức độ chính xác mà chúng duy trì phụ thuộc vào giá trị đầu vào. Khi đạt đến mức độ chính xác cho phép, họ có thể làm tròn các chữ số còn lại, dẫn đến sự khác biệt giữa giá trị đã gửi và giá trị đã truy xuất
NUMERIC[5, 2]
Vì vậy, khi nào bạn sẽ sử dụng các loại độ chính xác thay đổi? . Độ chính xác thay đổi thường sẽ mang lại lợi ích về hiệu suất so với loại
9
NUMERIC[5]
các loại chuỗi
Các kiểu ký tự và kiểu chuỗi của MySQL có thể được đặt thành hai loại. chiều dài cố định và chiều dài thay đổi. Sự lựa chọn giữa hai điều này ảnh hưởng đến cách MySQL phân bổ không gian cho từng giá trị và cách nó xác thực đầu vào
Kiểu dữ liệu dựa trên ký tự đơn giản nhất trong MySQL là kiểu
21. Không có đối số, loại
NUMERIC[5]
21 chấp nhận một ký tự đơn làm đầu vào
NUMERIC[5]
7
NUMERIC[5]
Khi một số nguyên dương được cung cấp trong khai báo, cột
21 sẽ lưu trữ một chuỗi ký tự có độ dài cố định bằng số lượng ký tự được chỉ định
NUMERIC[5]
8
NUMERIC[5]
Nếu một chuỗi được cung cấp ít ký tự hơn, các khoảng trống sẽ được thêm vào để đệm độ dài
Đầu vào# của các ký tự đầu vàoGiá trị được lưu trữ# của các ký tự được lưu trữ'tree'4'tree '10
Nếu một chuỗi được cung cấp nhiều hơn số ký tự cho phép, MySQL sẽ báo lỗi. Là một ngoại lệ đối với quy tắc này, nếu các ký tự tràn đều là khoảng trắng, MySQL sẽ chỉ cắt bớt các khoảng trắng thừa để vừa với trường
Sự thay thế cho các trường ký tự có độ dài cố định là các trường có độ dài thay đổi. Đối với điều này, MySQL cung cấp loại
24. Loại
NUMERIC[5]
24 lưu trữ các ký tự không có kích thước cố định. Không giống như
NUMERIC[5]
21, không thể sử dụng
NUMERIC[5]
24 mà không chỉ định số lượng ký tự tối đa để lưu trữ
NUMERIC[5]
Bằng cách xác định một
24 với một số nguyên dương, bạn có thể đặt độ dài chuỗi tối đa
NUMERIC[5]
2
NUMERIC[5, 2]
Điều này khác với việc sử dụng loại
21 với một số nguyên ở chỗ
NUMERIC[5]
24 sẽ không đệm giá trị nếu đầu vào không đáp ứng độ dài trường tối đa
NUMERIC[5]
Đầu vào# của các ký tự đầu vàoGiá trị được lưu trữ# của các ký tự được lưu trữ'tree'4'tree'4
Nếu chuỗi lớn hơn độ dài tối đa, MySQL sẽ báo lỗi. Hành vi cắt xén tương tự hiện diện trong các trường
21 xảy ra ở đây. nếu các ký tự tràn là khoảng trắng, chúng sẽ bị cắt bớt để vừa với độ dài ký tự tối đa
NUMERIC[5]
MySQL cũng hỗ trợ các kiểu dữ liệu
62 và
NUMERIC[5, 2]
63. Chúng hoạt động theo cách tương tự như các loại
NUMERIC[5, 2]
21 và
NUMERIC[5]
24, nhưng lưu trữ các chuỗi nhị phân thay vì chuỗi ký tự. Điều này có ý nghĩa về cách chúng được lưu trữ và vận hành [đối với những thứ như so sánh, sắp xếp, v.v. ]
NUMERIC[5]
Đối với các loại
62 và
NUMERIC[5, 2]
63, số nguyên được cung cấp khi xác định loại cột biểu thị số byte thay vì số ký tự
NUMERIC[5, 2]
Hai kiểu dữ liệu khác mà MySQL cung cấp để lưu trữ chuỗi và ký tự là
68 và
NUMERIC[5, 2]
69. Các loại này hoạt động tương tự như các loại
NUMERIC[5, 2]
24 và
NUMERIC[5]
63 tương ứng và được dùng để lưu trữ các đối tượng lớn. Chúng hoạt động hầu hết giống như các đối tác của chúng, nhưng có một vài điểm khác biệt như không thể bắt đầu có các giá trị mặc định và yêu cầu độ dài tiền tố khi tạo chỉ mục
NUMERIC[5, 2]
Booleans
MySQL không thực sự có kiểu boolean riêng để biểu thị các giá trị đúng và sai
MySQL nhận ra các loại
62 hoặc
NUMERIC[5, 2]
63 trong nỗ lực tương thích với các hệ thống cơ sở dữ liệu khác. Tuy nhiên, triển khai nội bộ của nó sử dụng cột
NUMERIC[5, 2]
64 để lưu trữ các giá trị và diễn giải chúng là đúng hoặc sai dựa trên một bộ quy tắc
NUMERIC[5, 2]
Khi diễn giải các giá trị số trong ngữ cảnh boolean, giá trị của
65 được coi là sai. Tất cả các giá trị khác không được coi là đúng
NUMERIC[5, 2]
MySQL nhận ra các chữ boolean
66 và
NUMERIC[5, 2]
67 và chuyển đổi
NUMERIC[5, 2]
66 thành 1 và
NUMERIC[5, 2]
67 thành 0 khi lưu trữ chúng
NUMERIC[5, 2]
Ngày giờ
MySQL có hỗ trợ biểu diễn ngày, giờ và sự kết hợp của cả hai
ngày
Loại
00 có thể lưu trữ một ngày mà không có giá trị thời gian liên quan
NUMERIC[5]
2
NUMERIC[5]
Khi xử lý đầu vào cho
00 cột, MySQL có thể giải thích các định dạng khác nhau để xác định ngày chính xác để lưu trữ. Tuy nhiên, các bộ phận cấu thành phải luôn đi theo cùng một trình tự. năm, tháng, rồi ngày. Hàm
NUMERIC[5]
02 có sẵn để giúp chuyển đổi các định dạng ngày khác sang định dạng mà MySQL sẽ diễn giải chính xác
NUMERIC[5]
Khi hiển thị ngày, MySQL sử dụng định dạng
03. Bạn có thể sử dụng hàm
NUMERIC[5]
04 để định dạng đầu ra ở các định dạng khác
NUMERIC[5]
Loại
00 có thể lưu trữ các giá trị nằm trong khoảng từ
NUMERIC[5]
06 đến
NUMERIC[5]
07
NUMERIC[5]
Thời gian
Kiểu dữ liệu
08 có thể lưu trữ thời gian cụ thể trong ngày mà không có múi giờ hoặc ngày liên quan
NUMERIC[5]
Khi xử lý đầu vào cho cột
08, MySQL có thể giải thích nhiều định dạng để xác định thời gian chính xác để lưu trữ. Khi đầu vào có dấu hai chấm, nó thường được hiểu là
NUMERIC[5]
10. Bất kỳ giá trị rút ngắn nào [chỉ sử dụng một cột] sẽ được hiểu là sử dụng
NUMERIC[5]
11. Khi đầu vào không có dấu hai chấm, thời gian được xử lý để lấp đầy giá trị nhỏ nhất trước. Ví dụ:
NUMERIC[5]
12 được lấy là 10 phút 45 giây
NUMERIC[5]
MySQL cũng hỗ trợ giây phân số nếu dấu thập phân được đưa ra. Nó lưu trữ tới 6 chữ số chính xác sau dấu thập phân. Các giá trị trong cột
08 có thể nằm trong khoảng từ
NUMERIC[5]
14 đến
NUMERIC[5]
15
NUMERIC[5]
Khi hiển thị giá trị thời gian, MySQL sử dụng định dạng
10. Đối với ngày tháng, một chức năng được cung cấp, được gọi là
NUMERIC[5]
17 để hiển thị các giá trị thời gian bằng các định dạng khác
NUMERIC[5]
Dấu thời gian và ngày giờ
MySQL có thể biểu thị dấu thời gian, sự kết hợp của ngày và giờ được sử dụng để biểu thị một thời điểm cụ thể, theo hai biến thể khác nhau. sử dụng loại
18 và loại
NUMERIC[5]
19
NUMERIC[5]
Loại
19 có thể đại diện cho các giá trị từ
NUMERIC[5]
21 đến
NUMERIC[5]
22. Nó cũng có thể bao gồm giây phân số lên đến sáu chữ số tương tự như loại
NUMERIC[5]
08
NUMERIC[5]
Loại
18 có thể đại diện cho các giá trị từ
NUMERIC[5]
25 UTC đến
NUMERIC[5]
26 UTC. Nó cũng có thể xử lý giây phân số. Khi lưu trữ các giá trị
NUMERIC[5]
18, tất cả các giá trị được chuyển đổi từ múi giờ đã cho sang UTC để lưu trữ và được chuyển đổi trở lại múi giờ địa phương khi truy xuất. Loại
NUMERIC[5]
19 không làm điều này
NUMERIC[5]
Từ MySQL 8. 0. 19 trở đi, bạn có thể bao gồm phần bù múi giờ khi lưu trữ một
18 để đặt rõ ràng múi giờ cho giá trị được lưu trữ. Bạn làm điều này bằng cách bao gồm một giá trị sau thành phần thời gian, không có khoảng trống để biểu thị độ lệch. Phạm vi của các giá trị được chấp nhận đi từ
NUMERIC[5]
30 đến
NUMERIC[5]
31, đại diện cho phần bù của giá trị được lưu trữ từ UTC
NUMERIC[5]
Khi quyết định lưu trữ các giá trị ngày và giờ bằng cách sử dụng các loại
19 hoặc
NUMERIC[5]
33, việc phân tách chúng theo mục đích sử dụng tốt nhất thường rất hữu ích.
NUMERIC[5]
Hãy coi các giá trị
19 là một ngày và giờ cụ thể, trong mối quan hệ với lịch và đồng hồ ở bất kỳ nơi nào nó được truy xuất. Nếu một người đi ngủ lúc 11 giờ đêm, giá trị
NUMERIC[5]
19 có thể đại diện cho giá trị đó, bất kể người đó hiện đang ở múi giờ nào
NUMERIC[5]
Mặt khác, các giá trị
33 thể hiện tốt nhất một thời điểm cụ thể, rõ ràng giữa các múi giờ. Để gửi lời mời gọi video, giá trị
NUMERIC[5]
33 sẽ có thể đảm bảo cuộc họp diễn ra cùng lúc cho mọi người, bất kể người tham gia đang ở múi giờ nào
NUMERIC[5]
Các loại hữu ích khác
Cùng với các loại chúng tôi đã trình bày ở một số chuyên sâu ở trên, còn có các loại bổ sung hữu ích trong các tình huống cụ thể. Chúng tôi sẽ trình bày ngắn gọn về những điều này để cung cấp cho bạn ý tưởng về cách sử dụng chúng và khi nào chúng có thể hữu ích
liệt kê và thiết lập các loại
Hai loại liên quan cho phép người dùng chỉ định các giá trị hợp lệ cho một cột là loại
38 và
NUMERIC[5]
39
NUMERIC[5]
Loại
38 là loại chuỗi cho phép người dùng xác định tập hợp các giá trị hợp lệ khi cột được tạo. Bất kỳ giá trị nào khớp với một trong các giá trị đã xác định đều được chấp nhận và tất cả các giá trị khác đều bị từ chối. Chức năng này tương tự như menu thả xuống ở chỗ có thể đưa ra lựa chọn từ một tập hợp các tùy chọn cụ thể. Ví dụ: một
NUMERIC[5]
38 có tên là
NUMERIC[5]
42 có thể được tạo với các giá trị
NUMERIC[5]
43,
NUMERIC[5]
44,
NUMERIC[5]
45 và
NUMERIC[5]
46
NUMERIC[5]
Để tạo một cột
38, hãy chỉ định loại là
NUMERIC[5]
38, cung cấp các giá trị có thể có dưới dạng các chuỗi, được phân tách bằng dấu phẩy, bên trong một tập hợp các dấu ngoặc đơn, như thế này
NUMERIC[5]
6
NUMERIC[5, 2]
Một loại tương tự của loại do người dùng định nghĩa là loại
39. Giống như loại
NUMERIC[5]
38, loại
NUMERIC[5]
39 cho phép người dùng chỉ định các giá trị hợp lệ dưới dạng chuỗi theo định nghĩa. Sự khác biệt giữa hai loại này là trong một
NUMERIC[5]
39, có thể lưu trữ nhiều hơn một giá trị cho mỗi bản ghi
NUMERIC[5]
Ví dụ: nếu bạn cần một cột để biểu thị các ngày trong tuần mà các tình nguyện viên sẵn sàng làm việc, bạn có thể có một cột
39 như thế này
NUMERIC[5]
6
NUMERIC[5, 2]
Khi nhập các giá trị cho cột
54 mà chúng ta vừa tạo, bạn cung cấp một chuỗi duy nhất có dấu phẩy ngăn cách tất cả các ngày mà tình nguyện viên có mặt. Ví dụ
NUMERIC[5]
0
NUMERIC[5]
Đối với các loại
39 trong MySQL, các giá trị trùng lặp trong đầu vào luôn bị xóa và khi truy xuất, các giá trị tuân theo thứ tự được sử dụng trong định nghĩa
NUMERIC[5]
39 bất kể thứ tự khi nhập vào cột
NUMERIC[5]
JSON
MySQL hỗ trợ các cột trong JSON sử dụng loại
57. Dữ liệu được lưu trữ dưới dạng
NUMERIC[5]
57 được lưu trữ ở dạng nhị phân để thực thi và xử lý nhanh hơn để máy chủ không phải diễn giải một chuỗi để hoạt động trên các giá trị
NUMERIC[5]
74
NUMERIC[5]
1
NUMERIC[5]
Để hoạt động trên các cột
74, MySQL cung cấp một số hàm để hoạt động với các giá trị trong tài liệu
NUMERIC[5]
Phần kết luận
Trong bài viết này, chúng tôi đã đề cập đến rất nhiều loại dữ liệu phổ biến nhất hữu ích khi làm việc với cơ sở dữ liệu MySQL. Có các loại bổ sung không được đề cập trong hướng dẫn này rất hữu ích để biết, nhưng những loại này là điểm khởi đầu tốt cho hầu hết các trường hợp sử dụng
Điều quan trọng là sử dụng hệ thống loại một cách thích hợp để bạn có thể kiểm soát các giá trị hợp lệ và thao tác trên dữ liệu như mong đợi. Có những cạm bẫy mà bạn có thể gặp phải nếu chọn loại không phù hợp với dữ liệu của mình, vì vậy, hãy suy nghĩ kỹ trước khi cam kết sử dụng một loại dữ liệu trong hầu hết các trường hợp
Nếu bạn đang sử dụng Máy khách Prisma để làm việc với cơ sở dữ liệu MySQL của mình, bạn có thể tìm thấy ánh xạ giữa một số loại MySQL và Prisma phổ biến trong tài liệu trình kết nối dữ liệu MySQL của Prisma
LIÊN QUAN ĐẾN PRISMA. IO
Trong mô hình dữ liệu được lược đồ Prisma sử dụng, các kiểu dữ liệu được biểu diễn bằng các loại trường. Kiểm tra tài liệu của chúng tôi để tìm hiểu thêm
Prisma là bộ công cụ cơ sở dữ liệu mã nguồn mở dành cho Typescript và Node. js nhằm mục đích giúp các nhà phát triển ứng dụng làm việc hiệu quả và tự tin hơn khi làm việc với cơ sở dữ liệu
Câu hỏi thường gặp
Phạm vi của kiểu dữ liệu `DECIMAL` trong MySQL là gì?
Cú pháp khai báo cho cột
8 là
NUMERIC[5]
62. Phạm vi giá trị cho các đối số như sau
NUMERIC[5]
- M là số chữ số tối đa [độ chính xác]. Nó có phạm vi từ 1 đến 65
- D là số chữ số ở bên phải dấu thập phân [tỷ lệ]. Nó có phạm vi từ 0 đến 30 và không được lớn hơn M
MySQL lưu trữ `TEXT` như thế nào?
Các yêu cầu lưu trữ đối với các loại chuỗi trong MySQL có thể được trình bày trong bảng sau với L biểu thị độ dài thực tính bằng byte của một giá trị chuỗi đã cho
Loại dữ liệu Lưu trữ Yêu cầuTINYTEXTL + 1 byte, trong đó L < 2^8TEXTL + 2 byte, trong đó L < 2^16MEDIUMTEXTL + 3 byte, trong đó L < 2^24LONGTEXTL + 4 byte, trong đó L < 2^32
Sự khác biệt giữa `TEXT` và `VARCHAR` trong MySQL là gì?
73 và
NUMERIC[5]
9 tương tự lưu trữ các ký tự không có kích thước cố định
NUMERIC[5, 2]
9 khác vì nó không thể được sử dụng mà không chỉ định số lượng ký tự tối đa để lưu trữ trong khi
NUMERIC[5, 2]
73 không yêu cầu điều này
NUMERIC[5]
Cú pháp định nghĩa ví dụ của một
9 sẽ như thế này
NUMERIC[5, 2]
2
NUMERIC[5, 2]
Độ dài tối đa của `VARCHAR` trong MySQL là bao nhiêu?
Các giá trị trong cột
9 là các chuỗi có độ dài thay đổi. Độ dài tối đa có thể được chỉ định là một giá trị từ 0 đến 65,535
NUMERIC[5, 2]
Độ dài tối đa hiệu quả của một
9 tùy thuộc vào kích thước hàng tối đa trong số tất cả các cột [65.535 byte]
NUMERIC[5, 2]
Các loại `ENUM` được lưu trữ trong MySQL như thế nào?
74 là một loại lưu trữ thuận lợi trong trường hợp một cột có một tập hợp giới hạn các giá trị có thể
NUMERIC[5]
Nó có các yêu cầu lưu trữ giống như tất cả các cột
Loại dữ liệuLưu trữ Yêu cầuENUM1 hoặc 2 byte, tùy thuộc vào số lượng giá trị liệt kê [tối đa 65.535 giá trị]
Kiểu dữ liệu nào được sử dụng cho ngày tháng?
Kiểu dữ liệu ngày là kiểu dữ liệu trừu tượng . Giá trị ngày có thể là ngày và giờ tuyệt đối hoặc khoảng thời gian. Ngày được chỉ định dưới dạng chuỗi ký tự được trích dẫn.Kiểu dữ liệu nào là một ngày SQL?
Kiểu dữ liệu ngày và giờLàm cách nào để chèn kiểu dữ liệu ngày trong MySQL?
Để chạy lệnh Chèn MySQL và thêm ngày hiện tại vào bảng của bạn, bạn có thể sử dụng hàm tích hợp sẵn của MySQL CURDATE[] trong truy vấn của mình.Ngày trong MySQL có phải là một chuỗi không?
MySQL nhận dạng các giá trị NGÀY ở các định dạng này. Dưới dạng chuỗi ở định dạng ' YYYY-MM-DD ' hoặc ' YY-MM-DD ' . Một cú pháp "thoải mái" được cho phép. Bất kỳ ký tự dấu chấm câu nào cũng có thể được sử dụng làm dấu phân cách giữa các phần ngày.