Qual è la ragione per cui alcune persone provenienti da Oracle utilizzano DECIMAL (31,0) per i numeri interi. In MySQL non è efficiente.Motivo per utilizzare DECIMAL (31,0)
risposta
Oracle implementa il "integer" ANSI tipo di dati come sinonimo di NUMBER (38)
Per maggiori dettagli si veda "Learn Oracle: Datatypes for SQL and PL/SQL, Numbers"
Tuttavia, la seguente tabella dovrebbe essere usato come una mappatura tra tipo di dati in Oracle e MySQL:
"Oracle® Database SQL Developer Supplementary Information for MySQL Migrations"
Oracle e MySQL Rispetto> Tipi di dati> Confronto tra tipi di dati
La differenza principale, come spiegato here e here è che Oracle NUMERO datatype è formato a lunghezza variabile, mentre MySQL DECIMAL (n) tipo di dati utilizzato per essere represented as strings that require one byte per digit or sign character
(prima versione 5.0.3)
(Oracle NUMBER Tipo dati) Formato numerico interno
Oracle Database memorizza i dati numerici nel formato di lunghezza variabile. Ogni valore è memorizzato in notazione scientifica, con 1 byte utilizzato per memorizzare l'esponente e su a 20 byte per memorizzare la mantissa. Il valore risultante è limitato a 38 cifre di precisione. Oracle Database non memorizza gli zero iniziali e finali . Ad esempio, il numero 412 è memorizzato in un formato simile a 4,12 x 102, con 1 byte utilizzato per memorizzare l'esponente (2) e 2 byte utilizzati per memorizzare le tre cifre significative della mantissa (4,1 , 2). I numeri negativi includono il segno nella loro lunghezza.
Tenendo conto di ciò, la dimensione di colonna in byte per un particolare numerico NUMERO valore di dati (p), dove p è la precisione di un dato valore, può essere calcolato con la formula seguente:
ROUND((length(p)+s)/2))+1
dove s è uguale a zero se il numero è positivo, ed s è uguale a 1 se il numero è negativo.
Zero e positivo e negativo infinito (generato solo su importazione da Oracle Database, Versione 5) sono memorizzato utilizzando rappresentazioni uniche. infinito zero e negativo ciascuno richiedono 1 byte; infinito positivo richiede 2 byte.
e
(MySQL) DECIMAL dati Tipo Modifiche requisiti
l'archiviazione per la intero e parte frazionaria di ciascun valore vengono determinati separatamente. Ogni multiplo di nove cifre richiede quattro byte e le restanti cifre lasciate richiedono una frazione di quattro byte . [...]
Ad esempio, un DECIMAL (18,9) colonna ha nove cifre su entrambi i lati del punto decimale , quindi la parte intera e la parte frazionaria ogni richiede quattro byte. Una colonna DECIMAL (20,6) ha quattordici cifre intere e sei cifre frazionarie . Le cifre intere richiedono quattro byte per nove delle cifre e tre byte per le restanti cinque cifre . Le sei cifre frazionarie richiedono tre byte.
- 1. Motivo per non utilizzare LINQ
- 2. Quando utilizzare il motivo decorativo?
- 3. Rails 3 Float o decimal per le coordinate GPS
- 4. Qualsiasi motivo per non utilizzare '+' per concatenare due stringhe?
- 5. Azure DocumentDB Decimal Truncation
- 6. C# sizeof decimal?
- 7. Come usare MySQL DECIMAL?
- 8. SQL DataType Negative Decimal
- 9. Qualsiasi motivo per non utilizzare SQLObject su SQLAlchemy?
- 10. Qualche motivo per utilizzare NSViewAnimation su tecniche CoreAnimation?
- 11. Qualche motivo per non utilizzare USE_ETAGS con CommonMiddleware in Django?
- 12. Un buon motivo per utilizzare il modello di progettazione Visitor?
- 13. Python Decimal to String
- 14. Problema di conversione Decimal ToString() in C#
- 15. Motivo per saltare AOT?
- 16. Tipo di dati DECIMAL MySQL
- 17. Bash Multiplying Decimal to int
- 18. C# Casting to a decimal
- 19. Time to decimal time in Python
- 20. Ruby Big Decimal Rounding con numero fisso
- 21. Motivo per globals() in Python?
- 22. Qualche motivo per assegnare -0?
- 23. tipo/i di operando non supportato per *: 'float' e 'Decimal'
- 24. C'è mai un motivo per usare ":: template"?
- 25. Esiste un motivo tecnico per non utilizzare un TWebBrowser in Delphi per visualizzare Google Earth?
- 26. C'è qualche motivo per utilizzare Google GCM vs Apple messaging per le notifiche push?
- 27. C++: motivo per cui utilizzare ".hh" come estensione per i file di intestazione C++
- 28. C'è un motivo per utilizzare le lunghezze di Base2 per le colonne in SQL Server?
- 29. PHP bcmath rispetto a Python Decimal
- 30. ottenendo Ceil() di Decimal in python?