Documentos de Académico
Documentos de Profesional
Documentos de Cultura
01
objetos de base de datos
Constraints
Indexes
Roles
Sequences
Synonyms
Tables
Users
Views
TABLA(Table): Una estructura que puede almacenar datos. Todos los datos están estructurados en
columnas y filas. Los tipos de datos de cada columna se definen explícitamente.
ÍNDICE (Index): un objeto diseñado para acelerar las búsquedas en una tabla, copia un monto
pequeño y selecto de la información ordenada para referencia rápidamente la vinculación sobre
la tabla fuente.
Vista (View): Un "filtro" a través del cual se puede buscar e interactuar con una tabla, pero no
almacena datos en sí, y simplemente sirve como una "ventana" para una o más tablas. Una vista
se utiliza para añadir una capa de seguridad al ocultar la verdadera fuente de la información,
además se puede utilizar para visualizar ciertas partes de una tabla, al tiempo que oculta otras
partes de la misma tabla.
SECUENCIA (SEQUENCE): un contador, a menudo utilizado para generar números únicos como
identificadores para las nuevas filas a medida que se añaden a una tabla.
SINÓNIMO (SYNONYM): un alias para otro objeto en la base de datos, de uso frecuente para
especificar un nombre alternativo para una tabla o vista.
RESTRICCIÓN (CONSTRAINT): Un poco de lógica definida por uno, para instruir a una tabla
particular acerca de cómo se va a aceptar, modificar o rechazar los datos entrantes.
¿Qué es un esquema?
Un esquema es una colección de objetos de la base de datos de términos tales como tablas,
índices, y vistas, los cuales son propiedad de una cuenta de usuario.
Los objetos pertenecen a un usuario y el esquema es el conjunto de objetos
alojada en el mismo.
“Esquema" los objetos que pueden ser propiedad de una cuenta de usuario.
"Non-esquema" los objetos no pueden ser propiedad de una cuenta de usuario.
El examen espera que usted sea capaz de reconocer el código correcto para crear una tabla
simple. Por "simple", Oracle quiere decir que se le requiere para definir el nombre de la tabla,
nombres de columnas, tipos de datos y todas las restricciones (constraints)
Donde:
Ej:
Si se va a ejecutar este comando en un esquema que no tuviera ya una tabla con el nombre
"work_schedule", entonces se obtendría el resultado que se muestra en
Figura 2-1.
Vamos a analizar la sintaxis del ejemplo anterior de una sentencia CREATE TABLE:
-La palabra reservada CREATE
-La palabra reservada TABLE
-El nombre de la tabla, elegido por uno, de conformidad con las normas de
nombrar objetos.
-Un par de paréntesis, en la que hay una serie de declaraciones de columna, cada uno
separados por una coma. Declaraciones de columna consisten en:
-El nombre de la columna, elegido por uno, de conformidad con las normas de
nombrar objetos
-El tipo de datos de la columna, tomado de la lista de tipos de datos disponibles
-una coma para separar cada definición de la columna de la siguiente
-Un punto y coma al final de la declaración, como es el caso de todas las sentencias SQL
Si el nombre no está encerrado entre comillas dobles cuando se crea, será tratado
como mayúscula, independientemente de cómo se crea o se hace referencia.
Si un nombre está encerrado entre comillas dobles, es sensible y siempre debe
hacer referencia con mayúsculas y minúsculas y con doble comillas.
Ejemplo:
Mediante el uso de comillas dobles, también puede incluir caracteres especiales que de otra
manera no se les permite, como espacios. Por ejemplo, este funcionará:
Pero recuerda que para referirse a la tabla después, se tiene que poner las comillas dobles, así:
SELECT * FROM "Company Employees";
En otras palabras, mediante el uso de comillas dobles, puede especificar objetos de base de datos
nombres que van más allá de las reglas de nomenclatura estándar de los objetos de Oracle. Pero
si lo hace, siempre tendrá que utilizar comillas dobles en todas las futuras consultas a ese objeto,
y tendrá que ser específico con respecto al caso de su objeto nombre.
-USER, ROLE, and PUBLIC SYNONYM OBJECTS: están en su propio espacio colectivo
de nombres.
-TABLE, VIEW, SEQUENCE, PRIVATE SYNONYM, y tipos de objetos definidos por el
usuario: tienen su propio espacio de nombres único dentro de un esquema determinado.
- INDEX: tienen su propio espacio de nombres dentro de un esquema determinado.
- CONSTRAINT: tienen su propio espacio de nombres dentro de un esquema
determinado.
Lo que todo esto significa es que usted debe proporcionar nombres únicos para un objeto dentro
de su propio espacio de nombres.
- Digamos que usted tiene un esquema denominado HR. (Como en Recursos Humanos.) En el
Esquema de recursos humanos, puede crear una tabla llamada PAYROLL. No se puede crear
una vista en ese mismo esquema llamado PAYROLL. Sin embargo, puede crear una
ÍNDICE llamado PAYROLL. También puede crear una restricción (constraint) llamado PAYROLL.
Pero no se puede crear una secuencia llamada PAYROLL.
- En la base de datos, cada USER debe tener un nombre único, como cada ROLE
Se puede crear un objeto indirecto. Esto sucede, por ejemplo, cuando se crea una tabla, y en la
sentencia CREATE TABLE opcionalmente se define un constraint asociado, pero sin proporcionar
un nombre para el CONSTRAINT. Algunos desarrolladores se refieren a estas restricciones como
"anónimo" (anonymous).
Por ejemplo, la salida DESC cruises nos muestra que la tabla cruises tiene una columna titulada
CAPTAIN_ID, su tipo de datos es number, y tiene como restricción un NOT NULL .
Lista de los tipos de datos que están disponibles para las columnas
El tipo de datos de columna define qué tipo de información es-y no es aceptada como entrada.
La mayoría de los tipos de datos son numéricos, caracteres o de fecha
Además de estos tres es una categoría mencionada como " Large Database Objects ", o tipos de
datos LOB. LOB puede incluir datos de carácter pero no pueden ser incluidos en primary key,
DISTINCT, GROUP BY, ORDER BY, o joins.
Character
CHAR (n) El nombre de "char" Esta es una longitud fija valor alfanumérico. La n indica la
longitud del dato. Cuando no se manda un valor con la longitud n rellena con espacios en
blanco para asegurarse de que la longitud de su valor siempre será igual al valor de n.
Cualquier intento de introducir un valor que es mayor que n se traducirá en un error, y el
valor no será aceptado. La inclusión de n es opcional, si se omite en la declaración, se
tomara como 1, el valor máximo permitido para n es 2000.
VARCHAR2 (n) El nombre de "varchar" es una especie de abreviatura de "Carácter
variable". Este de longitud variable. el n indica la longitud máxima permisible del valor
almacenado dentro, pero contrario a CHAR, VARCHAR2 el formato no se rellenará con sus
valores espacios en blanco. Su longitud varía en función de los datos que contiene,
VARCHAR2 n requiere que se determine. El valor mínimo de n es 1; La longitud máxima
permitida de VARCHAR2 es 4000.
Numeric
DATE
TIMESTAMP (n): es una extensión de DATE que añade precisión de fracciones de segundo.
Así: año, mes, día, horas, minutos y segundos y fracciones de segundo. El valor de n indica la
precisión de fracciones de segundos. El rango para n es 1-9. Si n se omite, el valor
predeterminado es un valor de 6.
TIMESTAMP(n) WITH TIME ZONE: Una variación de TIMESTAMP que añade ya sea una
zona horaria nombre de una región, o un desplazamiento de la zona horaria. TIMESTAMP WITH
TIME ZONE se utiliza en el seguimiento de información de la fecha en diferentes zonas horarias y
zonas geográficas. El rango para n es 1-9. Si n se omite, el valor predeterminado es un valor de 6.
HOUR 00 a 23
MINUTE 00 a 59
SECOND 00 a 59,9 (n), donde 9 (n) es la precisión de tiempo en
fracciones de segundo. La parte-9 (n)-no aplica para DATE
Heads up: los tipos de datos que manejan las diferencias horarias son muy importantes
para el examen, se hace referencia expresa en uno de los objetivos de la certificación.
CREATE TABLE
CRUISE_NOTES
(CRUISE_NOTES_ID
NUMBER,
CRUISE_NOTES CLOB);
Por ejemplo, puede agregar más de una columna LOB en una tabla, puede
utilizar sentencias SELECT, se puede insertar en las tablas con columnas LOB, y
eliminar filas con valores LOB. Sin embargo, no puede utilizar los LOB en GROUP
BY u ORDER BY.
Usted puede crear una CONSTRAINT para apoyar otros objetos, especialmente
objetos de tabla. no hay un CREATE CONSTRAINT. En su lugar, se crea una
restricción como parte de otro estado, como CREATE TABLE o ALTER TABLE
Existen dos formas en las que se puede crear una CONSTRAINT, Creación de la
tabla: "en línea" y "fuera de línea".
en línea":
CREATE TABLE PORTS
(PORT_ID
CREATE TABLE
VENDORS
(VENDOR_ID
NUMBER,
VENDOR_NAME VARCHAR2(20),
STATUS
VARCHAR2(5));
El resultado de esta limitación es asegurar que para la columna STATUS deben ser
incluidos con cada fila dentro de VENTORS. El valor puede ser cero o cualquier otro de un
solo dígito, pero debe ser proporcionado y no puede ser NULO. Aquí está la misma tabla
con un nombre asignado a la restricción:
CREATE TABLE
VENDORS
(VENDOR_ID
NUMBER,
VENDOR_NAME VARCHAR2(20),
STATUS NUMBER(1)
CONSTRAINT STATUS_NN NOT NULL, CATEGORY
VARCHAR2(5));
NUMBER
VARCHAR2(20),
STATUS NUMBER(1)
CONSTRAINT STATUS_NN NOT NULL, CATEGORY
VARCHAR2(5));
Tenga en cuenta que si no se proporciona un nombre para una restricción, el sistema le
asignará uno automáticamente, y será algo como esto:
SYS_C009981
NUMBER,
PORT_NAME
Tenga en cuenta que el "fuera de línea" requiere que usted indique qué columna (o
columnas) se ven afectados por la restricción.
con nombre:
CREATE TABLE PORTS
(PORT_ID
NUMBER,
PORT_NAME VARCHAR2(20),
CONSTRAINT PORT_ID_PK PRIMARY KEY (PORT_ID) );
NUMBER,
PORT_NAME
VARCHAR2(20), NOT
NULL
(PORT_ID) );
Esto también es inválido:
CREATE TABLE
PORTS (PORT_ID
NUMBER,
PORT_NAME VARCHAR2(20),
CONSTRAINT PORT_ID_NN NOT NULL (PORT_ID) );
Cualquiera de los que producen mensajes de error si intenta ejecutar cualquiera de ellos.
Ninguna tabla o restricción se creará. Y, sin embargo, la misma sintaxis es perfectamente
bien para otros tipos de restricciones. Por ejemplo, aquí está la restricción UNIQUE:
NUMBER,
PORT_NAME VARCHAR2(20),
CONSTRAINT PORT_ID_UN UNIQUE (PORT_ID) );
Y por supuesto, esto está muy bien, también-esta es la restricción PRIMARY KEY:
NUMBER,
PORT_NAME VARCHAR2(20),
CONSTRAINT PORT_ID_PK PRIMARY KEY (PORT_ID) );
Así NOT NULL no se pueden declarar con el "fuera de línea" en formato. Los otros
pueden. Pero espere, hay más acerca de NOT NULL. Esto no va a funcionar bien:
ALTER TABLE PORTS
ADD NOT NULL (PORT_NAME);
Y esto no podrá:
ALTER TABLE PORTS
ADD CONSTRAINT PORT_NAME_NN NOT NULL (PORT_NAME);
Los que no va a funcionar porque son los equivalentes ALTER TABLE para "fuera de
línea". Pero el ALTER TABLE "en línea" equivalentes están muy bien:
EXAM:
Así que ten cuidado. NOT NULL es un poco inusual. Es una restricción válida y se
puede crear con las otras formas de sintaxis, pero no con el "fuera de línea".
Tipos Constraints
Hay varios tipos de restricciones que se pueden aplicar a una tabla. Son los siguientes:
PRIMARY KEY, FOREIGN KEY, NOT NULL, CHECK, y UNIQUE.
not nuLL
La restricción NOT NULL es muy simple: cuando se aplica a una columna, se asegura
que para cualquier fila que se agrega a la tabla, la columna sobre la que se aplica la
restricción NOT NULL siempre deberán estar provistos de un valor.
No quiere decir "cero" o "blanco",
Por ejemplo, considere una tabla que contiene los nombres de los clientes:
VARCHAR2(20),
MIDDLE_NAME
VARCHAR2(20),
LAST_NAME
VARCHAR2(30));
Vamos a añadir una fila a la siguiente tabla:
CRUISE_PRICE * DISCOUNT
La respuesta es NULL. La razón es simple: "300" multiplicado por "Yo no sé"
resultados en. . . "No lo sé".NULL.
uniQue
La restricción UNIQUE, cuando se aplica a una columna, garantiza que los datos
añadidos a la columna en el futuro será único en comparación con los datos ya
existentes en la columna.
n UNIQUE se puede aplicar a una columna o varias columnas.
n UNIQUE, por sí mismo, permite valores NULL que se añaden a la columna
PriMarY KeY
La clave principal define una o más columnas en una tabla que formarán el identificador
único para cada fila de datos que se agregan a la tabla. La restricción PRIMARY KEY es
una combinación de las restricciones NOT NULL y UNIQUE.
Una tabla puede tener sólo una restricción PRIMARY KEY.
CREATE TABLE employees
( employee_id NUMBER
, ship_id NUMBER
, first_name VARCHAR2(20)
, last_name VARCHAR2(30)
, position_id NUMBER
, CONSTRAINT employees_pk PRIMARY KEY (employee_id));
cualquier fila que se agrega a la tabla de empleados en el futuro será necesario
un valor único para cada fila agregada.
NUMBER, HD_Year
VARCHAR2(30),
CONSTRAINT HelpDesk_PK PRIMARY KEY (HD_Category,
HD_Year, HD_Ticket_No));
FOREIGN KEY
Una restricción FOREIGN KEY se aplica a una o varias columnas de una tabla en particular, y
trabaja en conjunto con la restricción PRIMARY KEY de otra tabla. Una clave externa es la
característica que ayuda a asegurar que las dos tablas se "corresponden" a la otra.
-Se identifica una o más columnas en la tabla actual.
- Para cada una de esas columnas, también identifica una o más columnas correspondientes en
una segunda tabla.
- Se asegura de que la otra tabla ya tiene una clave principal (o única)
restricción en las columnas correspondientes en la tabla segundos.
- A continuación, se asegura de que todos los valores futuros agregados a los de clave externa con
restricciones de columnas de la tabla actual ya están almacenados en las columnas
correspondientes de la segunda tabla.
En otras palabras, una restricción FOREIGN KEY, junto con la restricción PRIMARY KEY
en la segunda tabla hace referencia, aplica la "integridad referencial" entre las dos
tablas.
CHeCK
Una restricción CHECK concede una expresión a una restricción. En otras
palabras, se aplica un poco de código para definir una regla de negocio en
particular en las filas de entrada de datos. Una restricción CHECK puede, por
ejemplo, restringir los datos entrantes de modo que todos los valores de entrada
se requieren para ser mayor que un cierto valor mínimo, o caer
dentro de un conjunto de opciones predeterminadas.
CREATE TABLE VENDORS (VENDOR_ID NUMBER,
VENDOR_NAME VARCHAR2(20),
STATUS NUMBER(1) CHECK (STATUS IN (4,5)), CATEGORY VARCHAR2(5));
Multiple Constraints
Una tabla se puede declarar, con múltiples CONSTRAINTS. He aquí un ejemplo:
CREATE TABLE VENDORS
(VENDOR_ID NUMBER CONSTRAINT VENDOR_ID_PK PRIMARY KEY, VENDOR_NAME
VARCHAR2(20) NOT NULL,
STATUS NUMBER(1) CONSTRAINT STATUS_NN NOT NULL, CATEGORY VARCHAR2(20),
CONSTRAINT STATUS_CK CHECK (STATUS IN (4, 5)), CONSTRAINT CATEGORY_CK CHECK
(CATEGORY IN ('Active','Suspended','Inactive')));
En el ejemplo anterior, tenemos una declaración CREATE TABLE simple que crea una
tabla con cinco restricciones:
Cualquier tabla solo puede tener una sola restricción PRIMARY KEY. Puede tener
cualquier otra combinación de restricciones.
Datatype restrictions
BLOB — NO NO NO —
CLOB — NO NO NO —
Enumere los tipos de datos que están disponibles para las columnas
* Cada columna debe tener asignado un tipo de datos.
Tipos de datos * Incluye numérico, el carácter y los tipos de fecha, como VARCHAR2,
NUMBER y DATE.
* Tipos de datos también incluyen los tipos de objetos grandes, como BLOB.