# 使用 DISTINCT 数据类型

> 原文： [https://docs.oracle.com/javase/tutorial/jdbc/basics/distinct.html](https://docs.oracle.com/javase/tutorial/jdbc/basics/distinct.html)

**注**：MySQL 和 Java DB 目前不支持`DISTINCT` SQL 数据类型。因此，没有 JDBC 教程示例可用于演示本节中描述的功能。

`DISTINCT`数据类型与其他高级 SQL 数据类型的行为不同。作为基于已存在的内置类型之一的用户定义类型，它没有接口作为 Java 编程语言中的映射。相反，`DISTINCT`数据类型的标准映射是其基础 SQL 数据类型映射到的 Java 类型。

为了说明，创建`DISTINCT`数据类型，然后查看如何检索，设置或更新它。假设您始终对状态使用双字母缩写，并且想要创建用于这些缩写的`DISTINCT`数据类型。您可以使用以下 SQL 语句定义新的`DISTINCT`数据类型：

```
CREATE TYPE STATE AS CHAR(2);

```

某些数据库使用备用语法创建`DISTINCT`数据类型，如以下代码行所示：

```
CREATE DISTINCT TYPE STATE AS CHAR(2);

```

如果一种语法不起作用，您可以尝试另一种语法。或者，您可以查看驱动程序的文档以查看其预期的确切语法。

这些语句创建一个新的数据类型`STATE`，它可以用作列值或 SQL 结构类型的属性值。因为`STATE`类型的值实际上是两个`CHAR`类型的值，所以使用相同的方法来检索它将用于检索`CHAR`值，即`getString`。例如，假设 `ResultSet _rs_`的第四列存储`STATE`类型的值，则以下代码行检索其值：

```
String state = rs.getString(4);

```

类似地，您将使用方法`setString`在数据库中存储`STATE`值，并使用方法`updateString`来修改其值。