Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ฉันควรเก็บฟิลด์ PRICE เป็น int หรือ float ในฐานข้อมูลหรือไม่


คุณไม่จำเป็นต้องเก็บฟิลด์ PRICE เป็น int หรือ float ในฐานข้อมูล สำหรับสิ่งนี้ คุณสามารถตั้งค่า DECIMAL()..

จำนวนเต็มเวลาส่วนใหญ่สามารถใช้แทนจำนวนจุดทศนิยมและจำนวนเต็มเหล่านี้จะถูกแปลงเป็นประเภทข้อมูล DECIMAL() ภายใน ดังนั้น หากคุณมีฟิลด์ PRICE ให้ใช้ประเภทข้อมูล DECIMAL() เสมอ ไวยากรณ์มีดังนี้ −

ทศนิยม(M,D);

โดยที่ M แทนค่า 'TotalNumberOfDigit' และ D แทนค่า 'Number OfDigitAfterDecimalPoint'

เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราสร้างตารางที่มีฟิลด์ PRICE เป็นประเภทข้อมูล DECIMAL แบบสอบถามมีดังนี้ −

mysql> สร้างตาราง Decimal_Demo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> PRICE DECIMAL(18,2), -> PRIMARY KEY(Id) -> );Query OK, 0 แถวได้รับผลกระทบ (1.63 วินาที) 

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า Decimal_Demo(PRICE) (99999999999999.99) เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที)mysql> แทรกลงในค่า Decimal_Demo(PRICE) (10000000000000.99); เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.36 วินาที) 

ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก Decimal_Demo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+----+-------------------+| รหัส | ราคา |+----+-------------------+| 1 | 99999999999999.99 || 2 | 10000000000000.99 |+----+-------------------+2 แถวในชุด (0.00 วินาที)