Está en la página 1de 20

Traducido del inglés al español - www.onlinedoctranslator.

com

2
Tablas y grupos de tablas
Este capítulo proporciona una introducción a los objetos de esquema y analiza las tablas, que son
los tipos más comunes de objetos de esquema.

Este capítulo contiene las siguientes secciones:

• Introducción a los objetos de esquema

• Resumen de tablas

• Descripción general de los clústeres de tablas

• Descripción general de las tablas agrupadas por atributos

• Resumen de tablas temporales

• Resumen de tablas externas

• Descripción general de las tablas de objetos

Introducción a los objetos de esquema


Una base de datos esquema es un contenedor lógico para estructuras de datos, llamado objetos de
esquema. Ejemplos de objetos de esquema son tablas e índices. Crea y manipula objetos de
esquema con SQL.

A usuario de la base de datos cuenta tiene una contraseña y privilegios de base de datos específicos. Cada cuenta
de usuario posee un esquema único, que tiene el mismo nombre que el usuario. El esquema contiene los datos del
usuario propietario del esquema. Por ejemplo, elhora la cuenta de usuario es propietaria del hora esquema, que
contiene objetos de esquema como el empleados mesa. En una base de datos de producción, el propietario del
esquema generalmente representa una aplicación de base de datos en lugar de una persona.

Dentro de un esquema, cada objeto de esquema de un tipo particular tiene un nombre único. Por
ejemplo,empleados de horas se refiere a la mesa empleados en el hora esquema. Figura 2-1representa
un propietario de esquema llamado hora y objetos de esquema dentro del hora esquema.

2-1
Capitulo 2
Introducción a los objetos de esquema

Figura 2-1 Esquema de HR

Esquema de recursos humanos

Mesas Índices
Mesa
Mesa
Mesa
Usuario de RRHH

posee

Esquema
Objetos

Esta sección contiene los siguientes temas:

• Tipos de objetos de esquema

• Almacenamiento de objetos de esquema

• Dependencias de objetos de esquema

• Esquemas SYS y SYSTEM


• Esquemas de muestra

Ver también:

"Descripción general de la seguridad de la base de datos"para obtener más información sobre los usuarios y los privilegios

Tipos de objetos de esquema

Oracle SQL le permite crear y manipular muchos otros tipos de objetos de


esquema.

Los principales tipos de objetos de esquema se muestran en la siguiente tabla.

Tabla 2-1 Objetos de esquema

Objeto Descripción Aprender más


Mesa A mesa almacena datos en filas. Las tablas son los "Resumen de tablas"
objetos de esquema más importantes en una base
de datos relacional.

2-2
Capitulo 2
Introducción a los objetos de esquema

Tabla 2-1 (Cont.) Objetos de esquema

Objeto Descripción Aprender más


Índices Los índices son objetos de esquema que contienen "Índices y tablas organizadas por
una entrada para cada fila indexada de la tabla o índices"
grupo de mesa y proporcionar acceso directo y
rápido a las filas. Oracle Database admite varios
tipos de índices. Untabla organizada por índice es
una tabla en la que los datos se almacenan en una
estructura de índice.

Particiones Las particiones son piezas de grandes tablas e "Resumen de particiones"


índices. Cada partición tiene su propio nombre y,
opcionalmente, puede tener sus propias
características de almacenamiento.

Puntos de vista Las vistas son presentaciones personalizadas de "Resumen de vistas"


datos en una o más tablas u otras vistas. Puede
pensar en ellos como consultas almacenadas. Las
vistas en realidad no contienen datos.

Secuencias Una secuencia es un objeto creado por el usuario "Resumen de secuencias"


que pueden compartir varios usuarios para
generar números enteros. Normalmente, utiliza
secuencias para generarClave primariavalores.

Dimensiones Una dimensión define una relación padre-hijo "Resumen de dimensiones"


entre pares de conjuntos de columnas, donde
todas las columnas de un conjunto de
columnas deben provenir de la misma tabla.
Las dimensiones se utilizan comúnmente para
categorizar datos como clientes, productos y
tiempo.

Sinónimos Un sinónimo es un alias de otro objeto de esquema. "Resumen de sinónimos"


Debido a que un sinónimo es simplemente un alias, no
requiere más almacenamiento que su definición en el
Diccionario de datos.

PL / SQL PL / SQL es la extensión de procedimiento de "Subprogramas PL / SQL "


subprogramas y Oracle de SQL. ASubprograma PL / SQLes un
paquetes bloque PL / SQL con nombre que se puede invocar
con un conjunto de parámetros. APaquete PL /
SQL agrupa tipos, variables y subprogramas de
PL / SQL relacionados lógicamente.

Otros tipos de objetos también se almacenan en la base de datos y se pueden crear y manipular
con sentencias SQL pero no están contenidos en un esquema. Estos objetos incluyen cuentas de
usuario de base de datos, roles, contextos y objetos de diccionario.

2-3
Capitulo 2
Introducción a los objetos de esquema

Ver también:

• Guía del administrador de la base de datos Oracle para aprender a administrar objetos de
esquema

• Referencia del lenguaje SQL de la base de datos Oracle para obtener más información sobre los objetos de
esquema y los objetos de base de datos

Almacenamiento de objetos de esquema

Algunos objetos de esquema almacenan datos en un tipo de estructura de almacenamiento lógica


denominadasegmento. Por ejemplo, una tabla organizada en montón no particionada o un índice crea un
segmento.

Otros objetos de esquema, como vistas y secuencias, constan únicamente de metadatos. Este tema
describe solo los objetos de esquema que tienen segmentos.

Oracle Database almacena un objeto de esquema lógicamente dentro de un espacio de tabla. No hay
relación entre esquemas y espacios de tabla: un espacio de tabla puede contener objetos de diferentes
esquemas y los objetos de un esquema pueden estar contenidos en diferentes espacios de tabla. Los datos
de cada objeto están contenidos físicamente en uno o más archivos de datos.

La siguiente figura muestra una posible configuración de segmentos de índice y tabla, espacios de
tabla y archivos de datos. El segmento de datos de una tabla abarca dos archivos de datos, que
forman parte del mismo espacio de tabla. Un segmento no puede abarcar varios espacios de tabla.

2-4
Capitulo 2
Introducción a los objetos de esquema

Figura 2-2 Segmentos, espacios de tabla y archivos de datos

Índice
Mesa Mesa

Índice Índice Índice

Índice

Índice Índice Índice

Mesa

Archivos de información Segmentos


(estructuras físicas asociadas con (almacenado en espacios de tabla puede
un solo espacio de tabla) abarcar varios archivos de datos)

Ver también:

• "Estructuras de almacenamiento lógicas"para obtener información sobre los espacios de tabla y los segmentos

• Guía del administrador de la base de datos Oracle para aprender a administrar el almacenamiento de
objetos de esquema

Dependencias de objetos de esquema

Algunos objetos de esquema se refieren a otros objetos, creando un dependencia del objeto de esquema.

Por ejemplo, una vista contiene un consulta que hace referencia a tablas o vistas, mientras que un PL / SQL
subprograma invoca otros subprogramas. Si la definición del objeto A hace referencia al objeto B, entonces
A es unobjeto dependiente en B, y B es un objeto referenciado para.

Oracle Database proporciona un mecanismo automático para garantizar que un objeto dependiente
esté siempre actualizado con respecto a sus objetos referenciados. Cuando crea un objeto
dependiente, la base de datos rastrea las dependencias entre el objeto dependiente

2-5
Capitulo 2
Introducción a los objetos de esquema

y sus objetos referenciados. Cuando un objeto referenciado cambia de una manera que podría afectar a un
objeto dependiente, la base de datos marca el objeto dependiente como inválido. Por ejemplo, si un usuario
elimina una tabla, no se puede utilizar ninguna vista basada en la tabla eliminada.

Un objeto dependiente no válido debe recompilarse con la nueva definición de un objeto


referenciado antes de que el objeto dependiente sea utilizable. La recompilación se produce
automáticamente cuando se hace referencia al objeto dependiente no válido.

Como ilustración de cómo los objetos de esquema pueden crear dependencias, el siguiente script de
muestra crea una tabla mesa_prueba y luego un procedimiento que consulta esta tabla:

CREAR TABLA test_table (col1 INTEGER, col2 INTEGER);

CREAR O REEMPLAZAR EL PROCEDIMIENTO test_proc


COMO
EMPEZAR

PARA x IN (SELECT col1, col2 FROM test_table) LOOP

- - datos de proceso
NULL;
END LOOP;
FIN;
/

La siguiente consulta del estado del trámite test_proc muestra que es válido:

SQL> SELECT OBJECT_NAME, ESTADO DE USER_OBJECTS DONDE OBJECT_NAME =


'TEST_PROC';

ESTADO DE OBJECT_NAME
-----------------
TEST_PROC VÁLIDO

Después de agregar el col3 columna a test_table, el procedimiento sigue siendo válido porque el
procedimiento no tiene dependencias en esta columna:

SQL> ALTER TABLE test_table ADD col3 NUMBER;

Cuadro alterado.

SQL> SELECT OBJECT_NAME, ESTADO DE USER_OBJECTS DONDE OBJECT_NAME =


'TEST_PROC';

ESTADO DE OBJECT_NAME
-----------------
TEST_PROC VÁLIDO

Sin embargo, cambiar el tipo de datos del col1 columna, que el test_proc procedimiento
depende, invalida el procedimiento:

SQL> ALTER TABLE tabla_prueba MODIFY col1 VARCHAR2 (20);

Cuadro alterado.

2-6
Capitulo 2
Introducción a los objetos de esquema

SQL> SELECT OBJECT_NAME, ESTADO DE USER_OBJECTS DONDE OBJECT_NAME =


'TEST_PROC';

ESTADO DE OBJECT_NAME
-----------------
TEST_PROC INVALID

Ejecutar o recompilar el procedimiento hace que sea válido nuevamente, como se muestra en el siguiente
ejemplo:

SQL> EJECUTAR test_proc

El procedimiento PL / SQL se completó con éxito.

SQL> SELECT OBJECT_NAME, ESTADO DE USER_OBJECTS DONDE OBJECT_NAME =


'TEST_PROC';

ESTADO DE OBJECT_NAME
-----------------
TEST_PROC VÁLIDO

Ver también:

Guía del administrador de la base de datos Oracle y Guía de desarrollo de bases de datos Oracle para
aprender a administrar las dependencias de los objetos de esquema

Esquemas SYS y SYSTEM


Todas las bases de datos de Oracle incluyen cuentas administrativas predeterminadas.

Las cuentas administrativas tienen muchos privilegios y están destinadas solo a administradores de bases de
datos autorizados para realizar tareas como iniciar y detener la base de datos, administrar la memoria y el
almacenamiento, crear y administrar usuarios de la base de datos, etc.

los SYS La cuenta administrativa se crea automáticamente cuando se crea una base de datos. Esta cuenta
puede realizar todas las funciones administrativas de la base de datos. losSYS El esquema almacena las
tablas base y las vistas para el Diccionario de datos. Estas vistas y tablas base son críticas para el
funcionamiento de Oracle Database. Tablas en elSYS Los esquemas son manipulados solo por la base de
datos y nunca deben ser modificados por ningún usuario.

los SISTEMA La cuenta administrativa también se crea automáticamente cuando se crea una base de
datos. losSISTEMA El esquema almacena tablas y vistas adicionales que muestran información
administrativa, y tablas y vistas internas utilizadas por varias opciones y herramientas de Oracle
Database. Nunca use elSISTEMA esquema para almacenar tablas de interés para usuarios no
administrativos.

2-7
Capitulo 2
Introducción a los objetos de esquema

Ver también:

• "Cuentas de usuario"

• "Conexión con privilegios de administrador"

• Guía del administrador de la base de datos Oracle aprender sobre SYS, SISTEMA, y
otras cuentas administrativas

Esquemas de muestra

Una base de datos de Oracle puede incluir esquemas de muestra, que son un conjunto de esquemas
interconectados que permiten que la documentación de Oracle y los materiales de instrucción de Oracle
ilustren las tareas comunes de las bases de datos.

los hora El esquema de muestra contiene información sobre empleados, departamentos y ubicaciones,
historiales de trabajo, etc. La siguiente ilustración muestra un diagrama de relación de entidades de
las tablas enhora La mayoría de los ejemplos de este manual utilizan objetos de este esquema.

Figura 2-3 Esquema de recursos humanos

DEPARTAMENTOS UBICACIONES
HORA departamento_id location_id
Nombre de Departamento Dirección
manager_id código postal
location_id ciudad

Provincia del estado


HISTORIA LABORAL country_id
ID de empleado
fecha de inicio
EMPLEADOS
fecha final
ID de empleado
Identificación del trabajo PAÍSES
primer nombre
departamento_id country_id
apellido
nombre del país
Email
region_id
número de teléfono
fecha de contratación

Identificación del trabajo


TRABAJOS
salario
Identificación del trabajo
Commission_pct REGIONES
título profesional
manager_id region_id
min_salary
departamento_id nombre_región
max_salary

Ver también:

Esquemas de muestra de la base de datos de Oracle para aprender a instalar los esquemas
de muestra

2-8
Capitulo 2
Resumen de tablas

Resumen de tablas
A mesa es la unidad básica de organización de datos en una base de datos Oracle.

Una tabla describe un entidad, que es algo importante sobre qué información
se debe registrar. Por ejemplo, un empleado podría ser una entidad.

Las tablas de Oracle Database se dividen en las siguientes categorías básicas:

• Tablas relacionales

Las tablas relacionales tienen columnas simples y son el tipo de tabla más común.Ejemplo
2-1 muestra una CREAR MESA declaración para una tabla relacional.

• Tablas de objetos

Las columnas corresponden a los atributos de nivel superior de un tipo de objeto. Ver "
Descripción general de las tablas de objetos".

Puede crear una tabla relacional con las siguientes características organizativas:

• A tabla organizada en montón no almacena filas en ningún orden en particular. losCREAR MESA
instrucción crea una tabla organizada en montón de forma predeterminada.

• Un tabla organizada por índice ordena las filas de acuerdo con los valores de la clave principal. Para
algunas aplicaciones, las tablas organizadas por índices mejoran el rendimiento y utilizan el espacio en
disco de manera más eficiente. Ver "Resumen de tablas organizadas por índices".

• Un mesa externa es una tabla de solo lectura cuyos metadatos se almacenan en la base de datos pero
cuyos datos se almacenan fuera de la base de datos. Ver "Resumen de tablas externas".

Una mesa es permanente o temporal. Una definición de tabla permanente y los datos persisten en todas
las sesiones. Amesa temporal La definición persiste de la misma manera que una definición de tabla
permanente, pero los datos existen solo durante la duración de una transacción osesión. Las tablas
temporales son útiles en aplicaciones donde un conjunto de resultados debe mantenerse temporalmente,
quizás porque el resultado se construye ejecutando varias operaciones.

Este tema contiene los siguientes temas:

• Columnas

• Filas
• Ejemplo: instrucciones CREATE TABLE y ALTER TABLE
• Tipos de datos de Oracle

• Restricciones de integridad

• Almacenamiento de mesa

• Compresión de tabla

Ver también:

Guía del administrador de la base de datos Oracle para aprender a administrar tablas

2-9
Capitulo 2
Resumen de tablas

Columnas
Una definición de tabla incluye un nombre de tabla y un conjunto de columnas.

A columna identifica un atributo de la entidad descrita por la tabla. Por ejemplo, la columnaID de
empleado en el empleados La tabla se refiere al atributo de ID de empleado de una entidad de
empleado.

En general, le da a cada columna un nombre de columna, un tipo de datosy un ancho cuando crea una tabla.
Por ejemplo, el tipo de datos paraID de empleado es NÚMERO 6), lo que indica que esta columna solo puede
contener datos numéricos de hasta 6 dígitos de ancho. El ancho puede ser predeterminado por el tipo de
datos, como conFECHA.

Columnas virtuales

Una tabla puede contener un columna virtual, que a diferencia de una columna no virtual no
consume espacio en disco.

La base de datos deriva los valores en una columna virtual bajo demanda calculando un conjunto de
expresiones o funciones especificadas por el usuario. Por ejemplo, la columna virtualingreso podría
ser una función de la salario y Commission_pct columnas.

Ver también:

Guía del administrador de la base de datos Oracle para aprender a administrar columnas
virtuales

Columnas invisibles

Un columna invisible es una columna especificada por el usuario cuyos valores solo son visibles cuando la
columna se especifica explícitamente por nombre. Puede agregar una columna invisible a una tabla sin
afectar las aplicaciones existentes y hacer que la columna sea visible si es necesario.

En general, las columnas invisibles ayudan a migrar y evolucionar las aplicaciones en línea. Un caso
de uso podría ser una aplicación que consulta una tabla de tres columnas con unSELECCIONE *
declaración. Agregar una cuarta columna a la tabla rompería la aplicación, que espera tres
columnas de datos. Agregar una cuarta columna invisible hace que la aplicación funcione
normalmente. Luego, un desarrollador puede modificar la aplicación para manejar una cuarta
columna y hacer que la columna sea visible cuando la aplicación se active.

El siguiente ejemplo crea una tabla productos con una columna invisible contar, y luego
hace visible la columna invisible:

Productos CREATE TABLE (prod_id INT, count INT INVISIBLE); ALTER


TABLE productos MODIFICAR (contar VISIBLE);

2-10
Capitulo 2
Resumen de tablas

Ver también:

• Guía del administrador de la base de datos Oracle para aprender a administrar columnas
invisibles

• Referencia del lenguaje SQL de la base de datos Oracle para obtener más información sobre
columnas invisibles

Filas
A hilera es una colección de información de columna correspondiente a un registro en una tabla.

Por ejemplo, una fila en el empleados La tabla describe los atributos de un empleado
específico: ID de empleado, apellido, nombre, etc. Después de crear una tabla, puede
insertar, consultar, eliminar y actualizar filas mediante SQL.

Ejemplo: instrucciones CREATE TABLE y ALTER TABLE


La declaración SQL de Oracle para crear una tabla es CREAR MESA.

Ejemplo 2-1 empleados de CREATE TABLE

El siguiente ejemplo muestra el CREAR MESA declaración para el empleados mesa en el hora
esquema de muestra. La declaración especifica columnas comoemployee_id, first_name, y así
sucesivamente, especificando un tipo de datos como NÚMERO o FECHA para cada columna.

Empleados de CREATE TABLE


( ID de empleado NÚMERO 6)
, primer nombre VARCHAR2 (20)
, apellido VARCHAR2 (25)
RESTRICCIÓN emp_last_name_nn NO NULO
, Email VARCHAR2 (25)
RESTRICCIÓN emp_email_nn NOT NULL
, número de teléfono VARCHAR2 (20)
, fecha de contratación FECHA
RESTRICCIÓN emp_hire_date_nn NOT NULL
, Identificación del trabajo VARCHAR2 (10)
RESTRICCIÓN emp_job_nn NO NULO
, salario NÚMERO (8,2)
, comisión_pct NÚMERO (2,2)
, manager_id NÚMERO 6)
, departamento_id NÚMERO 4)
, RESTRICCIÓN emp_salary_min
VERIFICAR (salario> 0)
, RESTRICCIÓN emp_email_uk
ÚNICO (correo electrónico)

);

2-11
Capitulo 2
Resumen de tablas

Ejemplo 2-2 empleados de ALTER TABLE

El siguiente ejemplo muestra un ALTER TABLE declaración que agrega restricciones de integridad a la
empleados mesa. Las restricciones de integridad hacen cumplir las reglas comerciales y evitan la entrada de
información no válida en las tablas.

Empleados de ALTER TABLE


AÑADIR (RESTRICCIÓN emp_emp_id_pk
CLAVE PRIMARIA (employee_id)
, RESTRICCIÓN emp_dept_fk
LLAVE EXTRANJERA (departamento_id)
Departamentos de REFERENCIAS
, RESTRICCIÓN emp_job_fk
LLAVE EXTRANJERA (job_id)
REFERENCIAS trabajos (job_id)
, RESTRICCIÓN emp_manager_fk
LLAVE EXTRANJERA (manager_id)
REFERENCIAS empleados
);

Ejemplo 2-3 Filas en la tabla de empleados

La siguiente salida de muestra muestra 8 filas y 6 columnas del empleados de horas mesa.

EMPLOYEE_ID FIRST_NAME LAST_NAME SALARIO COMMISSION_PCT


DEPARTMENT_ID
--------------------------------------------------
- - - - - - - - - - - - - 100
Steven Rey 24000
90
101 Neena Kochhar 17000
90
102 Lex De Haan 17000
90
103 Alejandro Hunold 9000
60
107 Diana Lorentz 4200
60
149 Eleni Zlotkey 10500 .2
80
174 Ellen Abel 11000 .3
80
178 Kimberely Conceder 7000 . 15

El resultado anterior ilustra algunas de las siguientes características importantes de


tablas, columnas y filas:

• Una fila de la tabla describe los atributos de un empleado: nombre, salario,


departamento, etc. Por ejemplo, la primera fila de la salida muestra el registro del
empleado llamado Steven King.

• Una columna describe un atributo del empleado. En el ejemplo, elID de empleadocolumna es la


Clave primaria, lo que significa que cada empleado está identificado de forma única por su ID de
empleado. Se garantiza que dos empleados no tendrán la misma identificación de empleado.

2-12
Capitulo 2
Resumen de tablas

• Una columna sin clave puede contener filas con valores idénticos. En el ejemplo, el valor
del salario para los empleados 101 y 102 es el mismo:17000.

• A clave externa columna se refiere a una clave principal o única en la misma tabla o en una
tabla diferente. En este ejemplo, el valor de90 en departamento_id corresponde a la
departamento_id columna de la departamentos mesa.

• A campo es la intersección de una fila y una columna. Puede contener solo un valor. Por
ejemplo, el campo para el ID de departamento del empleado 103 contiene el valor60.

• Un campo puede carecer de valor. En este caso, se dice que el campo contiene unnulo valor. El valor de
laCommission_pct la columna para el empleado 100 es nula, mientras que el valor en el campo para el
empleado 149 es.2. Una columna permite valores nulos a menos que un NO NULO o se ha definido
una restricción de integridad de clave primaria en esta columna, en cuyo caso no se puede insertar
ninguna fila sin un valor para esta columna.

Ver también:

Referencia del lenguaje SQL de la base de datos Oracle por CREAR MESA sintaxis y
semántica

Tipos de datos de Oracle

Cada columna tiene un tipo de datos, que está asociado con un formato de almacenamiento
específico, restricciones y rango válido de valores. El tipo de datos de un valor asocia un conjunto fijo
de propiedades con el valor.

Estas propiedades hacen que Oracle Database trate los valores de un tipo de datos de manera diferente a
los valores de otro. Por ejemplo, puede multiplicar los valores deNÚMERO tipo de datos, pero no valores
del CRUDO tipo de datos.

Cuando crea una tabla, debe especificar un tipo de datos para cada una de sus columnas. Cada valor que
se inserta posteriormente en una columna asume el tipo de datos de la columna.

Oracle Database proporciona varios tipos de datos integrados. Los tipos de datos más utilizados se
dividen en las siguientes categorías:

• Tipos de datos de caracteres

• Tipos de datos numéricos

• Tipos de datos de fecha y hora

• Tipos de datos de Rowid

• Modelos de formato y tipos de datos

Otras categorías importantes de tipos integrados incluyen sin formato, objetos grandes (LOB) y
colecciones. PL / SQL tiene tipos de datos para constantes y variables, que incluyenBooleano
tipos de referencia, tipos compuestos (registros) y tipos definidos por el usuario.

2-13
Capitulo 2
Resumen de tablas

Ver también:

• "Descripción general de LOB"

• Referencia del lenguaje SQL de la base de datos Oracle para aprender sobre los tipos de datos SQL
integrados

• Referencia de tipos y paquetes de Oracle Database PL / SQL para aprender sobre los tipos
de datos PL / SQL

• Guía de desarrollo de bases de datos Oracle para aprender a utilizar los tipos de datos
integrados

Tipos de datos de caracteres

Los tipos de datos de caracteres almacenan datos alfanuméricos en cadenas. El tipo de datos de caracteres
más común esVARCHAR2, que es la opción más eficiente para almacenar datos de caracteres.

Los valores de bytes corresponden a la codificación de caracteres esquema, generalmente llamado


conjunto de caracteres. El juego de caracteres de la base de datos se establece en la creación de la base de
datos. Algunos ejemplos de juegos de caracteres son ASCII de 7 bits, EBCDIC y Unicode UTF-8.

La semántica de longitud de los tipos de datos de caracteres se puede medir en bytes o caracteres. El tratamiento
de cadenas como una secuencia de bytes se llamasemántica de bytes. Este es el valor predeterminado para los
tipos de datos de caracteres. El tratamiento de las cadenas como una secuencia de caracteres se denomina
semántica de caracteres. Un carácter es un punto de código del juego de caracteres de la base de datos.

Ver también:

• "Conjuntos de caracteres"

• Guía para desarrolladores de 2 días de Oracle Database para una breve introducción a los tipos de datos

• Guía de desarrollo de bases de datos Oracle para aprender a elegir un tipo de datos de
caracteres

Tipos de datos VARCHAR2 y CHAR


los VARCHAR2 El tipo de datos almacena literales de caracteres de longitud variable. Aliteral es un valor de
datos fijo.
Por ejemplo, 'LILA ',' St. George Island ',y '101 ' son todos caracteres literales; 5001es un literal
numérico. Los literales de caracteres se incluyen entre comillas simples para que la base de
datos pueda distinguirlos de los nombres de objeto de esquema.

2-14
Capitulo 2
Resumen de tablas

Nota:

Este manual usa los términos literal de texto, carácter literal, y cuerda
indistintamente.

Cuando crea una tabla con un VARCHAR2 columna, especifica una longitud máxima de cadena. En
Ejemplo 2-1, los apellido La columna tiene un tipo de datos de VARCHAR2 (25), lo que significa que
cualquier nombre almacenado en la columna tiene un máximo de 25 bytes.

Para cada fila, Oracle Database almacena cada valor en la columna como un campo de longitud
variable a menos que un valor exceda la longitud máxima, en cuyo caso la base de datos devuelve un
error. Por ejemplo, en un juego de caracteres de un solo byte, si ingresa 10 caracteres para el
apellido valor de la columna en una fila, luego la columna en la pieza de la fila almacena solo 10
caracteres (10 bytes), no 25. Usando VARCHAR2 reduce el consumo de espacio.

En contraste con VARCHAR2, CHAR almacena cadenas de caracteres de longitud fija. Cuando crea una tabla con un
CARBONIZARSE columna, la columna requiere una longitud de cadena. El valor predeterminado es 1 byte. La base de datos
utiliza espacios en blanco para rellenar el valor hasta la longitud especificada.

Comparación de la base de datos Oracle VARCHAR2 valores usando semántica de comparación no acolchada y
compara CARBONIZARSE valores utilizando semántica de comparación con relleno en blanco.

Ver también:

Referencia del lenguaje SQL de la base de datos Oracle para obtener detalles sobre la semántica de
comparación con relleno en blanco y sin relleno

Tipos de datos NCHAR y NVARCHAR2


los NCHAR y NVARCHAR2 los tipos de datos almacenan datos de caracteres Unicode.Unicode es un juego de
caracteres codificado universal que puede almacenar información en cualquier idioma usando un solo juego de
caracteres. NCHAR almacena cadenas de caracteres de longitud fija que corresponden al juego de caracteres
nacional, mientras que NVARCHAR2 almacena cadenas de caracteres de longitud variable.

Especifica un juego de caracteres nacional al crear una base de datos. El conjunto de caracteres de
NCHAR y NVARCHAR2 los tipos de datos deben ser AL16UTF16 o UTF8. Ambos juegos de caracteres
utilizan codificación Unicode.

Cuando crea una tabla con un NCHAR o NVARCHAR2 columna, el tamaño máximo siempre está en la
semántica de longitud de caracteres. La semántica de longitud de caracteres es la semántica de longitud
predeterminada y única paraNCHAR o NVARCHAR2.

Ver también:

Guía de soporte para la globalización de la base de datos de Oracle para obtener información sobre la función
de soporte de globalización de Oracle

2-15
Capitulo 2
Resumen de tablas

Tipos de datos numéricos

Los tipos de datos numéricos de Oracle Database almacenan números fijos y de punto flotante, cero e
infinito. Algunos tipos numéricos también almacenan valores que son el resultado indefinido de una
operación, que se conoce como "no es un número" oYaya.

Oracle Database almacena datos numéricos en formato de longitud variable. Cada valor se almacena
en notación científica, con 1 byte utilizado para almacenar el exponente. La base de datos utiliza hasta
20 bytes para almacenar elmantisa, que es la parte de un número de punto flotante que contiene sus
dígitos significativos. Oracle Database no almacena ceros iniciales y finales.

NUMBER Tipo de datos

los NÚMERO el tipo de datos almacena números fijos y de coma flotante. La base de datos puede almacenar
números de prácticamente cualquier magnitud. Se garantiza que estos datos serán portátiles entre diferentes
sistemas operativos que ejecutan Oracle Database. losNÚMERO Se recomienda el tipo de datos para la mayoría de
los casos en los que debe almacenar datos numéricos.

Especifica un número de coma fija en el formulario NÚMERO(pag,s), dónde pag y s consulte las
siguientes características:

• Precisión

los precisión especifica el número total de dígitos. Si no se especifica una precisión, la


columna almacena los valores exactamente como los proporciona la aplicación sin ningún
redondeo.

• Escala

los escala especifica el número de dígitos desde el punto decimal hasta el dígito menos
significativo. La escala positiva cuenta los dígitos a la derecha del punto decimal hasta el dígito
menos significativo inclusive. La escala negativa cuenta los dígitos a la izquierda del punto
decimal hasta el dígito menos significativo, pero sin incluirlo. Si especifica una precisión sin
escala, como enNÚMERO 6), entonces la escala es 0.

En Ejemplo 2-1, los salario la columna es de tipo NÚMERO (8,2), por lo que la precisión es 8 y la escala es 2.
Por lo tanto, la base de datos almacena un salario de 100.000 como 100000,00.

Números de punto flotante

Oracle Database proporciona dos tipos de datos numéricos exclusivamente para números de
punto flotante: BINARY_FLOAT y BINARY_DOUBLE.

Estos tipos admiten todas las funciones básicas proporcionadas por el NÚMERO tipo de datos. Sin
embargo, mientrasNÚMERO usa precisión decimal, BINARY_FLOAT y BINARY_DOUBLEutilice
precisión binaria, que permite cálculos aritméticos más rápidos y, por lo general, reduce los
requisitos de almacenamiento.

BINARY_FLOAT y BINARY_DOUBLE son tipos de datos numéricos aproximados. Almacenan


representaciones aproximadas de valores decimales, en lugar de representaciones exactas. Por
ejemplo, el valor 0.1 no puede ser representado exactamente por ninguno de los dos
BINARY_DOUBLE oBINARY_FLOAT. Se utilizan con frecuencia para cálculos científicos. Su
comportamiento es similar al de los tipos de datos.FLOTADOR y DOBLE en Java y XMLSchema.

2-16
Capitulo 2
Resumen de tablas

Ver también:

Referencia del lenguaje SQL de la base de datos Oracle para aprender sobre precisión, escala y
otras características de los tipos numéricos

Tipos de datos de fecha y hora

los fecha y hora los tipos de datos son FECHA y TIMESTAMP. Oracle Database proporciona
soporte completo de zona horaria para marcas de tiempo.

FECHA Tipo de datos

los FECHA el tipo de datos almacena la fecha y la hora. Aunque las fechas y horas se pueden representar en
tipos de datos de caracteres o números,FECHA tiene propiedades especiales asociadas.

La base de datos almacena las fechas internamente como números. Las fechas se almacenan en campos
de longitud fija de 7 bytes cada uno, correspondientes al siglo, año, mes, día, hora, minuto y segundo.

Nota:

Las fechas son totalmente compatibles con las operaciones aritméticas, por lo que sumas y restas de las fechas de

la misma manera que puedes hacerlo con los números.

La base de datos muestra las fechas de acuerdo con el especificado modelo de formato. Un modelo de
formato es un literal de carácter que describe el formato de una fecha y hora en una cadena de caracteres.
El formato de fecha estándar esDD-MON-RR, que muestra fechas en el formulario 01-ENE-11.

RR es parecido a YY (los dos últimos dígitos del año), pero el siglo del valor devuelto varía según el
año de dos dígitos especificado y los dos últimos dígitos del año actual. Suponga que en 1999 la
base de datos muestra01-ENE-11. Si el formato de fecha usaRR, luego 11 especifica 2011, mientras
que si el formato usa YY, luego 11 especifica 1911. Puede cambiar el formato de fecha
predeterminado tanto en la instancia de la base de datos como en el nivel de sesión.

Oracle Database almacena la hora en formato de 24 horas.HH: MI: SS. Si no se ingresa una porción de tiempo, entonces,
de manera predeterminada, la hora en un campo de fecha es 00:00:00 a. M. En una entrada de solo tiempo, la parte de la
fecha toma como valor predeterminado el primer día del mes actual.

Ver también:

• Guía de desarrollo de bases de datos Oracle para obtener más información sobre
siglos y máscaras de formato de fecha

• Referencia del lenguaje SQL de la base de datos Oracle para obtener información sobre los códigos de
formato de fecha y hora

• Guía de desarrollo de bases de datos Oracle para aprender a realizar operaciones


aritméticas con tipos de datos de fecha y hora

2-17
Capitulo 2
Resumen de tablas

TIMESTAMP Tipo de datos

los TIMESTAMP el tipo de datos es una extensión del FECHA tipo de datos.

TIMESTAMP almacena fracciones de segundo además de la información almacenada en el FECHAtipo de


datos. losTIMESTAMP El tipo de datos es útil para almacenar valores de tiempo precisos, como en
aplicaciones que deben rastrear el orden de los eventos.

los FECHA Y HORA tipos de datos TIMESTAMP CON HUSO HORARIO y HORARIO CON HUSO HORARIO
LOCAL son conscientes de la zona horaria. Cuando un usuario selecciona los datos, el valor se ajusta a
la zona horaria de la sesión del usuario. Este tipo de datos es útil para recopilar y evaluar información
de fechas en regiones geográficas.

Ver también:

Referencia del lenguaje SQL de la base de datos Oracle para obtener detalles sobre la sintaxis de
creación e ingreso de datos en columnas de marca de tiempo

Tipos de datos de Rowid

Cada fila almacenada en la base de datos tiene una dirección. Oracle Database utiliza unROWID tipo de
datos para almacenar la dirección (rowid) de cada fila en la base de datos.

Los Rowids se dividen en las siguientes categorías:

• Los Rowids físicos almacenan las direcciones de las filas en tablas organizadas en montón,
grupos de tablas y particiones de tablas e índices.

• Los identificadores de fila lógicos almacenan las direcciones de las filas en tablas organizadas por índices.

• Los Rowids foráneos son identificadores en tablas foráneas, como las tablas DB2 a las que se accede a
través de una puerta de enlace. No son filas estándar de la base de datos Oracle.

Un tipo de datos llamado Rowid universal, o urowid, admite todos los tipos de rowids.

Uso de Rowids

Oracle Database utiliza filas internamente para la construcción de índices.


A Índice de árbol B, que es el tipo más común, contiene una lista ordenada de claves divididas en
rangos. Cada clave está asociada con un rowid que apunta a la dirección de la fila asociada para un
acceso rápido.

Los usuarios finales y los desarrolladores de aplicaciones también pueden usar rowids para varias funciones
importantes:

• Los Rowids son el medio más rápido para acceder a filas particulares.

• Los Rowids brindan la capacidad de ver cómo está organizada una tabla.

• Los Rowids son identificadores únicos para las filas de una tabla determinada.

También puede crear tablas con columnas definidas utilizando el ROWID tipo de datos. Por ejemplo, puede
definir una tabla de excepción con una columna de tipo de datosROWID para almacenar los rowids de las
filas que violan las restricciones de integridad. Columnas definidas usando elROWIDel tipo de datos se
comporta como otras columnas de la tabla: los valores se pueden actualizar, etc.

2-18
Capitulo 2
Resumen de tablas

Pseudocolumna ROWID

Cada tabla en una base de datos Oracle tiene una pseudocolumna llamada ROWID.

A pseudocolumna se comporta como una columna de tabla, pero en realidad no se almacena en la tabla.
Puede seleccionar entre pseudocolumnas, pero no puede insertar, actualizar ni eliminar sus valores. Una
pseudocolumna también es similar a un SQLfunción sin argumentos. Las funciones sin argumentos suelen
devolver el mismo valor para cada fila del conjunto de resultados, mientras que las pseudocolumnas suelen
devolver un valor diferente para cada fila.

Valores de la ROWID Las pseudocolumnas son cadenas que representan la dirección de cada fila.
Estas cadenas tienen el tipo de datosROWID. Esta pseudocolumna no es evidente cuando se lista la
estructura de una tabla ejecutando SELECCIONE o DESCRIBIR, tampoco la pseudocolumna consume
espacio. Sin embargo, el rowid de cada fila se puede recuperar con una consulta SQL usando la
palabra reservadaROWID como nombre de columna.

El siguiente ejemplo consulta el ROWID pseudocolumna para mostrar el ID de fila de la fila en


el empleados tabla para empleado 100:

SQL> SELECCIONAR ROWID DE empleados DONDE employee_id = 100;

ROWID
-----------------
AAAPecAAFAAAABSAAA

Ver también:

• "Formato de Rowid"

• Guía de desarrollo de bases de datos Oracle para aprender a identificar filas por
dirección

• Referencia del lenguaje SQL de la base de datos Oracle para aprender sobre los tipos de rowid

Modelos de formato y tipos de datos

A modelo de formato es un carácter literal que describe el formato de fecha y hora o datos
numéricos almacenados en una cadena de caracteres. Un modelo de formato no cambia la
representación interna del valor en la base de datos.

Cuando convierte una cadena de caracteres en una fecha o un número, un modelo de formato determina
cómo la base de datos interpreta la cadena. En SQL, puede utilizar un modelo de formato como argumento
de laTO_CHAR y HASTA LA FECHA funciones para formatear un valor que se devolverá desde la base de datos
o para formatear un valor que se almacenará en la base de datos.

La siguiente declaración selecciona los salarios de los empleados en el Departamento 80 y utiliza la


TO_CHAR función para convertir estos salarios en valores de caracteres con el formato especificado
por el modelo de formato numérico '$99,990.99 ':

SQL> SELECT apellido empleado, TO_CHAR (salario, '$ 99,990.99') COMO


"SALARIO"
2 DESDE empleados

2-19
Capitulo 2
Resumen de tablas

3 DONDE departamento_id = 80 Y apellido = 'Russell';

EMPLEADO SALARIO
---------------------------------
Russell $ 14,000.00

El siguiente ejemplo actualiza una fecha de contratación utilizando el HASTA LA FECHA función con la
máscara de formato 'AAAA MM DD ' para convertir la cadena '1998 05 20 ' a un FECHA valor:

SQL> ACTUALIZAR empleados


2 SET Hire_date = TO_DATE ('1998 05 20', 'AAAA MM DD')
3 WHERE last_name = 'Hunold';

Ver también:

Referencia del lenguaje SQL de la base de datos Oracle para obtener más información sobre los modelos de
formato

Restricciones de integridad

Un restricción de integridad es una regla con nombre que restringe los valores de una o más
columnas en una tabla.

Las reglas de integridad de datos evitan la entrada de datos no válidos en tablas. Además, las restricciones pueden
evitar la eliminación de una tabla cuando existen ciertas dependencias.

Si una restricción está habilitada, la base de datos verifica los datos a medida que se ingresan o
actualizan. Oracle Database evita que se ingresen datos que no se ajustan a la restricción. Si una
restricción está deshabilitada, Oracle Database permite que los datos que no se ajustan a la
restricción ingresen a la base de datos.

En Ejemplo 2-1, los CREAR MESA declaración especifica NO NULO restricciones para elapellido, correo
electrónico, fecha_contratación, y Identificación del trabajo columnas. Las cláusulas de restricción
identifican las columnas y las condiciones de la restricción. Estas restricciones aseguran que las
columnas especificadas no contengan valores nulos. Por ejemplo, un intento de insertar un nuevo
empleado sin una identificación de trabajo genera un error.

Puede crear una restricción cuando o después de crear una tabla. Puede deshabilitar temporalmente las
restricciones si es necesario. La base de datos almacena restricciones en elDiccionario de datos.

Ver también:

• "Integridad de los datos"para aprender sobre las limitaciones de integridad

• "Descripción general del diccionario de datos"para aprender sobre el diccionario de datos

• Referencia del lenguaje SQL de la base de datos Oracle para aprender sobre las cláusulas de
restricción de SQL

2-20

También podría gustarte