decimal 占位吗 负数_mysql – 用于存储负数的正确数据类型

我必须保存值-1.使用tinyint(1)或tinyint(2)的数据类型更正确吗?为什么?

我知道我也可以使用tinyint tinyint(1)存储更多数字,但我想知道你在我的情况下使用了什么.

解决方法:

您可以使用DECIMAL,它可能是存储负数的最佳数据类型.

Standard SQL requires that DECIMAL(5,2) be able to store any value

with five digits and two decimals, so values that can be stored in the

salary column range from -999.99 to 999.99

虽然在您的情况下您可以使用TINYINT(1),因为它需要1个字节的存储空间,其范围是-128到127.

在旁注:

M indicates the maximum display width for integer types. The maximum

display width is 255. Display width is unrelated to the range of

values a type can contain, as described in Section 11.2, “Numeric

Types”. For floating-point and fixed-point types, M is the total

number of digits that can be stored.

标签:mysql

来源: https://codeday.me/bug/20190708/1407198.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Java中使用JDBC连接数据库进行插入操作,可以使用PreparedStatement来插入Decimal类型字段。示例代码如下: ``` String sql = "INSERT INTO table_name (decimal_column) VALUES (?)"; PreparedStatement statement = connection.prepareStatement(sql); statement.setBigDecimal(1, new BigDecimal("123.45")); statement.executeUpdate(); ``` 这里需要注意的是,在这个示例中,decimal_column是表中Decimal类型字段,并且我们使用setBigDecimal方法将值123.45插入了该字段。 ### 回答2: 在Java中,向数据库中类型Decimal字段插入数据可以通过以下步骤完成: 1. 首先,需要确保已经通过JDBC连接到数据库。可以使用JDBC的相关API完成这一步骤。 2. 定义要插入的数据,包括Decimal类型字段的值。可以使用Java的BigDecimal类来表示Decimal类型的数据。 3. 创建一个PreparedStatement对象,该对象用于执行插入操作。可以使用Connection对象的prepareStatement方法创建PreparedStatement对象,并传入SQL插入语句。 4. 针对Decimal类型字段,需要使用setBigDecimal方法设置相应的值。例如,如果要将值为10.5的Decimal类型数据插入到字段decimalField中,可以使用setBigDecimal方法将BigDecimal对象new BigDecimal("10.5")作为参数传入。 5. 使用executeUpdate方法执行插入操作。可以通过调用PreparedStatement对象的executeUpdate方法执行插入操作,并返回受影响的行数。 6. 最后,记得关闭PreparedStatement对象和数据库连接。可以使用close方法来关闭对象和连接。 以下是一个示例代码,用于向数据库中的Decimal类型字段插入数据: ```java import java.sql.*; public class InsertDecimalData { public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; try { // JDBC连接数据库 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password"); // 定义要插入的Decimal类型数据 BigDecimal decimalValue = new BigDecimal("10.5"); // 创建PreparedStatement对象 String sql = "INSERT INTO mytable (decimalField) VALUES (?)"; pstmt = conn.prepareStatement(sql); // 设置Decimal类型字段的值 pstmt.setBigDecimal(1, decimalValue); // 执行插入操作 int rowsAffected = pstmt.executeUpdate(); System.out.println("插入了 " + rowsAffected + " 行数据"); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭PreparedStatement对象和数据库连接 try { if (pstmt != null) { pstmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 以上就是使用Java向数据库中类型Decimal字段插入数据的步骤和示例代码。 ### 回答3: 在Java中,可以使用BigDecimal类向数据库中类型Decimal字段插入数据。 首先,需要导入java.math.BigDecimal类: ```java import java.math.BigDecimal; ``` 然后,创建一个BigDecimal对象,用于存储要插入的Decimal类型数据: ```java BigDecimal decimalValue = new BigDecimal("123.45"); ``` 接下来,使用预处理语句(Prepared Statement)来执行数据库插入操作。预处理语句可以防止SQL注入攻击,并且提高执行效率。 假设已经建立了数据库连接对象conn,需要向名为tableName的表格中的decimalColumn字段插入数据,可以使用以下代码: ```java String sql = "INSERT INTO tableName (decimalColumn) VALUES (?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setBigDecimal(1, decimalValue); // 设置第一个占位符的值为decimalValue pstmt.executeUpdate(); // 执行插入操作 ``` 最后,需要注意的是,数据库中Decimal类型字段的精度和小数位数可能会有要求,插入的数据需要满足这些要求才能插入成功。 通常,在建表时可以指定Decimal字段的精度和小数位数,例如: ```sql decimalColumn DECIMAL(10, 2) ``` 表示精度为10,小数位数为2的Decimal字段。如果插入的数据超出了这个范围,数据库可能会抛出异常。 希望以上回答能对您有所帮助,如有其他问题请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值