如何使用JDBC创建包含十进制值的表?
一种非无符号的解包浮点数。在解包的十进制数中,每个十进制数对应一个字节。需要定义显示长度 (M) 和小数位数 (D)。NUMERIC 是 DECIMAL 的同义词。
要定义一个列,其数据类型为十进制值,请遵循以下语法:
column_name DECIMAL(P,D);
其中:
- P 表示精度,表示数字位数(范围为 1 到 65)
- D 表示小数位数,表示小数点后的数字位数。
注意:在 MySQL 中,D 应小于等于 P。
您可以如下所示在 MySQL 中创建一个包含十进制值的表:
CREATE TABLE Students( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, PERCENTAGE DECIMAL (18, 2), ADDRESS VARCHAR (25), PRIMARY KEY (ID) );
要使用 JDBC API 在数据库中创建一个数据类型为十进制值的表,您需要:
- 注册驱动程序:使用 **DriverManager** 类的 **registerDriver()** 方法注册驱动程序类。将驱动程序类名作为参数传递给它。
- 建立连接:使用 **DriverManager** 类的 **getConnection()** 方法连接到数据库。将 URL(字符串)、用户名(字符串)、密码(字符串)作为参数传递给它。
- 创建语句:使用 Connection 接口的 **createStatement()** 方法创建一个 Statement 对象。
- 执行查询:使用 Statement 接口的 execute() 方法执行 CREATE 查询。
示例
以下 JDBC 程序建立与 MySQL 的连接,并创建一个名为 customers 的表,其中一列的数据类型为 DECIMAL:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class CreateTableExample {
public static void main(String args[]) throws SQLException {
//Registering the Driver
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//Getting the connection
String mysqlUrl = "jdbc:mysql:///SampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
System.out.println("Connection established......");
//Creating the Statement
Statement stmt = con.createStatement();
//Query to create a table
String query = "CREATE TABLE Students("
+ "ID INT NOT NULL, "
+ "NAME VARCHAR (20) NOT NULL, "
+ "AGE INT NOT NULL, "
+ "PERCENTAGE DECIMAL(18, 2), "
+ "ADDRESS VARCHAR (25) , "
+ "PRIMARY KEY (ID))";
stmt.execute(query);
System.out.println("Table Created......");
}
}输出
Connection established...... Table Created......
验证
您可以使用 Describe 命令验证已创建表的数据库类型,如下所示:
mysql> describe customers; +------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------+------+-----+---------+-------+ | ID | int(11) | NO | PRI | NULL | | | NAME | varchar(20) | NO | | NULL | | | AGE | int(11) | NO | | NULL | | | PERCENTAGE | decimal(18,2) | YES | | NULL | | | ADDRESS | varchar(25) | YES | | NULL | | +------------+---------------+------+-----+---------+-------+ 5 rows in set (0.06 sec)
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP