1 manual oracle

18
05/03/13 Descripción : Instalación de Oracle. (Oracle) 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

Upload: elsiita-hdz-b

Post on 24-Oct-2015

73 views

Category:

Documents


10 download

TRANSCRIPT

05/03/13 Descripción : Instalación de Oracle. (Oracle)

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

05/03/13 Descripción : Crear tablas (create table - describe - all_tables - drop table) (Oracle)

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.

05/03/13 Descripción : Crear tablas (create table - describe - all_tables - drop table) (Oracle)

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.

05/03/13 Ejercicios resueltos : Crear tablas (create table - describe - all_tables - drop table)(Oracle)

2 - Crear tablas (create table - describe - all_tables - drop table)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;

05/03/13 Descripción : Ingresar registros (insert into- select) (Oracle)

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');

05/03/13 Ejercicios resueltos : Ingresar registros (insert into- select)(Oracle)

3 - Ingresar registros (insert into- select)

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 payasoJuan RiverBoca 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".

05/03/13 Descripción : Tipos de datos (Oracle)

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)".

05/03/13 Ejercicios resueltos : Tipos de datos(Oracle)

4 - Tipos de datos

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 100Matematica 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:

05/03/13 Ejercicios resueltos : Tipos de datos(Oracle)

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.

05/03/13 Descripción : Recuperar algunos campos (select) (Oracle)

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.

05/03/13 Ejercicios resueltos : Recuperar algunos campos (select)(Oracle)

5 - Recuperar algunos campos (select)

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 100Alicia en el pais de las maravillas Lewis Carroll Atlantida 10 200Matematica 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 EmeceAlicia en el pais de las maravillas Lewis Carroll AtlantidaMatematica 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.50Alicia en el pais de las maravillas 10Matematica estas ahi 18.8

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

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

Eliminamos la tabla:

Problema:

05/03/13 Ejercicios resueltos : Recuperar algunos campos (select)(Oracle)

select editorial,cantidad from libros;

Aparece la siguiente tabla:

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

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

6 - Recuperar algunos registros (where)

Problema:

Trabajamos con la tabla "usuarios" que consta de 2 campos: nombre de usuario y clave.

Eliminamos la tabla si ya existe:

drop table usuarios;

Creamos la tabla:

create table usuarios ( nombre varchar2(30), clave varchar2(10) );

Vemos la estructura de la tabla:

describe usuarios;

Ingresamos algunos registros:

insert into usuarios (nombre, clave) values ('Marcelo','Boca'); insert into usuarios (nombre, clave) values ('JuanPerez','Juancito'); insert into usuarios (nombre, clave) values ('Susana','River'); insert into usuarios (nombre, clave) values ('Luis','River');

Realizamos una consulta especificando una condición, queremos ver toda la información del usuario cuyo nombre es "Marcelo":

select *from usuarios where nombre='Leonardo';

Nos muestra todos los campos del registro en el cual el campo "nombre" es igual a "Marcelo".

Queremos ver el nombre de los usuarios cuya clave es "River":

select nombre from usuarios where clave='River';

Nos muestra 2 usuarios.

Realizamos un "select" de los nombres de los usuarios cuya clave es "Santi":

select nombre from usuarios where clave='Santi';

No se muestra ningún registro ya que ninguno cumple la condición.

05/03/13 Descripción : Recuperar algunos registros (where) (Oracle)

6 - Recuperar algunos registros (where)

Hemos aprendido a seleccionar algunos campos de una tabla.

También es posible recuperar algunos registros.

Existe una cláusula, "where" con la cual podemos especificar condiciones para una consulta "select".

Es decir, podemos recuperar algunos registros, sólo los que cumplan con ciertas condiciones indicadas

con la cláusula "where". Por ejemplo, queremos ver el usuario cuyo nombre es "Marcelo", para ello

utilizamos "where" y luego de ella, la condición:

select nombre, clave from usuarios where nombre='Marcelo';

La sintaxis básica y general es la siguiente:

select NOMBRECAMPO1, ..., NOMBRECAMPOn from NOMBRETABLA where CONDICION;

Para las condiciones se utilizan operadores relacionales (tema que trataremos más adelante en detalle). El signo igual(=) es un operador relacional. Para la

siguiente selección de registros especificamos una condición que solicita los usuarios cuya clave es igual a "River":

select nombre,clave from usuarios where clave='River';

Si ningún registro cumple la condición establecida con el "where", no aparecerá ningún registro.

Entonces, con "where" establecemos condiciones para recuperar algunos registros.

Para recuperar algunos campos de algunos registros combinamos en la consulta la lista de campos y la cláusula "where":

select nombre from usuarios where clave='River';

En la consulta anterior solicitamos el nombre de todos los usuarios cuya clave sea igual a "River".

05/03/13 Descripción : Operadores relacionales (Oracle)

7 - Operadores relacionales

Los operadores son símbolos que permiten realizar operaciones matemáticas, concatenar cadenas,

hacer comparaciones.

Oracle reconoce de 4 tipos de operadores:

1) relacionales (o de comparación)2) aritméticos3) de concatenación 4) lógicos

Por ahora veremos solamente los primeros.

Los operadores relacionales (o de comparación) nos permiten comparar dos expresiones, que pueden

ser variables, valores de campos, etc.

Hemos aprendido a especificar condiciones de igualdad para seleccionar registros de una tabla; por ejemplo:

select *from libros where autor='Borges';

Utilizamos el operador relacional de igualdad.

Los operadores relacionales vinculan un campo con un valor para que Oracle compare cada registro (el campo especificado) con el valor dado.

Los operadores relacionales son los siguientes:

= igual<> distinto> mayor< menor>= mayor o igual<= menor o igual

Podemos seleccionar los registros cuyo autor sea diferente de "Borges", para ello usamos la condición:

select * from libros where autor<>'Borges';

Podemos comparar valores numéricos. Por ejemplo, queremos mostrar los títulos y precios de los libros cuyo precio sea mayor a 20 pesos:

select titulo, precio from libros where precio>20;

Queremos seleccionar los libros cuyo precio sea menor o igual a 30:

select *from libros where precio<=30;

Los operadores relacionales comparan valores del mismo tipo. Se emplean para comprobar si un campo cumple con una condición.

No son los únicos, existen otros que veremos mas adelante.

05/03/13 Ejercicios resueltos : Operadores relacionales(Oracle)

7 - Operadores relacionales

Problema:

Trabajamos con la tabla "libros" de una librería.

Eliminamos la tabla "libros":

drop table libros;

La creamos con la siguiente estructura:

create table libros( titulo varchar2(30), autor varchar2(30), editorial varchar2(15), precio number(5,2) );

Agregamos registros a la tabla:

insert into libros (titulo,autor,editorial,precio) values ('El aleph','Borges','Emece',24.50); insert into libros (titulo,autor,editorial,precio) values ('Martin Fierro','Jose Hernandez','Emece',16.00); insert into libros (titulo,autor,editorial,precio) values ('Aprenda PHP','Mario Molina','Emece',35.40); insert into libros (titulo,autor,editorial,precio) values ('Cervantes y el quijote','Borges','Paidos',50.90);

Seleccionamos los registros cuyo autor sea diferente de 'Borges':

select *from libros where autor<>'Borges';

Seleccionamos los registros cuyo precio supere los 20 pesos, sólo el título y precio:

select titulo,precio from libros where precio>20;

Note que el valor con el cual comparamos el campo "precio", como es numérico, no se coloca entre comillas. Los libros cuyo precio es menor a 20 pesos no

aparecen en la selección.

Recuperamos aquellos libros cuyo precio es menor o igual a 30:

select *from libros where precio<=30;

05/03/13 Descripción : Borrar registros (delete) (Oracle)

8 - Borrar registros (delete)

Para eliminar los registros de una tabla usamos el comando "delete".

Sintaxis básica:

delete from NOMBRETABLA;

Se coloca el comando delete seguido de la palabra clave "from" y el nombre de la tabla de la cual

queremos eliminar los registros. En el siguiente ejemplo se eliminan los registros de la tabla

"usuarios":

delete from usuarios;

Luego, un mensaje indica la cantidad de registros que se han eliminado.

Si no queremos eliminar todos los registros, sino solamente algunos, debemos indicar cuál o cuáles;

para ello utilizamos el comando "delete" junto con la clausula "where" con la cual establecemos la

condición que deben cumplir los registros a borrar.

Por ejemplo, queremos eliminar aquel registro cuyo nombre de usuario es "Marcelo":

delete from usuarios where nombre='Marcelo';

Si solicitamos el borrado de un registro que no existe, es decir, ningún registro cumple con la condición especificada, aparecerá un mensaje indicando que

ningún registro fue eliminado, pues no encontró registros con ese dato.

Tenga en cuenta que si no colocamos una condición, se eliminan todos los registros de la tabla especificada.

8 - Borrar registros (delete)Problema:

Trabajamos con la tabla "usuarios".

Eliminamos la tabla "usuarios":

drop table usuarios;

La creamos con la siguiente estructura:

create table usuarios( nombre varchar2(30), clave varchar2(10) );

Agregamos registros a la tabla:

insert into usuarios (nombre,clave) values ('Marcelo','River'); insert into usuarios (nombre,clave) values ('Susana','chapita'); insert into usuarios (nombre,clave) values ('CarlosFuentes','Boca'); insert into usuarios (nombre,clave) values ('FedericoLopez','Boca');

Seleccionamos todos los registros:

select *from usuarios;

Vamos a eliminar el registro cuyo nombre de usuario es "Marcelo":

delete from usuarios where nombre='Marcelo';

aparece un mensaje indicando que se ha borrado 1 fila.

Intentamos eliminarlo nuevamente:

delete from usuarios where nombre='Marcelo';

Como ningún registro cumple con la condición especificada (nombre igual a Marcelo), aparecerá un mensaje indicando que ningún registro fue borrado.

Eliminamos todos los registros cuya clave es 'Boca':

delete from usuarios where clave='Boca';

Aparece un mensaje indicando que 2 registros fueron eliminados, es decir, se eliminaron los 2 registros cuyas claves eran igual a "River".

Eliminemos todos los registros:

delete from usuarios;

Veamos el contenido de la tabla:

select * from usuarios;

No hay registros.

05/03/13 Descripción : Actualizar registros (update) (Oracle)

9 - Actualizar registros (update)

Decimos que actualizamos un registro cuando modificamos alguno de sus valores.

Para modificar uno o varios datos de uno o varios registros utilizamos "update" (actualizar).

Sintaxis básica:

update NOMBRETABLA set CAMPO=NUEVOVALOR;

Utilizamos "update" junto al nombre de la tabla y "set" junto con el campo a modificar y su nuevo

valor.

El cambio afectará a todos los registros.

Por ejemplo, en nuestra tabla "usuarios", queremos cambiar los valores de todas las claves, por

"RealMadrid":

update usuarios set clave='RealMadrid';

Podemos modificar algunos registros, para ello debemos establecer condiciones de selección con "where".

Por ejemplo, queremos cambiar el valor correspondiente a la clave de nuestro usuario llamado "Federicolopez", queremos como nueva clave "Boca",

necesitamos una condición "where" que afecte solamente a este registro:

update usuarios set clave='Boca' where nombre='Federicolopez';

Si Oracle no encuentra registros que cumplan con la condición del "where", un mensaje indica que ningún registro fue modificado.

Las condiciones no son obligatorias, pero si omitimos la cláusula "where", la actualización afectará a todos los registros.

También podemos actualizar varios campos en una sola instrucción:

update usuarios set nombre='Marceloduarte', clave='Marce' where nombre='Marcelo';

Para ello colocamos "update", el nombre de la tabla, "set" junto al nombre del campo y el nuevo valor y separado por coma, el otro nombre del campo con

su nuevo valor.

05/03/13 Ejercicios resueltos : Actualizar registros (update)(Oracle)

9 - Actualizar registros (update)

Problema:

Trabajamos con la tabla "usuarios".

Eliminamos la tabla:

drop table usuarios;

Creamos la tabla:

create table usuarios( nombre varchar2(20), clave varchar2(10) );

Ingresamos algunos registros:

insert into usuarios (nombre,clave) values ('Marcelo','River'); insert into usuarios (nombre,clave) values ('Susana','chapita'); insert into usuarios (nombre,clave) values ('Carlosfuentes','Boca'); insert into usuarios (nombre,clave) values ('Federicolopez','Boca');

Cambiaremos los valores de todas las claves, por la cadena "RealMadrid":

update usuarios set clave='RealMadrid';

Un mensaje indica que se actualizaron 4 registros.

El cambio afectó a todos los registros, veámoslo:

select *from usuarios;

Necesitamos cambiar el valor de la clave del usuario llamado "Federicolopez" por "Boca":

update usuarios set clave='Boca' where nombre='Federicolopez';

Verifiquemos que la actualización se realizó:

select *from usuarios;

Vimos que si Oracle no encuentra registros que cumplan con la condición del "where", un mensaje indica que ningún registro se modifica:

update usuarios set clave='payaso' where nombre='JuanaJuarez';

Para actualizar varios campos en una sola instrucción empleamos:

update usuarios set nombre='Marceloduarte', clave='Marce' where nombre='Marcelo';

Verifiquemos que la actualización se realizó:

select *from usuarios;