Oracle Schema Objects——Tables——Oracle Data Types


Character Data Types

字符数据类型

      • Character data types store character (alphanumeric) data in strings.

字符数据类型存储在字符串中的字符 (字母或数字) 数据。

      • The most commonly used character data type is VARCHAR2, which is the most efficient option for storing character data.

最常用的字符数据类型是 VARCHAR2,它是用于存储字符数据的最有效的选项。

      • The byte values correspond to the character encoding scheme, generally called a character set or code page. The database character set is established at database creation.

与字符编码模式相对应的字节值,一般称为 字符集或 代码页。 数据库字符集是在数据库创建时建立的。

      • Examples of character sets are 7-bit ASCII, EBCDIC, and Unicode UTF-8.

字符集的例子有 7 位 ASCII 码、 EBCDIC码、和 Unicode utf-8。

      • The length semantics of character data types can be measured in bytes or characters.

字符数据类型的长度语义可以以字节或字符为单位。

      • Byte semantics treat strings as a sequence of bytes. This is the default for character data types.

字节语义将字符串视为一个字节序列。 这是字符数据类型的默认值。

      • Character semantics treat strings as a sequence of characters. A character is technically a code point of the database character set.

字符语义将字符串视为字符序列。 一个字符在技术上是数据库字符集的编码点。

VARCHAR2 、CHAR NCHAR、NVARCHAR2

Oracle Database compares VARCHAR2 values using nonpadded comparison semantics and compares CHAR values using blank-padded comparison semantics.

Oracle 数据库将使用非填充比较语义来比较 VARCHAR2 值,而使用空白填充比较语义来比较 CHAR 值。


VARCHAR2


CHAR


The VARCHAR2 data type stores variable-length character literals.

VARCHAR2 数据类型存储变长字符文本。

The terms literal and constant value are synonymous and refer to a fixed data value.

文本和常量值这两个术语是同义词,指的是一个固定的数据值


CHAR stores fixed-length character strings.

CHAR 存储固定长度的字符串


VARCHAR2(25):表示该列中存储的名字最多可以长达25个字节

      • When you create a table with a CHAR column, the column requires a string length. The default is 1 byte.

当创建一个有CHAR 列的表时,需要为该列指定一个字符串长度。默认值是 1 个字节。

      • The database uses blanks to pad the value to the specified length.

数据库使用空格填充到指定的长度的值。


NVARCHAR2


NCHAR


NVARCHAR2 和 NCHAR 数据类型存储 Unicode 字符数据。

Unicode 是一种通用的编码字符集,可以将任何语言的信息存储在一种字符集中。

当您创建数据库时,指定国家字符集。

NCHAR 和 NVARCHAR2 数据类型的字符集必须是 AL16UTF16 或 UTF8。

这两种字符集都使用 Unicode 编码。

当您创建一个有 NCHAR 或 NVARCHAR2 列的表时,其最大大小始终是字符长度语义。

对于 NCHAR 或 NVARCHAR2,字符长度语义是默认的,也是唯一的长度语义。


The NCHAR and NVARCHAR2 data types store Unicode character data.

Unicode is a universal encoded character set that can store information in any language using a single character set.

NCHAR stores fixed-length character strings that correspond to the national character set, whereas NVARCHAR2 stores variable length character strings.

You specify a national character set when creating a database.

The character set of NCHAR and NVARCHAR2 data types must be either AL16UTF16 or UTF8.

Both character sets use Unicode encoding.

When you create a table with an NCHAR or NVARCHAR2 column, the maximum size is always in character length semantics.

Character length semantics is the default and only length semantics for NCHAR or NVARCHAR2.


NVARCHAR2 存储可变长度的字符串


NCHAR存储对应于国家字符集的固定长度字符串


Numeric Data Types

数字数据类型

      • The Oracle Database numeric data types store fixed and floating-point numbers, zero, and infinity.

Oracle 数据库的数字数据类型存储固定和浮点数字、零、或无穷。

      • Some numeric types also store values that are the undefined result of an operation, which is known as "not a number" or NAN.

某些数值类型也可以存储未定义操作的结果值,叫做"非数字"或 NAN。

      • Oracle Database stores numeric data in variable-length format. Each value is stored in scientific notation, with 1 byte used to store the exponent.

Oracle 数据库以变长格式存储数字数据。用科学计数法存储值,其中一个字节用于存储指数。

      • The database uses up to 20 bytes to store the mantissa, which is the part of a floating-point number that contains its significant digits.

数据库使用最多 20 个字节存储尾数,即浮点数的有效位数部分。

      • Oracle Database does not store leading and trailing zeros.

Oracle 数据库不会存储前导零和结尾零。

NUMBER Data Type

      • The NUMBER data type stores fixed and floating-point numbers.

NUMBER 数据类型存储固定和浮点数字。

      • The database can store numbers of virtually any magnitude.

数据库可以存储几乎任何规模的数字。

      • This data is guaranteed to be portable among different operating systems running Oracle Database.

此数据保证在运行 Oracle 数据库的不同操作系统之间可移植。

      • The NUMBER data type is recommended for most cases in which you must store numeric data.

大多数情况下,当您必须存储数值数据时,推荐使用 NUMBER 数据类型。

      • You specify a fixed-point number in the form NUMBER(p,s), where p and s refer to the following characteristics:

按 NUMBER(p,s)的形式定义定点数,p 和 s 有以下特征:


精度

Precision


he precision specifies the total number of digits.

精度指定数字的总长度。

If a precision is not specified, then the column stores the values exactly as provided by the application without any rounding.

如果不指定精度,则列按应用程序提供的数据存储值,不作任何舍入。


小数位数

Scale


The scale specifies the number of digits from the decimal point to the least significant digit.

小数位数指从十进制的小数点到最小有效数字的位数。

Positive scale counts digits to the right of the decimal point up to and including the least significant digit.

正小数位数从小数点向右计数直至最小有效位。

Negative scale counts digits to the left of the decimal point up to but not including the least significant digit.

负小数位数从小数点向左计数直至(但不包括)最小有效数字。

If you specify a precision without a scale, as in NUMBER(6), then the scale is 0.

如果您指定了精度但没有指定小数位数,如 NUMBER(6),那么小数位数为 0。

Floating-Point Numbers

      • Oracle Database provides two numeric data types exclusively for floating-point numbers: BINARY_FLOAT and BINARY_DOUBLE.

Oracle 数据库为浮点数提供了两种互斥的数值数据类型: BINARY_FLOAT和 BINARY_DOUBLE。

      • These types support all of the basic functionality provided by the NUMBER data type.

这两种类型支持所有 NUMBER 数据类型提供的基本功能。

      • However, while NUMBER uses decimal precision, BINARY_FLOAT and BINARY_DOUBLE use binary precision, which enables faster arithmetic calculations and usually reduces storage requirements.

然而,相比 NUMBER使用十进制精度,BINARY_FLOAT 和BINARY_DOUBLE 使用二进制精度,可以使算术计算更快并且通常可以降低存储需求。

      • BINARY_FLOAT and BINARY_DOUBLE are approximate numeric data types.

BINARY_FLOAT 和 BINARY_DOUBLE 是近似数字数据类型。

      • They store approximate representations of decimal values, rather than exact representations.

它们存储十进制的值的近似表示,而不是精确的表示形式。

      • For example, the value 0.1 cannot be exactly represented by either BINARY_DOUBLE or BINARY_FLOAT.

例如值 0.1不能用BINARY_DOUBLE 或 BINARY_FLOAT 完全精确地表示。他们经常用于科学计算。

      • They are frequently used for scientific computations. Their behavior is similar to the data types FLOAT and DOUBLE in Java and XMLSchema.

其行为类似于 Java 或 XMLSchema 中的 FLOAT 和 DOUBLE 数据类型。


Datetime Data Types

日期时间数据类型


Datetime Data Types

The datetime data types are DATE and TIMESTAMP. Oracle Database provides comprehensive time zone support for time stamps.

日期时间数据类型包括 DATE和 TIMESTAMP。Oracle 数据库为时间戳提供全面的时区支持。


DATE Data Type


The DATE data type stores date and time. Although datetimes can be represented in character or number data types, DATE has special associated properties.

DATE 数据类型存储日期和时间。尽管日期时间可以用字符或数字数据类型表示,DATE 具有特殊的相关属性。

The database stores dates internally as numbers. Dates are stored in fixed-length fields of 7 bytes each, corresponding to century, year, month, day, hour, minute, and second.

数据库在内部将日期存储为数字。日期被存储为固定长度的域,共 7 个字节,分别对应世纪、 年、 月、 日、 小时、分、和秒。

Note:

  • The database displays dates according to the specified format model.

数据库根据指定的 格式模型显示日期。

  • A format model is a character literal that describes the format of a datetime in a character string. The standard date format is DD-MON-RR, which displays dates in the form 01-JAN-09.

格式模型是一个描述在字符串中的日期时间格式的字符文字。标准的日期格式是 DD-MON-RR,它会以 01-JAN-09 的形式显示日期。

  • RR is similar to YY (the last two digits of the year), but the century of the return value varies according to the specified two-digit year and the last two digits of the current year.

RR类似于 YY (年的最后两位),但返回值的世纪值会因指定的两位年份及本年度的最后两位不同而不同

  • Assume that in 1999 the database displays 01-JAN-09. If the date format uses RR, then 09 specifies 2009, whereas if the format uses YY, then 09 specifies 1909. You can change the default date format at both the instance and the session level.

假设在 1999 年,数据库显示为 01-JAN-09。如果日期格式使用 RR,那么 09 指的是 2009,而如果格式使用 YY,那么 09 指的是 1909。您可以更改实例或会话级别的默认日期格式

  • Oracle Database stores time in 24-hour format—HH:MI:SS. If no time portion is entered, then by default the time in a date field is 00:00:00 A.M. In a time-only entry, the date portion defaults to the first day of the current month.

Oracle 数据库以 24 小时制格式存储时间 — — HH:MI:SS。如果不输入的任何时间部分,那么默认情况下,日期字段中的时间是凌晨 00: 00: 00,如果只输入了时间,则日期部分默认为当月的第一天。


TIMESTAMP Data Type

      • The TIMESTAMP data type is an extension of the DATE data type.

TIMESTAMP 数据类型是日期数据类型的扩展

      • It stores fractional seconds in addition to the information stored in the DATE data type.

除了存储在 DATE 数据类型的信息,它同时还存储秒的小数部分。

      • The TIMESTAMP data type is useful for storing precise time values, such as in applications that must track event order.

TIMESTAMP 数据类型对于存储精确时间的值很有用,比如那些必须跟踪事件顺序的应用程序。

      • The DATETIME data types TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE are time-zone aware.

DATETIME 数据类型 TIMESTAMP WITH TIME ZONE 和TIMESTAMP WITH LOCAL TIME ZONE 能感知时区。

      • When a user selects the data, the value is adjusted to the time zone of the user session. This data type is useful for collecting and evaluating date information across geographic regions.

当用户中选择数据时,其值会被调整以适配用户会话的时区。此数据类型可用于收集和评估各地理区域的日期信息。


Rowid Data Types

ROWI数据类型


Rowid Data Types

Every row stored in the database has an address. Oracle Database uses a ROWID data type to store the address (rowid) of every row in the database. Rowids fall into the following categories:

存储在数据库中的每一行都有一个地址。Oracle 数据库使用 ROWID 数据类型存储在数据库中的每一行的地址 (rowid)。Rowids 分为以下几类:


物理 rowids


Physical rowids store the addresses of rows in heap-organized tables, table clusters, and table and index partitions.

存储堆组织表、 表簇、表分区、和索引分区中的行地址。


逻辑 rowids


存储索引组织表中的行地址。

Logical rowids store the addresses of rows in index-organized tables.


外部 rowids


Foreign rowids are identifiers in foreign tables, such as DB2 tables accessed through a gateway. They are not standard Oracle Database rowids.

外来表(如通过网关访问的 DB2 表)中的标识符。他们不是标准的 Oralce 数据库 rowids。

A data type called the universal rowid, or UROWID, supports all kinds of rowids.

有一种数据类型称为用 通用 rowid 或 UROWID,支持各种 rowids。

Use of Rowids

Oracle Database uses rowids internally for the construction of indexes.

Oracle 数据库在内部使用 rowids用于构造索引,

A B-tree index, which is the most common type, contains an ordered list of keys divided into ranges. Each key is associated with a rowid that points to the associated row‘s address for fast access.

最常见的 B 树索引,包含一个被划分成多个键范围的排序列表。每个键都与一个指向关联的行地址的rowid 相关联,用于快速访问。

End users and application developers can also use rowids for several important functions:

最终用户和应用程序开发人员也可以使用rowids 的几个重要功能:

  • Rowids are the fastest means of accessing particular rows.

Rowids 是访问特定行的最快方式。

  • Rowids provide the ability to see how a table is organized.

Rowids 提供了查看表的组织方式的能力。

  • Rowids are unique identifiers for rows in a given table.

Rowids 是给定表中的行的唯一标识符。

You can also create tables with columns defined using the ROWID data type. For example, you can define an exception table with a column of data type ROWID to store the rowids of rows that violate integrity constraints. Columns defined using the ROWID data type behave like other table columns: values can be updated, and so on.

您也可以创建带 ROWID 数据类型列的表。例如,您可以定义一个异常表,其中一列为 ROWID 数据类型,以存储违反了完整性约束的行 rowids。使用ROWID 数据类型定义的列像其他表中的列一样, 其值可以更新,等等。

ROWID Pseudocolumn

  • Every table in an Oracle database has a pseudocolumn named ROWID.

Oracle 数据库中的每个表都有一个名为 ROWID 的 伪列。

  • A pseudocolumn behaves like a table column, but is not actually stored in the table.

伪列类似于表列,但实际上并不存储在表中。

  • You can select from pseudocolumns, but you cannot insert, update, or delete their values.

您可以从伪列中选择数据,但不能插入、更新、或删除它们的值。

A pseudocolumn is also similar to a SQL function without arguments. Functions without arguments typically return the same value for every row in the result set, whereas pseudocolumns typically return a different value for each row.

  • Values of the ROWID pseudocolumn are strings representing the address of each row.

伪列也类似于不带参数的 SQL 函数。不带参数的函数对于结果集中的每一行通常返回相同的值,而伪列通常为每个行返回不同的值。

  • These strings have the data type ROWID. This pseudocolumn is not evident when listing the structure of a table by executing SELECT or DESCRIBE, nor does the pseudocolumn consume space.

ROWID 伪列的值是表示的每个行的地址的字符串。这些字符串具有的数据类型 ROWID。在执行 SELECT 或 DESCRIBE 列出表的结构时,此伪列并不显示,它也不占用空间。

  • However, the rowid of each row can be retrieved with a SQL query using the reserved word ROWID as a column name.

但是,每个行的 rowid 可以通过使用保留字ROWID 作为列名的 SQL 查询来检索。

SQL> SELECT ROWID FROM employees WHERE employee_id = 100;

ROWID

------------------

AAAPecAAFAAAABSAAA


Format Models and Data Types

格式模型和数据类型


Format Models and Data Types

  • A format model is a character literal that describes the format of datetime or numeric data stored in a character string.

格式模型是一个字符文本,用来描述存储在一个字符串中的日期时间或数值数据的格式。

  • A format model does not change the internal representation of the value in the database.

格式模式不会更改数据库中的值的内部表示形式。

  • When you convert a character string into a date or number, a format model determines how the database interprets the string.

当您将一个字符串转换成日期或数字时,格式模型决定了数据库如何解释字符串。

  • In SQL, you can use a format model as an argument of the TO_CHAR and TO_DATE functions to format a value to be returned from the database or to format a value to be stored in the database.

在 SQL 中,你可以使用格式模型作为 TO_CHAR 和 TO_DATE 函数的参数,来格式化将从数据库中返回的一个值,或将存储到数据库中的一个值。

下面的语句选择部门 80 中的雇员的薪水,并使用 TO_CHAR 函数来将这些薪水的值,转换为以数字格式模型 ‘$ 99,990.99‘ 指定的字符值:

SQL> SELECT last_name employee, TO_CHAR(salary, ‘$99,990.99‘)

2 FROM employees

3 WHERE department_id = 80 AND last_name = ‘Russell‘;

EMPLOYEE TO_CHAR(SAL

------------------------- -----------

Russell $14,000.00

下面的示例更新一个雇佣日期,使用 TO_DATE 函数与格式掩码 ‘YYYYMM DD‘ 将字符串 ‘1998 05 20‘ 转换为日期值。

SQL> UPDATE employees

2 SET hire_date = TO_DATE(‘1998 05 20‘,‘YYYY MM DD‘)

3 WHERE last_name = ‘Hunold‘;


其他内建类型


Other important categories of built-in types include raw, large objects (LOBs), and collections. PL/SQL has data types for constants and variables, which include BOOLEAN, reference types, composite types (records), and user-defined types.

RAW、大对象 (LOB)、 和集合。 PL/SQL 具有用于常量和变量的数据类型,包括布尔、 引用类型、 复合类型 (记录) 、和用户定义类型

时间: 2025-01-08 08:53:23

Oracle Schema Objects——Tables——Oracle Data Types的相关文章

Oracle Schema Objects——Tables——Table Compression

Table Compression 表压缩 The database can use table compression to reduce the amount of storage required for the table. 数据库可以使用表压缩来消除数据块中的重复值. Compression saves disk space, reduces memory use in the database buffer cache, and in some cases speeds query

Oracle Schema Objects——Tables——TableStorage

Table Storage Oracle数据库如何保存表数据? Oracle Database uses a data segment in a tablespace to hold table data. Oracle 数据库使用表空间中的数据段保存表数据. As explained in "User Segments", a segment contains extents made up of data blocks. 如"用户段"所述,段包含由数据块组成的扩

Oracle Schema Objects——Tables——Overview of Tables

Overview of Tables A table is the basic unit of data organization in an Oracle database. 表是Oracle数据库中的数据组织的基本单位. A table describes an entity, which is something of significance about which information must be recorded. 一个表描述了一个实体,其相关重要信息必须被记录. A tabl

Oracle Schema Objects——伪列ROWID Pseudocolumn(ROWNUM、ROWID)

Oracle Schema Objects Oracle Schema Objects——Tables——Oracle Data Types Oracle伪列 在Oracle数据库之中为了实现完整的关系数据库的功能,专门为用户提供了许多的伪列. “NEXTVAL”和“CURRVAL”就是两个默认提供的操作伪列Oracle Schema Objects——Sequences(伪列:nextval,currval) SYSDATE与SYSTIMESTAMP也属于伪列SQL Fundamentals

Oracle Schema Objects

One characteristic of an RDBMS is the independence of physical data storage from logical data structures. RDBMS的特点之一是物理数据与逻辑数据结构的独立性. Introduction to Schema Objects Schema Object Types Schema Object Storage Schema Object Dependencies SYS and SYSTEM S

Oracle Schema Objects——PARTITION

Oracle Schema Objects 表分区 表- - 分区( partition )TABLE PARTITION 一段时间给出一个分区,这样方便数据的管理. 可以按照范围range分区,列表分区,哈希分区等. 创建表分区: SQL> create table t_part(id int) 2 partition by range(id) 3 (partition p1 values less than(5), 4 partition p2 values less than(10), 5

Oracle内置数据类型(Built-in Data Types)

Code Data Type Description 1 VARCHAR2(size [BYTE | CHAR]) Variable-length character string having maximum length size bytes or characters. Maximum size is 4000 bytes or characters, and minimum is 1 byte or 1 character. You must specifysize for VARCHA

Data Types

原地址: Home / Database / Oracle Database Online Documentation 11g Release 2 (11.2) / Database Administration Data Types Each value manipulated by Oracle Database has a data type. The data type of a value associates a fixed set of properties with the va

Oracle Database Concepts:介绍模式对象(Introduction to Schema Objects)

数据库模式(schema)是数据结构的逻辑容器,被称作模式对象(schema objects) 每一个数据库用户拥有一个和用户名相同的模式,例如hr用户拥有hr模式. 在一个产品数据库中,模式的拥有者通常是数据库应用程序而不是一个人. 在一个模式中,每一个模式对象都有一个唯一的名字.如hr.employees代表hr模式下的employees表. 如下图所示: 模式对象的类型 最重要的模式对象是关系型数据库中的表(table), Oracle SQL使你能创建和操作其他类型的模式对象.如下: 1