Aquí hay un desglose de los factores clave:
* Declaración de tipo de datos: El determinante primario es el `data_type` elegido durante la creación de la tabla (usando` create table`) o modificación (usando `alter table`). Por ejemplo:
`` `SQL
Crear empleados de la mesa (
Número de empleado_id (6), - Número con precisión 6
First_Name varchar2 (20),-cadena de caracteres de longitud variable de hasta 20 caracteres
last_name varchar2 (25) restricción nn_last_name no nulo,-cadena de caracteres de longitud variable, no nulo
Envíe un correo electrónico a Varchar2 (25),
Hire_date Fecha, - Fecha y hora
Número salarial (8,2), - Número con precisión 8, 2 decimales
...
);
`` `` ``
En este ejemplo, `Employee_ID` solo puede contener números,` First_Name` y `Last_Name` pueden contener cadenas de caracteres de longitud variable,` Hire_Date` puede contener fechas y 'Salario` puede contener números con lugares decimales.
* Tipos de datos incorporados de Oracle: Oracle proporciona un rico conjunto de tipos de datos incorporados que atienden a diversas necesidades de almacenamiento de datos. Algunos de los más comunes incluyen:
* Tipos de datos de caracteres:
* `Varchar2 (tamaño)`:cadena de caracteres de longitud variable (tipo de caracteres recomendado de Oracle). `size` especifica la longitud máxima en bytes o caracteres (dependiendo del conjunto de caracteres de la base de datos). Use esto para datos de texto generales.
* `Nvarchar2 (tamaño)`:cadena de carácter nacional de longitud variable. Utilizado para almacenar datos Unicode. `size` especifica la longitud máxima en los caracteres.
* `Char (tamaño)`:cadena de caracteres de longitud fija. Almohadillas con espacios al 'tamaño' especificado. Menos comúnmente utilizado que `varchar2`.
* `Nchar (tamaño)`:cadena de carácter nacional de longitud fija.
* `CLOB`:carácter objeto grande. Para almacenar grandes cantidades de datos de texto (hasta 4 GB). Almacena los datos reales por separado, utilizando un localizador en la tabla.
* `NcLob`:carácter nacional objeto grande. CLOB para datos Unicode.
* Tipos de datos numéricos:
* `Número (Precisión, Escala)`:Tipo de datos numéricos de uso general. 'Precision` es el número total de dígitos, y' escala 'es el número de dígitos a la derecha del punto decimal.
* `Número ':el valor predeterminado se precisan a la máxima precisión y escala.
* `Binary_float`:número de punto flotante de 32 bits.
* `Binary_Double`:número de punto flotante de 64 bits.
* Tipos de datos de fecha y hora:
* `Date`:Tiende la información de fecha y hora.
* `Timestamp`:almacena fecha y hora con segundos fraccionales. Existen variantes para el soporte de la zona horaria (por ejemplo, `Timestamp With Time Zone`,` Timestamp With Local Time Zone`).
* `Intervalo a mes ':almacena un período de tiempo en años y meses.
* `Día de intervalo a segundo ':almacena un período de tiempo en días, horas, minutos y segundos.
* Tipos de datos binarios:
* `Blob`:objeto grande binario. Para almacenar grandes cantidades de datos binarios (hasta 4 GB), como imágenes, audio o video. Almacena los datos reales por separado, utilizando un localizador en la tabla.
* `Bfile`:archivo binario. Almacena un puntero a un archivo binario almacenado * fuera * La base de datos (en el sistema de archivos del sistema operativo). La base de datos solo almacena la ubicación del archivo, no el contenido del archivo en sí.
* Tipos de datos RowID:
* `ROWID`:una pseudo-columna que contiene la dirección de una fila en una tabla. Es único dentro de la base de datos y permite el acceso más rápido a una fila en particular.
* `Urowid`:una ID de fila universal, que puede representar ROWID de tablas organizadas indexadas.
* Tipo de datos XML:
* `XMLTYPE`:para almacenar datos XML. Oracle proporciona métodos para consultar y manipular XML almacenado en este tipo de datos.
* JSON Tipo de datos:
* `JSON`:para almacenar datos JSON. Disponible en versiones posteriores de Oracle.
* Precisión y escala (para el número): Cuando se usa el tipo de datos `número`, los parámetros` Precision` y `escala 'son cruciales.
* `Precision`:Especifica el número total de dígitos (incluidos tanto antes y después del punto decimal).
* `escala ':Especifica el número de dígitos a la derecha del punto decimal.
Por ejemplo, `número (7,2)` le permite almacenar números con un máximo de 7 dígitos, con 2 de esos dígitos después del punto decimal. Los valores válidos serían 12345.67, 123.45 o 0.01. Los valores no válidos serían 123456.7 o 1.234567.
* Conjunto de caracteres de la base de datos: El conjunto de caracteres de la base de datos influye en el almacenamiento de tipos de datos de caracteres (especialmente `varchar2` y` char`). Determina la longitud máxima de una columna `varchar2` en términos de *bytes *o *caracteres *. En versiones anteriores, `varchar2 (tamaño)` se interpretó como bytes. Versiones más recientes de Oracle, con el parámetro de inicialización `max_string_size =extended`, permitir` varchar2 (tamaño) `ser interpretado como caracteres. El uso de conjuntos de caracteres Unicode (como AL32UTF8) le permite almacenar personajes de varios idiomas.
* restricciones: Si bien las restricciones no * definen * el tipo de datos, pueden restringir aún más los valores permitidos en una columna. Por ejemplo:
* `No nulo ':asegura que una columna no pueda contener valores nulos.
* `` `Único '':asegura que todos los valores en una columna (o conjunto de columnas) sean únicos.
* `Clave principal`:identifica una columna (o conjunto de columnas) como el identificador único para cada fila de la tabla.
* `Clave exterior`:establece una relación entre dos tablas, asegurando que existan valores en las columnas de clave extranjera en las columnas de clave primaria referenciadas.
* `Check`:le permite definir una regla personalizada que los valores en una columna deben satisfacer. Por ejemplo:`Compruebe (salario> 0)` asegurar que los salarios siempre sean positivos.
* Conversión de tipo de datos implícito: Oracle a veces puede convertir implícitamente los tipos de datos durante las comparaciones o tareas. Por ejemplo, Oracle podría convertir implícitamente una cadena de caracteres en un número si la está comparando con una columna numérica. Sin embargo, generalmente es la mejor práctica utilizar funciones de conversión de tipo de datos explícitas (como `to_number`,` to_char`, `to_date`) para evitar un comportamiento inesperado y garantizar la integridad de los datos.
En resumen, el tipo de datos declarado para una columna es el mecanismo de control fundamental que rige el tipo de datos que puede almacenar dentro de esa columna en una base de datos Oracle. Comprender los tipos de datos de Oracle y sus propiedades es esencial para diseñar esquemas de base de datos eficientes y confiables.