You are on page 1of 37

ORACLE

TIPOS DE DATOS

¿Qué es un tipo de dato?


Es un atributo de los datos que indica al ordenador (y/o al programador) sobre la clase de
datos que se va a trabajar. Esto incluye imponer restricciones en los datos, como qué valores
pueden tomar y qué operaciones se pueden realizar.
TIPOS DE DATOS
¿Cómo está organizado los tipos de datos?
TIPOS DE DATOS
TIPOS DE DATOS POR CATEGORIA

Cadenas de Numéricos Numéricos


Fecha y Hora
caracteres exactos aproximados
SENTENCIAS DDL PARA LA TABLA DE DATOS

¿Qué significa DDL?

Significa: Lenguaje de definición de datos

¿Para qué se utiliza las sentencias DDL?

Se utilizan para crear, modificar, eliminar la estructura de las tablas,


así como otros objetos de la base de datos.

¿Cuáles son las sentencias DDL?

CREATE DROP ALTER


SENTENCIAS DDL PARA LA TABLA DE DATOS

CREATE

Permite crear los objetos propios de la base de datos (Tablas, vistas, procedimientos
almacenados, índices, Base de datos, etc.).

DROP

Permite eliminar los objetos propios de la base de datos (Tablas, vistas, procedimientos
almacenados, índices, Base de datos, etc.).

ALTER

Permite modificar los objetos propios de la base de datos (Tablas, vistas, procedimientos
almacenados, índices, Base de datos, etc.).
SENTENCIAS DDL

IMPORTANTE:

AHORA, LO QUE HAREMOS


ES UTILIZAR CADA UNA DE
LAS SENTENCIAS DDL Y ASÍ
CONOCER SU UTILIDAD
SENTENCIA DDL: CREATE

CONSIDERACIONES ANTES DE UTILIZAR

CREATE TABLE NOMBRE_TABLA


(
PRIMERO: Conocer la sintaxis
CAMPO1 TIPO DE DATO
)
GO
SEGUNDO: Explicar las partes
• NOMBRE_TABLA: Es el nombre de la tabla a crear, debemos considerar que
dicho nombre cuenta con las mismas reglas que se aplican a las variables de
un lenguaje de programación. Por ejemplo: EMPLEADO, TB_EMPLEADO,
• CAMPO1: Es la especificación de las columnas que cuenta la tabla, así
mismo son llamados columnas o atributos. Por ejemplo: CÓDIGO,
CODIGO_EMP, COD_EMP.
• TIPO: Es la especificación del tipo de datos según el contenido del campo de
una tabla; éstas podrían ser: CHAR, VARCHAR2, NUMBER, DATE, ETC.
Enunciado CREATE TABLE
• Su formato básico es:

CREATE TABLE nombre_tabla (


atributo1 tipoDeDato1,
atributo2 tipoDeDato2,
atributo3 tipoDeDato3,
etc.);
CONSTRAINT
• Sirve para especificar restricciones o
condiciones a los atributos.
• Nos permite especificar los primary keys
(PK).
• También permite especificar los foreign keys.
• A cada CONSTRAINT se le identifica con un
nombre el cual debe ser alusivo a su función
o propósito.
CONSTRAINT - PRIMARY KEY
Se puede declarar en forma directa al declarar el atributo o por
medio del constraint.
EJEMPLOS:

CREATE TABLE USUARIO (


CodUsu number(7) PRIMARY KEY,
Nombre varchar2(5),
etc.);

CREATE TABLE USUARIO (


CodUsu number(7),
Nombre varchar2(5),
CONSTRAINT PK1 PRIMARY KEY(CodUsu)
);
CONSTRAINT - PRIMARY KEY(cont.)
• Para definir un Primary Key compuesto (dos
atributos o más), se declara el constraint de la
siguiente forma:

CREATE TABLE Detalle (


NumPed number(7),
Item varchar2(5),
Cantidad number(5),
CONSTRAINT PK2 PRIMARY KEY (NumPed,Item)
);
CONSTRAINT - FOREIGN KEY
• Se puede declarar en forma directa al declarar el atributo o por medio del
constraint.
• EJEMPLO-1:

CREATE TABLE DISTRITO (


CodDis number(7) PRIMARY KEY,
NomDis varchar2(5),
);

CREATE TABLE CLIENTE (


Codcli number(7),
ApeNom varchar2(5),
CodDis number(7) FOREIGN KEY DISTRITO(CodDis),
CONSTRAINT PK3 PRIMARY KEY(Codcli)
);
CONSTRAINT - FOREIGN KEY (Cont.)
• Declaración por medio del constraint.
• EJEMPLO-2:

CREATE TABLE DISTRITO (


CodDis char(4) PRIMARY KEY,
NomDis varchar2(5),
);

CREATE TABLE CLIENTE (


Codcli char(5),
ApeNom varchar2(5),
CodDis char(4),
CONSTRAINT PK3 PRIMARY KEY(Codcli)
CONSTRAINT FK1 FOREIGN KEY (CodDis) References DISTRITO(CodDis)
);
INSERTAR DATOS
INSERT INTO "nombre_tabla" ("columna1", "columna2", ...)
VALUES ("valor1", "valor2", ...);

Datos de la tabla DISTRITO

INSERT INTO DISTRITO VALUES (‘D001’,’Cayma’);


INSERT INTO DISTRITO VALUES (‘D002’,’Cerro Colorado’);
INSERT INTO DISTRITO VALUES (‘D003’,’Yanahuara’);
COMMIT;

Datos de la tabla CLIENTE

INSERT INTO Cliente VALUES (‘C0001’,’Carlos Pérez’,‘D001');


INSERT INTO Cliente VALUES (‘C0002’,’Alberto Fujimori’,‘D002');
INSERT INTO Cliente VALUES (‘C0003’,’Alan García’,‘D003');
COMMIT;
DML: DELETE

Para borrar datos de una tabla, debemos utilizar la


sentencia DELETE.

Su sintaxis es la siguiente:

DELETE FROM Nombre_Tabla


[WHERE { condición }]

Donde:
Nombre_Tabla nombre de la tabla donde se desea borrar los datos.
La cláusula WHERE sigue el mismo formato que la vista en la sentencia
SELECT y determina qué registros se borrarán.
DML: DELETE
 Permite eliminar uno o más registros de una tabla

--Eliminar todos los registros de la tabla usuarios


DELETE FROM USUARIOS

TABLA USUARIO ANTES TABLA USUARIO DESPUÉS


DML:
DELETE

--Eliminar un registro específico


DELETE FROM USUARIO WHERE COD_USUA='U00001'

TABLA USUARIO ANTES TABLA USUARIO DESPUÉS


DML: UPDATE

• Para la actualización de datos SQL dispone de la sentencia UPDATE.


• La sentencia UPDATE permite la actualización de uno o varios registros
de una única tabla.

La sintaxis del UPDATE es la siguiente:

UPDATE Nombre_tabla
SET nombre_columna1 = expr1,
nombre_columna2 = expr2, …...
[WHERE { condición }]

Donde:
Nombre_Tabla: Tabla donde se actualiza los datos.
Nombre columna: Es el nombre de columna o campo cuyo valor se
desea cambiar.
Expr: El nuevo valor que se desea asignar al campo que le precede.
DML: UPDATE
Ejemplo 01
--Actualiza el Precio de venta de todos los registros de la tabla
producto incrementando en un 20%

UPDATE PRODUCTO
SET PRECIO_VENTA = PRECIO_VENTA*1.20

TABLA PRODUCTO TABLA PRODUCTO


ANTES DESPUÉS
DML: UPDATE
Ejemplo 02

--Actualiza varios campos de todos los registros de la tabla DEPARTAMENTOS


UPDATE DEPARTAMENTOS
SET PRECIO_ALQxMES_DEP = 2500,
NUM_AMB_DEP = 6

TABLA DEPARTAMENTOS TABLA DEPARTAMENTOS


ANTES DESPUÉS
DML: UPDATE
--Actualiza una o varias columnas utilizando la sentencia where

UPDATE DEPARTAMENTOS
SET PRECIO_ALQxMES_DEP=PRECIO_ALQxMES_DEP*1.1
WHERE AREA_TOTAL_DEP > 100

TABLA DEPARTAMENTOS TABLA DEPARTAMENTOS


ANTES DESPUES
Para recordar:
• El Lenguaje de Manipulación de Datos o DML es
un lenguaje que permite a los usuarios de la
misma llevar a cabo las tareas de consulta o
manipulación de los datos, organizados por el
modelo de datos adecuado.
• El lenguaje de manipulación de datos se clasifica
en:
• INSERT INTO: consiste en añadir a una tabla
una o más filas y en cada fila todos o parte de
sus campos.
• UPDATE: Permite la actualización de uno o
varios registros de una única tabla.
• DELETE: consiste en borrar datos de una tabla,
para borrar todos los datos de una tabla
ejecutamos TRUNCATE.
SELECT Statement
• Se utiliza para hacer querys a una tabla sencilla o a múltiples
tablas
• Las clausulas más importantes son:
– SELECT
• Lista las columnas y expresiones que deben ser devueltos por el query
– FROM
• Indica la(s) tabla(s) o view(s) de donde se va a btener los datos
– WHERE
• Indica las condiciones en las que una fila debe ser incluida en el resultado
– GROUP BY
• Indica la categoría de los resultados
– HAVING
• Indica las condiciones bajo las cuales una categoría (grupo) será incluida
– ORDER BY
• Organiz (Sort) el resultado de aucerdo a un criterio especificado.
CONSULTAS A TABLAS

SELECT "nombre_columna" FROM "nombre_tabla";

Tabla Store_Information

Store_Name Sales Txn_Date


Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999 Resultado:
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999
Store_Name
Los Angeles
SELECT Store_Name FROM Store_Information San Diego
Los Angeles
Boston
SELECT DISTINCT "nombre_columna"
FROM "nombre_tabla";

Store_Name Sales Txn_Date


SELECT DISTINCT store_name FROM Los Angeles 1500 05-Jan-1999
Store_Information; San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999

RESULTADO:

Store_Name
Los Angeles
San Diego
Boston
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "condición";

Store_Name Sales Txn_Date


Los Angeles 1500 05-Jan-1999
SELECT Store_Name San Diego 250 07-Jan-1999
FROM Store_Information Los Angeles 300 08-Jan-1999
WHERE Sales > 1000; Boston 700 08-Jan-1999

RESULTADO:

Store_Name
Los Angeles
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "condición simple"
{[AND|OR] "condición simple"}+;

Por ejemplo, podemos desear seleccionar todos los negocios con ventas mayores a
1000 dólares estadounidenses o todos los negocios con ventas menores a 500 dólares
estadounidenses pero mayores a 275 dólares estadounidenses en la
Tabla Store_Information,
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999

SELECT Store_Name
FROM Store_Information
WHERE Sales > 1000
OR (Sales < 500 AND Sales > 275);
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" IN (''valor1',
''valor2', ...);

Por ejemplo, podríamos desear seleccionar todos los registros para los negocios de Los
Ángeles y San Diego en la Tabla Store_Information,

Store_Name Sales Txn_Date


Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999

SELECT *
FROM Store_Information
WHERE Store_Name IN ('Los Angeles', 'San Diego');
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" BETWEEN 'valor1'
AND 'valor2';

Por ejemplo, podríamos desear seleccionar la visualización de toda la información de


ventas entre el 06 de enero de 1999, y el 10 de enero de 1999, en la
Tabla Store_Information,

Store_Name Sales Txn_Date


Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999

SELECT *
FROM Store_Information
WHERE Txn_Date BETWEEN '06-Jan-1999' AND '10-Jan-1999';
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" LIKE {patrón};

{patrón} generalmente consiste en comodines. Aquí hay algunos ejemplos:

'A_Z': Toda línea que comience con 'A', otro carácter y termine con 'Z'. Por
ejemplo, 'ABZ' y 'A2Z' deberían satisfacer la condición, mientras 'AKKZ' no debería
(debido a que hay dos caracteres entre A y Z en vez de uno).

'ABC%': Todas las líneas que comienzan con 'ABC'. Por ejemplo, 'ABCD' y 'ABCABC'
ambas deberían satisfacer la condición.

'%XYZ': Todas las líneas que terminan con 'XYZ'. Por ejemplo, 'WXYZ' y 'ZZXYZ'
ambas deberían satisfacer la condición.

'%AN%': : Todas las líneas que contienen el patrón 'AN' en cualquier lado. Por
ejemplo, 'LOS ANGELES' y 'SAN FRANCISCO' ambos deberían satisfacer la
condición.
Deseamos encontrar todos los negocios cuyos nombres contengan ‘AN’. Para hacerlo,
ingresamos,
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999

SELECT *
FROM Store_Information
WHERE Store_Name LIKE '%AN%';

Store_Name Sales Txn_Date


LOS ANGELES 1500 05-Jan-1999
SAN DIEGO 250 07-Jan-1999
SAN FRANCISCO 300 08-Jan-1999
SELECT "nombre_columna"
FROM "nombre_tabla"
[WHERE "condición"]
ORDER BY "nombre_columna" [ASC, DESC];

[ ] significa que la instrucción WHERE es opcional. Sin embargo, si existe una


cláusula WHERE, viene antes de la cláusula ORDER BY ASC significa que los resultados
se mostrarán en orden ascendente, y DESC significa que los resultados se mostrarán
en orden descendente. Si no se especifica ninguno, la configuración predeterminada
es ASC.

Es posible ordenar por más de una columna. En este caso, la cláusula ORDER
BY anterior se convierte en

ORDER BY "nombre1_columna" [ASC, DESC], "nombre2_columna" [ASC, DESC]


SELECT Store_Name, Sales, Txn_Date
FROM Store_Information
ORDER BY Sales DESC;

Store_Name Sales Txn_Date


Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999

Store_Name Sales Txn_Date


Los Angeles 1500 05-Jan-1999
Boston 700 08-Jan-1999
San Francisco 300 08-Jan-1999
San Diego 250 07-Jan-1999
Además del nombre de la columna, podríamos utilizar la posición de la columna
(según la consulta SQL) para indicar en qué columna deseamos aplicar la
cláusula ORDER BY. La primera columna es 1, y la segunda columna es 2, y así
sucesivamente. En el ejemplo anterior, alcanzaremos los mismos resultados con el
siguiente comando:

SELECT Store_Name, Sales, Txn_Date


FROM Store_Information
ORDER BY 2 DESC;
1. Inserte 4 registros en cada tabla.
2. Seleccione los actores cuyo color de piel sea cobrizo.
3. Muestre los actores con código menor a 5.
4. Muestre las películas cuya duración se encuentre entre 80 y 120 minutos.
5. Elimine los detalles de película que registran películas cuyo código de película se
encuentre entre 1 y 3.
6. Actualice el color de ojos a ‘MARRÓN OSCURO’ de los actores con código 1 o 4.