You are on page 1of 25

1 - Instalación de Oracle.

Para este curso utilizaremos la versión Oracle 10g XE (Express Edition para Windows) Para
descargar el mismo debemos ingresar al sitio de Oracle:

1. Oracle 10g XE
2. Para permitir descargarlo del sitio seleccionamos con el mouse el control Radio
"Accept License Agreement".
3. Luego seleccionamos la versión "Oracle Database 10g Express Edition (Universal)"
(OracleXEUniv.exe (216,933,372 bytes))
4. El sitio de Oracle requiere que nos registremos. Debemos seleccionar "sign up now" y
luego "Create your Oracle account now", es decir crear una cuenta Oracle.
Luego de habernos registrado podemos descargar el motor de base de datos Oracle.
5. El paso siguiente es instalar el gestor de base de datos propiamente dicho.
Ejecutamos el archivo que acabamos de descargar: OracleXEUniv.exe
Debemos ir presionando el botón "siguiente" en el asistente de instalación, salvo
cuando nos pide ingresar la contraseña de la base de datos, es importante no olvidar
dicha clave.
Luego de algunos minutos ya tenemos instalado el gestor de bases de datos Oracle en
nuestro equipo.

La segunda aplicación que instalaremos será el "Oracle SQL Developer". Es un entorno


visual que nos permite comunicar con nuestro gestor de base de datos Oracle. Desde este
entorno aprenderemos a administrar una base de datos Oracle.

1. Debemos ingresar a la siguiente página para descargar el Oracle SQL Developer


2. Aceptamos la licencia y seleccionamos "Oracle SQL Developer for Windows
(JDK1.5.0_06 is bundled in this zip)
3. Luego de descargar el archivo procedemos a descomprimir el archivo zip en una
carpeta (este programa no requiere instalación)
4. En la carpeta donde descomprimimos debemos ejecutar el archivo sqldeveloper.exe
2 - Crear tablas (create table - describe - all_tables - drop table)

Existen varios objetos de base de datos: tablas, constraints (restricciones), vistas,


secuencias, índices, agrupamientos (clusters), disparadores (triggers), instantaneas
(snapshots), procedimientos, funciones, paquetes, sinónimos, usuarios, perfiles, privilegios,
roles, etc.

Los primeros objetos que veremos son tablas.

Una base de datos almacena su información en tablas, que es la unidad básica de


almacenamiento.
Una tabla es una estructura de datos que organiza los datos en columnas y filas; cada
columna es un campo (o atributo) y cada fila, un registro. La intersección de una columna con
una fila, contiene un dato específico, un solo valor.
Cada registro contiene un dato por cada columna de la tabla. Cada campo (columna) debe
tener un nombre. El nombre del campo hace referencia a la información que almacenará.
Cada campo (columna) también debe definir el tipo de dato que almacenará.

Las tablas forman parte de una base de datos.

Nosotros trabajaremos con la base de datos ya creada.

Para ver las tablas existentes tipeamos:

select *from all_tables;

Aparece una tabla que nos muestra en cada fila, los datos de una tabla específica; en la
columna "TABLE_NAME" aparece el nombre de cada tabla existente.

Al crear una tabla debemos resolver qué campos (columnas) tendrá y que tipo de datos
almacenarán cada uno de ellos, es decir, su estructura.

La sintaxis básica y general para crear una tabla es la siguiente:

create table NOMBRETABLA(


NOMBRECAMPO1 TIPODEDATO,
...
NOMBRECAMPON TIPODEDATO
);

La tabla debe ser definida con un nombre que la identifique y con el cual accederemos a ella.
Creamos una tabla llamada "usuarios" y entre paréntesis definimos los campos y sus tipos:

create table usuarios(


nombre varchar2(30),
clave varchar2(10)
);

Cada campo con su tipo debe separarse con comas de los siguientes, excepto el último.
Cuando se crea una tabla debemos indicar su nombre y definir al menos un campo con su
tipo de dato. En esta tabla "usuarios" definimos 2 campos:

- nombre: que contendrá una cadena de caracteres de 30 caracteres de longitud, que


almacenará el nombre de usuario y
- clave: otra cadena de caracteres de 10 de longitud, que guardará la clave de cada usuario.

Cada usuario ocupará un registro de esta tabla, con su respectivo nombre y clave.

Para nombres de tablas, se puede utilizar cualquier caracter permitido para nombres de
directorios, el primero debe ser un caracter alfabético y no puede contener espacios. La
longitud máxima es de 30 caracteres.

Si intentamos crear una tabla con un nombre ya existente (existe otra tabla con ese nombre),
mostrará un mensaje indicando que a tal nombre ya lo está utilizando otro objeto y la
sentencia no se ejecutará.

Para ver la estructura de una tabla usamos el comando "describe" junto al nombre de la
tabla:

describe usuarios;

Aparece la siguiente información:

Name Null Type


-------------------------------
NOMBRE VARCHAR2(30)
CLAVE VARCHAR2(10)

Esta es la estructura de la tabla "usuarios"; nos muestra cada campo, su tipo y longitud y
otros valores que no analizaremos por el momento.

Para eliminar una tabla usamos "drop table" junto al nombre de la tabla a eliminar:

drop table NOMBRETABLA;

En el siguiente ejemplo eliminamos la tabla "usuarios":

drop table usuarios;

Si intentamos eliminar una tabla que no existe, aparece un mensaje de error indicando tal
situación y la sentencia no se ejecuta.

Problema:

Para probar todos los ejercicios resueltos y propuestos debemos ingresar al sqldeveloper.exe y
luego en el entorno crear una nueva conexión:

1. Elegimos File -> New y seleccionamos "New Connection" y presionamos el botón "Aceptar".
2. Ingresamos los campos Connection Name (por ejemplo ingresamos "prueba"), en el campo
Username ingresamos el usuario SYSTEM y por último en el campo Password ingresamos la
clave que creamos al instalar Oracle.
3. Luego en la ventana que aparece el mansaje "Enter SQL Statement" debemos tipear los
comandos SQL y mediante el primer botón "triangulo verde" ejecutaremos el comando SQL
donde se encuentra el cursos (también podemos ejecutar todos los comando SQL mediante el
segundo botón.

Veamos las tablas existentes:

select *from all_tables;

Aparece una tabla que nos muestra todas las tablas; la columna "TABLE_NAME" contiene el nombre
de cada tabla.

Vamos a crear una tabla denominada "usuarios". En primer lugar vamos a eliminar la tabla "usuarios"
porque si ya existe no podremos crear otra con el mismo nombre.

drop table usuarios;

Si la tabla no existe aparecerá un mensaje indicando tal situación.

Ahora si creamos una tabla llamada "usuarios" con dos campos:

- nombre: cadena de caracteres que no supere los 30 caracteres y


- clave: cadena que no supere los 10 caracteres:

create table USUARIOS(


nombre varchar2(30),
clave varchar2(10)
);

Aparece un mensaje que indica que la sentencia "create table" ha sido procesada.
Cada usuario ocupará un registro de esta tabla, con su respectivo nombre y clave.

Podemos verificar que se ha creado:

select *from all_tables;

La tabla "usuarios" Debe aparecer en la lista.

Veamos la estructura de la tabla "usuarios":

describe usuarios;

Aparece la siguiente información:

Name Null Type


-------------------------------
NOMBRE VARCHAR2(30)
CLAVE VARCHAR2(10)
Nos informa que la tabla "usuarios" tiene 2 campos, el campo "nombre" de tipo "varchar2" de 30
caracteres de longitud y el campo "clave", de tipo "varchar2" de 10 caracteres de longitud. La
columna "Null" aparece vacía y la explicaremos más adelante.

Intentemos crear una tabla con el mismo nombre, mostrará un mensaje indicando que ya hay un
objeto llamado "usuarios" y la sentencia no se ejecutará:

create table usuarios (


nombre varchar(30),
clave varchar(10)
);

Eliminemos la tabla:

drop table usuarios;

Verifiquemos si se ha eliminado:

select *from all_tables;

no debe aparecer la tabla "usuarios".

Primer problema:

Necesita almacenar los datos de amigos en una tabla. Los datos que guardará serán: apellido,
nombre, domicilio y teléfono.

1- Elimine la tabla "agenda"


Si no existe, un mensaje indicará tal situación.

2- Intente crear una tabla llamada "*agenda"

create table *agenda(


apellido varchar2(30),
nombre varchar2(20),
domicilio varchar2(30),
telefono varchar2(11)
);
aparece un mensaje de error indicando que usamos un caracter inválido ("*") para el nombre de la
tabla.

3- Cree una tabla llamada "agenda", debe tener los siguientes campos: apellido, varchar2(30);
nombre, varchar2(20); domicilio, varchar2 (30) y telefono, varchar2(11)
Un mensaje indica que la tabla ha sido creada exitosamente.

4- Intente crearla nuevamente.


Aparece mensaje de error indicando que el nombre ya lo tiene otro objeto.

5- Visualice las tablas existentes (all_tables)


La tabla "agenda" aparece en la lista.
6- Visualice la estructura de la tabla "agenda" (describe)
Aparece la siguiente tabla:

Name Null Type


-----------------------
APELLIDO VARCHAR2(30)
NOMBRE VARCHAR2(20)
DOMICILIO VARCHAR2(30)
TELEFONO VARCHAR2(11)

drop table agenda;

create table *agenda(


apellido varchar2(30),
nombre varchar2(20),
domicilio varchar2(30),
telefono varchar2(11)
);

create table agenda(


apellido varchar2(30),
nombre varchar2(20),
domicilio varchar2(30),
telefono varchar2(11)
);

create table agenda(


apellido varchar2(30),
nombre varchar2(20),
domicilio varchar2(30),
telefono varchar2(11)
);

select *from all_tables;

describe agenda;

Segundo problema:

Necesita almacenar información referente a los libros de su biblioteca personal. Los datos que
guardará serán: título del libro, nombre del autor y nombre de la editorial.

1- Elimine la tabla "libros"


Si no existe, un mensaje indica tal situación.

2- Verifique que la tabla "libros" no existe (all_tables)


No aparece en la lista.
3- Cree una tabla llamada "libros". Debe definirse con los siguientes campos: titulo, varchar2(20);
autor, varchar2(30) y editorial, varchar2(15)

4- Intente crearla nuevamente:


Aparece mensaje de error indicando que existe un objeto con el nombre "libros".

5- Visualice las tablas existentes

6- Visualice la estructura de la tabla "libros":


Aparece "libros" en la lista.

7- Elimine la tabla

8- Intente eliminar la tabla


Un mensaje indica que no existe.

drop table libros;

select *from all_tables;

create table libros(


titulo varchar2(20),
autor varchar2(30),
editorial varchar2(15)
);

create table libros(


titulo varchar2(20),
autor varchar2(30),
editorial varchar2(15)
);

select *from all_tables;

describe libros;

drop table libros;

drop table libros;


3 - Ingresar registros (insert into- select)

Un registro es una fila de la tabla que contiene los datos propiamente dichos. Cada registro
tiene un dato por cada columna (campo). Nuestra tabla "usuarios" consta de 2 campos,
"nombre" y "clave".

Al ingresar los datos de cada registro debe tenerse en cuenta la cantidad y el orden de los
campos.

La sintaxis básica y general es la siguiente:

insert into NOMBRETABLA (NOMBRECAMPO1, ..., NOMBRECAMPOn)


values (VALORCAMPO1, ..., VALORCAMPOn);

Usamos "insert into", luego el nombre de la tabla, detallamos los nombres de los campos
entre paréntesis y separados por comas y luego de la cláusula "values" colocamos los
valores para cada campo, también entre paréntesis y separados por comas.

En el siguiente ejemplo se agrega un registro a la tabla "usuarios", en el campo "nombre" se


almacenará "Mariano" y en el campo "clave" se guardará "payaso":

insert into usuarios (nombre, clave)


values ('Mariano','payaso');

Luego de cada inserción aparece un mensaje indicando la cantidad de registros ingresados.

Note que los datos ingresados, como corresponden a cadenas de caracteres se colocan
entre comillas simples.

Para ver los registros de una tabla usamos "select":

select *from usuarios;

El comando "select" recupera los registros de una tabla. Con el asterisco indicamos que
muestre todos los campos de la tabla "usuarios".

Aparece la tabla, sus campos y registros ingresados; si no tiene registros, aparecerían


solamente los campos y la tabla vacía).

Es importante ingresar los valores en el mismo orden en que se nombran los campos: En el
siguiente ejemplo se lista primero el campo "clave" y luego el campo "nombre" por eso, los
valores también se colocan en ese orden:

insert into usuarios (clave, nombre)


values ('River','Juan');

Si ingresamos los datos en un orden distinto al orden en que se nombraron los campos, no
aparece un mensaje de error y los datos se guardan de modo incorrecto.
En el siguiente ejemplo se colocan los valores en distinto orden en que se nombran los
campos, el valor de la clave (la cadena "Boca") se guardará en el campo "nombre" y el valor
del nombre (la cadena "Luis") en el campo "clave":

insert into usuarios (nombre,clave)


values ('Boca','Luis');

Problema:

Vemos si la tabla "usuarios" existe:

select *from all_tables;

Si existe la eliminamos:

drop table usuarios;

Creamos una nueva tabla denominada "usuarios" con los siguientes campos:

create table usuarios(


nombre varchar2(30),
clave varchar2(10)
);

Veamos si tiene registros:

select *from usuarios;

No tiene, la tabla aparece vacía, solamente vemos las columnas que muestran los nombres de sus
campos.

Agregamos un registro a la tabla:

insert into usuarios (nombre, clave)


values ('Mariano','payaso');

Un mensaje indica que se ingreso una fila.

Veamos nuevamente los registros de la tabla "usuarios":

select *from usuarios;

Aparece la siguiente tabla:

NOMBRE CLAVE
-------------
Mariano payaso

La tabla contiene un solo registro, el ingresado recientemente.

Ingresamos otro registro, esta vez cambiamos el orden de los campos:

insert into usuarios (clave, nombre)


values ('River','Juan');
Ingresamos los datos en un orden distinto al orden en que se nombran los campos, no aparece un
mensaje de error y los datos se guardan de modo incorrecto:

insert into usuarios (nombre,clave)


values ('Boca','Luis');

Veamos cómo se almacenaron los datos:

select *from usuarios;

Aparece la siguiente tabla:

NOMBRE CLAVE
-------------
Mariano payaso
Juan River
Boca Luis

La tabla tiene 3 registros. Note que la clave "Boca" se guardó en el campo "nombre" y el nombre de
usuario "Luis" en el campo "clave".

Primer problema:

Trabaje con la tabla "agenda" que almacena información de sus amigos.

1- Elimine la tabla "agenda"

2- Cree una tabla llamada "agenda". Debe tener los siguientes campos: apellido (cadena de 30),
nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11)

3- Visualice las tablas existentes para verificar la creación de "agenda" (all_tables)

4- Visualice la estructura de la tabla "agenda" (describe)

5- Ingrese los siguientes registros:

insert into agenda (apellido, nombre, domicilio, telefono)


values ('Moreno','Alberto','Colon 123','4234567');
insert into agenda (apellido,nombre, domicilio, telefono)
values ('Torres','Juan','Avellaneda 135','4458787');

6- Seleccione todos los registros de la tabla.

7- Elimine la tabla "agenda"

8- Intente eliminar la tabla nuevamente (aparece un mensaje de error)

drop table agenda;

create table agenda(


apellido varchar2(30),
nombre varchar2(20),
domicilio varchar2(30),
telefono varchar2(11)
);

select *from all_tables;

describe agenda;

insert into agenda (apellido, nombre, domicilio, telefono)


values ('Moreno','Alberto','Colon 123','4234567');
insert into agenda (apellido,nombre, domicilio, telefono)
values ('Torres','Juan','Avellaneda 135','4458787');

select *from agenda;

drop table agenda;

drop table agenda;

Segundo problema:

Trabaje con la tabla "libros" que almacena los datos de los libros de su propia biblioteca.

1- Elimine la tabla "libros"

2- Cree una tabla llamada "libros". Debe definirse con los siguientes campos: titulo (cadena de 20),
autor (cadena de 30) y editorial (cadena de 15)

3- Visualice las tablas existentes.

4- Visualice la estructura de la tabla "libros"

Muestra los campos y los tipos de datos de la tabla "libros".

5- Ingrese los siguientes registros:

insert into libros (titulo,autor,editorial)


values ('El aleph','Borges','Planeta');
insert into libros (titulo,autor,editorial)
values ('Martin Fierro','Jose Hernandez','Emece');
insert into libros (titulo,autor,editorial)
values ('Aprenda PHP','Mario Molina','Emece');

6- Muestre todos los registros (select) de "libros"


drop table libros;

create table libros(


titulo varchar2(30),
autor varchar2(30),
editorial varchar2(15)
);

select *from all_tables;

describe libros;

insert into libros (titulo,autor,editorial)


values ('El aleph','Borges','Planeta');
insert into libros (titulo,autor,editorial)
values ('Martin Fierro','Jose Hernandez','Emece');
insert into libros (titulo,autor,editorial)
values ('Aprenda PHP','Mario Molina','Emece');

select *from libros;


4 - Tipos de datos

Ya explicamos que al crear una tabla debemos resolver qué campos (columnas) tendrá y que
tipo de datos almacenará cada uno de ellos, es decir, su estructura.

El tipo de dato especifica el tipo de información que puede guardar un campo: caracteres,
números, etc.

Estos son algunos tipos de datos básicos de Oracle (posteriormente veremos otros y con
más detalle):

 - varchar2: se emplea para almacenar cadenas de caracteres. Una cadena es una


secuencia de caracteres. Se coloca entre comillas simples; ejemplo: 'Hola', 'Juan
Perez', 'Colon 123'. Este tipo de dato definen una cadena de longitud variable en la
cual determinamos el máximo de caracteres entre paréntesis. Puede guardar hasta xxx
caracteres. Por ejemplo, para almacenar cadenas de hasta 30 caracteres, definimos
un campo de tipo varchar2 (30), es decir, entre paréntesis, junto al nombre del campo
colocamos la longitud.
Si intentamos almacenar una cadena de caracteres de mayor longitud que la definida,
la cadena no se carga, aparece un mensaje indicando tal situación y la sentencia no se
ejecuta.
Por ejemplo, si definimos un campo de tipo varchar(10) e intentamos almacenar en él
la cadena 'Buenas tardes', aparece un mensaje indicando que el valor es demasiado
grande para la columna.
 - number(p,s): se usa para guardar valores numéricos con decimales, de 1.0 x10-120 a
9.9...(38 posiciones). Definimos campos de este tipo cuando queremos almacenar
valores numéricos con los cuales luego realizaremos operaciones matemáticas, por
ejemplo, cantidades, precios, etc.
Puede contener números enteros o decimales, positivos o negativos. El parámetro "p"
indica la precisión, es decir, el número de dígitos en total (contando los decimales) que
contendrá el número como máximo. El parámetro "s" especifica la escala, es decir, el
máximo de dígitos decimales. Por ejemplo, un campo definido "number(5,2)" puede
contener cualquier número entre 0.00 y 999.99 (positivo o negativo).
Para especificar número enteros, podemos omitir el parámetro "s" o colocar el valor 0
como parámetro "s". Se utiliza como separador el punto (.).
Si intentamos almacenar un valor mayor fuera del rango permitido al definirlo, tal valor
no se carga, aparece un mensaje indicando tal situación y la sentencia no se ejecuta.
Por ejemplo, si definimos un campo de tipo number(4,2) e intentamos guardar el valor
123.45, aparece un mensaje indicando que el valor es demasiado grande para la
columna. Si ingresamos un valor con más decimales que los definidos, el valor se
carga pero con la cantidad de decimales permitidos, los dígitos sobrantes se omiten.

Antes de crear una tabla debemos pensar en sus campos y optar por el tipo de dato
adecuado para cada uno de ellos.
Por ejemplo, si en un campo almacenaremos números telefónicos o un números de
documento, usamos "varchar2", no "number" porque si bien son dígitos, con ellos no
realizamos operaciones matemáticas. Si en un campo guardaremos apellidos, y suponemos
que ningún apellido superará los 20 caracteres, definimos el campo "varchar2(20)". Si en un
campo almacenaremos precios con dos decimales que no superarán los 999.99 pesos
definimos un campo de tipo "number(5,2)", es decir, 5 dígitos en total, con 2 decimales. Si en
un campo almacenaremos valores enteros de no más de 3 dígitos, definimos un campo de
tipo "number(3,0)".

Problema:

Eliminamos la tabla "libros":

drop table libros;

Vamos a crear una tabla llamada "libros" para almacenar información de los libros de una librería.
Necesitamos los siguientes campos:

-titulo: cadena de caracteres de 20 de longitud,


-autor: cadena de caracteres de 15 de longitud,
-editorial: caracteres de 10 de longitud,
-precio: valor numérico con 2 decimales y que no superará el valor 9999.99 y
-cantidad: valor numérico entero que no superará el valor 999.

Al crear la tabla, entonces, elegimos el tipo de dato más adecuado para cada campo:

create table libros(


titulo varchar2(20),
autor varchar2(15),
editorial varchar2(10),
precio number(6,2),
cantidad number(3,0)
);

Vemos la estructura de la tabla:

describe libros;

Aparece la siguiente información:

Name Null Type


--------------------------------------
titulo varchar2(20)
autor varchar2(15)
editorial varchar2(10)
precio number(6,2)
cantidad number(3)

Ingresamos algunos registros:

insert into libros (titulo,autor,editorial,precio,cantidad)


values ('El aleph','Borges','Emece',25.50,100);
insert into libros (titulo,autor,editorial,precio,cantidad)
values ('Matematica estas ahi','Paenza','Siglo XXI',18.8,200);

Note que al ingresar valores numéricos no se utilizan comillas y para el separador de decimales se
usa el caracter punto (.).

Veamos los registros cargados:


select *from libros;

Aparece la siguiente tabla:

TITULO AUTOR EDITORIAL PRECIO CANTIDAD


----------------------------------------------------------------
El Aleph Borges Emece 25,5 100
Matematica estas ahi Paenza Siglo XXI 18,8 200

Veamos lo que sucede si intentamos ingresar para el campo "titulo" una cadena de más de 20
caracteres:

insert into libros (titulo,autor,editorial,precio,cantidad)


values ('Alicia en el pais de las maravillas','Lewis Carroll','Atlantida',10,200);

aparece un mensaje de error y la sentencia no se ejecuta.

vamos a cortar la cadena para que SQL Server acepte el ingreso del registro:

insert into libros (titulo,autor,editorial,precio,cantidad)


values ('Alicia en el pais','Lewis Carroll','Atlantida',10,200);

Veamos los registros cargados:

select *from libros;

La tabla tiene ahora 3 registros.

Veamos qué sucede si intentamos ingresar para el campo "cantidad" un valor fuera de rango:

insert into libros (titulo,autor,editorial,precio,cantidad)


values ('El gato con botas','Anonimo','Atlantida',10,2000);

Oracle muestra un mensaje de error y la sentencia no se ejecuta, es decir, el registro no fue


ingresado.

Veamos qué sucede si intentamos ingresar en el campo "precio" un valor con más decimales que los
permitidos:

insert into libros (titulo,autor,editorial,precio,cantidad)


values ('El gato con botas','Anonimo','Atlantida',10.123,200);

La sentencia se ejecutó, el registro ha sido cargado. Veamos cómo se almacenó:

select *from libros;

Oracle omitió el último dígito decimal porque el campo sólo admitía 2 decimales.

Primer problema:
Un videoclub que alquila películas en video almacena la información de sus películas en una tabla
llamada "peliculas"; para cada película necesita los siguientes datos:

-nombre, cadena de caracteres de 20 de longitud,


-actor, cadena de caracteres de 20 de longitud,
-duración, valor numérico entero que no supera los 3 dígitos.
-cantidad de copias: valor entero de un sólo dígito (no tienen más de 9 copias de cada
película).

1- Elimine la tabla "peliculas" si ya existe.

2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo.


Note que los campos "duracion" y "cantidad", que almacenarán valores sin decimales, fueron
definidos de maneras diferentes, en el primero especificamos el valor 0 como cantidad de decimales,
en el segundo no especificamos cantidad de decimales, es decir, por defecto, asume el valor 0.

3- Vea la estructura de la tabla.

4- Ingrese los siguientes registros:

insert into peliculas (nombre, actor, duracion, cantidad)


values ('Mision imposible','Tom Cruise',128,3);
insert into peliculas (nombre, actor, duracion, cantidad)
values ('Mision imposible 2','Tom Cruise',130,2);
insert into peliculas (nombre, actor, duracion, cantidad)
values ('Mujer bonita','Julia Roberts',118,3);
insert into peliculas (nombre, actor, duracion, cantidad)
values ('Elsa y Fred','China Zorrilla',110,2);

5- Muestre todos los registros (4 registros)

6- Intente ingresar una película con valor de cantidad fuera del rango permitido:

insert into peliculas (nombre, actor, duracion, cantidad)


values ('Mujer bonita','Richard Gere',1200,10);
Mensaje de error.

7- Ingrese un valor con decimales en un nuevo registro, en el campo "duracion":

insert into peliculas (nombre, actor, duracion, cantidad)


values ('Mujer bonita','Richard Gere',120.20,4);

8- Muestre todos los registros para ver cómo se almacenó el último registro ingresado.

9- Intente ingresar un nombre de película que supere los 20 caracteres.

drop table peliculas;


create table peliculas(
nombre varchar2(20),
actor varchar2(20),
duracion number(3,0),
cantidad number(1)
);

describe peliculas;

insert into peliculas (nombre, actor, duracion, cantidad)


values ('Mision imposible','Tom Cruise',128,3);
insert into peliculas (nombre, actor, duracion, cantidad)
values ('Mision imposible 2','Tom Cruise',130,2);
insert into peliculas (nombre, actor, duracion, cantidad)
values ('Mujer bonita','Julia Roberts',118,3);
insert into peliculas (nombre, actor, duracion, cantidad)
values ('Elsa y Fred','China Zorrilla',110,2);

select *from peliculas;

insert into peliculas (nombre, actor, duracion, cantidad)


values ('Mujer bonita','Richard Gere',1200,10);

insert into peliculas (nombre, actor, duracion, cantidad)


values ('Mujer bonita','Richard Gere',120.20,4);

select *from peliculas:

insert into peliculas (nombre, actor, duracion, cantidad)


values ('Alicia en el pais de las maravillas','Animados',90,3);

Segundo problema:

Una empresa almacena los datos de sus empleados en una tabla "empleados" que guarda los
siguientes datos: nombre, documento, sexo, domicilio, sueldobasico.

1- Elimine la tabla si existe.

2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo:

create table empleados(


nombre varchar2(20),
documento varchar2(8),
sexo varchar2(1),
domicilio varchar2(30),
sueldobasico number(6,2)
);

3- Verifique que la tabla existe consultando "all_tables"

4- Vea la estructura de la tabla (5 campos)

5- Ingrese algunos registros:

insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)


values ('Juan Perez','22333444','m','Sarmiento 123',500);
insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)
values ('Ana Acosta','24555666','f','Colon 134',650);
insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)
values ('Bartolome Barrios','27888999','m','Urquiza 479',800);

6- Seleccione todos los registros (3 registros)

7- Intente ingresar un registro con el valor "masculino" en el campo "sexo"


Un mensaje indica que el campo está definido para almacenar 1 solo caracter como máximo y está
intentando ingresar 9 caracteres.

8- Intente ingresar un valor fuera de rango, en un nuevo registro, para el campo "sueldobasico"
Mensaje de error.

9- Elimine la tabla

drop table empleados;

create table empleados(


nombre varchar2(20),
documento varchar2(8),
sexo varchar2(1),
domicilio varchar2(30),
sueldobasico number(6,2)
);

select *from all_tables;

describe empleados;

insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)


values ('Juan Perez','22333444','m','Sarmiento 123',500);
insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)
values ('Ana Acosta','24555666','f','Colon 134',650);
insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)
values ('Bartolome Barrios','27888999','m','Urquiza 479',800);

select *from empleados;


insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)
values ('Carlos Caseres','33556688','masculino','Colon 235',900);

insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)


values ('Carlos Caseres','33556688','m','Colon 235',10000.5);

drop table empleados;


5 - Recuperar algunos campos (select)

Hemos aprendido cómo ver todos los registros de una tabla, empleando la
instrucción "select".
La sintaxis básica y general es la siguiente:
select *from NOMBRETABLA;

El asterisco (*) indica que se seleccionan todos los campos de la tabla.

Podemos especificar el nombre de los campos que queremos ver,


separándolos por comas:
select titulo,autor from libros;

La lista de campos luego del "select" selecciona los datos correspondientes a


los campos nombrados. En el ejemplo anterior seleccionamos los campos
"titulo" y "autor" de la tabla "libros", mostrando todos los registros.
Problema:

Trabajamos con la tabla "libros" que almacena los datos de los libros de una librería.
Eliminamos la tabla:

drop table libros;

Creamos la tabla:

create table libros(


titulo varchar2(40),
autor varchar2(30),
editorial varchar2(15),
precio number(6,2),
cantidad number(3,0)
);

Veamos la estructura de la tabla (5 campos):

describe libros;

Ingresamos algunos registros:

insert into libros (titulo,autor,editorial,precio,cantidad)


values ('El aleph','Borges','Emece',25.50,100);
insert into libros (titulo,autor,editorial,precio,cantidad)
values ('Alicia en el pais de las maravillas','Lewis Carroll','Atlantida',10,200);
insert into libros (titulo,autor,editorial,precio,cantidad)
values ('Matematica estas ahi','Paenza','Siglo XXI',18.8,200);

Veamos todos los campos la tabla:

select *from libros;


Aparece la siguiente tabla:

TITULO AUTOR EDITORIAL PRECIO CANTIDAD


-----------------------------------------------------------------------------------------
-
El aleph Borges Emece 25.50 100
Alicia en el pais de las maravillas Lewis Carroll Atlantida 10 200
Matematica estas ahi Paenza Siglo XXI 18.8 200

Recuperamos solamente el título, autor y editorial de todos los libros especificando los nombres de
los campos separados por comas:

select titulo,autor,editorial from libros;

Aparece la siguiente tabla:

TITULO AUTOR EDITORIAL


-----------------------------------------------------------------
El aleph Borges Emece
Alicia en el pais de las maravillas Lewis Carroll Atlantida
Matematica estas ahi Paenza Siglo XXI

Con la siguiente sentencia seleccionamos los títulos y precios de todos los libros:

select titulo,precio from libros;

Aparece la siguiente tabla:

TITULO PRECIO
-----------------------------------------------
El aleph 25.50
Alicia en el pais de las maravillas 10
Matematica estas ahi 18.8

Para ver solamente la editorial y la cantidad de libros, tipeamos:

select editorial,cantidad from libros;

Aparece la siguiente tabla:

EDITORIAL CANTIDAD
-------------------------
Emece 100
Atlantida 200
Siglo XXI 200

Note que en todos los casos recuperamos TODOS los registros, pero solamente ALGUNOS campos
que especificamos.

Primer problema:

Un videoclub que alquila películas en video almacena la información de sus películas en alquiler en
una tabla llamada "peliculas".

1- Elimine la tabla si existe.


2- Cree la tabla:

create table peliculas(


titulo varchar2(20),
actor varchar2(20),
duracion number(3),
cantidad number(1)
);

3- Vea la estructura de la tabla (4 campos)

4- Ingrese los siguientes registros:

insert into peliculas (titulo, actor, duracion, cantidad)


values ('Mision imposible','Tom Cruise',180,3);
insert into peliculas (titulo, actor, duracion, cantidad)
values ('Mision imposible 2','Tom Cruise',190,2);
insert into peliculas (titulo, actor, duracion, cantidad)
values ('Mujer bonita','Julia Roberts',118,3);
insert into peliculas (titulo, actor, duracion, cantidad)
values ('Elsa y Fred','China Zorrilla',110,2);

5- Realice un "select" mostrando solamente el título y actor de todas las películas

6- Muestre el título y duración de todas las peliculas.

7- Muestre el título y la cantidad de copias.

drop table peliculas;

create table peliculas(


titulo varchar2(20),
actor varchar2(20),
duracion number(3),
cantidad number(1)
);

describe peliculas;

insert into peliculas (titulo, actor, duracion, cantidad)


values ('Mision imposible','Tom Cruise',180,3);
insert into peliculas (titulo, actor, duracion, cantidad)
values ('Mision imposible 2','Tom Cruise',190,2);
insert into peliculas (titulo, actor, duracion, cantidad)
values ('Mujer bonita','Julia Roberts',118,3);
insert into peliculas (titulo, actor, duracion, cantidad)
values ('Elsa y Fred','China Zorrilla',110,2);

select titulo,actor from peliculas;

select titulo,duracion from peliculas;

select titulo,cantidad from peliculas;

Segundo problema:

Una empresa almacena los datos de sus empleados en una tabla llamada "empleados".

1- Elimine la tabla si ya existe.

2- Cree la tabla:

create table empleados(


nombre varchar2(20),
documento varchar2(8),
sexo varchar2(1),
domicilio varchar2(30),
sueldobasico number(6,2)
);

3- Vea la estructura de la tabla (5 campos)

4- Ingrese algunos registros:

insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)


values ('Juan Juarez','22333444','m','Sarmiento 123',500);
insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)
values ('Ana Acosta','27888999','f','Colon 134',700);
insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)
values ('Carlos Caseres','31222333','m','Urquiza 479',850);

5- Muestre todos los datos de los empleados.

6- Muestre el nombre, documento y domicilio de los empleados.

7- Realice un "select" mostrando el documento, sexo y sueldo básico de todos los empleados.

drop table empleados;

create table empleados(


nombre varchar2(20),
documento varchar2(8),
sexo varchar2(1),
domicilio varchar2(30),
sueldobasico number(6,2)
);

describe empleados;

insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)


values ('Juan Juarez','22333444','m','Sarmiento 123',500);
insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)
values ('Ana Acosta','27888999','f','Colon 134',700);
insert into empleados (nombre, documento, sexo, domicilio, sueldobasico)
values ('Carlos Caseres','31222333','m','Urquiza 479',850);

select *from empleados;

select nombre,documento,domicilio
from empleados;

select documento,sexo,sueldobasico
from empleados;

You might also like