martes, 31 de julio de 2007

Ejercicios : Select Básicos

1) La siguiente sentencia SELECT se ejecuta correctamente?

SELECT ename, job, sal AS Salario
FROM emp;

verdadero/falso

http://liang.armstrong.edu:5560/isqlplus

2) La siguiente sentencia SELECT se ejecuta correctamente?

SELECT *
FROM salgrade;

Verdadero/Falso

3) Hay cuatro errores de codificación en esta sentencia. ¿Cúales son?

SELECT empno, ename salary x 12
SALARIO ANUAL
FROM emp;


4) Muestre la estructura de la tabla DEPT. Seleccione todos los datos de la tabla.

5) Muestre la estructura de la tabla EMP. Cree una consulta para mostrar el apellido, el cargo, la fecha de contratación, el manager y el número de empleado para cada empleado, con el número de empleado en primer lugar.
Proporcione un alias para la columna.

6) Cree una consulta para mostrar los cargos únicos de la tabla EMP.

7) Mostrar el apellido concatenado con el cargo, separados por una coma y un espacio y llame a la columna Empleado y Cargo

lunes, 30 de julio de 2007

Cadenas de Caracteres Literales

Un literal es un carácter, un número o una fecha que está incluido en la lista SELECT y que no es un nombre de columna o un alias de columna. Un literal está impreso para cada fila devuelta. Las cadenas literales de texto de formato libre se pueden incluir en el resultado de la consulta y son tratados de la misma manera que una columna en la lista SELECT.
Mientras que los literales de caracteres y fecha se deben escribir entre comillas simples (' '), los literales numéricos no.

Ejemplo:

  • Mostrar los cargos y los apellidos de todos los empleados. La columna tiene la cabecera Detalle de Empleado.

SELECT ename ' es un ' job AS "Detalle de Empleado"
FROM emp;

http://liang.armstrong.edu:5560/isqlplus/

Debe recordar que:
Los espacios entre las comillas simples en la sentencia SELECT, mejoran la legibilidad del resultado.

Ejemplo:

  • Mostrar el apellido y el salario de cada empleado, concatenados con un literal para dotar de más significado al resultado.

SELECT ename ': 1 Mes de salario = ' sal Mensualmente
FROM emp;

Operador de Concatenación

Enlaza columnas a otras columnas, expresiones aritméticas o valores constantes para crear una expresión de caracteres mediante el operador de concatenación (alt 124). Las columnas a cada lado del operador se combinan para hacer una única columna de resultados.

Ejemplo:

  • Concatene ENAME y JOB, y asígnele el alias Empleados
SELECT ename ' es un ' job AS "Empleados"
FROM emp;

http://liang.armstrong.edu:5560/isqlplus

Debe recordar que:
El cargo y el apellido del empleado están combinados para formar una única columna de resultados.
La palabra clave AS delante del alias hace que la cláusula SELECT sea más fácil de leer.

Modificar tablas

Cláusula ALTER TABLE

Se utiliza para alterar la definición de una tabla:

  • Añadiendo o eliminando columnas o restricciones.
  • Modificando definiciones de columnas(tipo de datos, Not Null, etc)

Sintaxis:
Para agregar columnas

ALTER TABLE nombre_tabla
ADD ( {colum1 tipo_dato [DEFAULT exp][constraint_colum]}
[, {Colum2 tipo_dato [DEFAULT exp][constraint_colum]}]…);

Ejemplo:

  • Agregue la columna telefono a la tabla emp1 con el tipo Char(8).

ALTER TABLE emp1
ADD (telefono CHAR(8));

http://liang.armstrong.edu:5560/isqlplus

Ejemplo:

  • Agregue la columna pais a la tabla dept; dicha columna deberá ser del tipo de datos Varchar2, longitud 20 y Not null.

ALTER TABLE dept
ADD (pais varchar2(20) NOT NULL);

alter table dept
*
ERROR at line 1: ORA-01758: table must be empty to add mandatory (NOT NULL) column

Debe recordar que:
No es posible añadir una columna nueva que tenga un constraint Not Null a una tabla que tenga datos.

Ejemplo:

  • La comision debe ser menor o igual que el salario.

ALTER TABLE emp1
ADD CHECK(comision <= salario);

Ejemplo:

  • Cree un Foreign Key entre las tablas empx(copia de la tabla emp) y la tabla deptx(copia de la tabla dept).

1. Primero crearemos la copia de las 2 tablas

Copia de la tabla emp

Create Table empx As
Select * from emp;

Copia de la tabla dept

Create table deptx As
Select * from dept;

2. Crearemos ahora el constraint Primary Key en la tabla deptx sobre el campo deptno. (Obligatorio porque al crearse la copia se pierden todos los constraints, excepto los Not Null)

Alter Table deptx
Add constraint pk_deptx Primary Key (deptno);

3. Ahora crearemos el constraint Foreign Key en el campo deptno de la tabla empx. (Recuerde que un departamento tiene varios empleados)

Alter table empx
Add constraint fk_empx_deptx Foreign Key (deptno)
References deptx

4. Verifiquemos la creación del Foreign Key: fk_empx_deptx en la tabla empx.

Select Constraint_name Nombre, Column_name Columna
From User_cons_columns
Where Table_name='EMPX' and Column_name='DEPTNO';

sábado, 28 de julio de 2007

Restricciones de Columnas (Constraints)

La siguiente tabla muestra los diferentes de restricciones manejados por Oracle.








CONSTRAINT USO
PRIMARY KEY Identifica de manera única a cada fila de la tabla
CHECKEspecifica una condición que cada fila en la tabla debe satisfacer.
FOREIGN KEY(columna)Designa una columna o combinación de columnas como la clave foránea.
REFERENCES(columna)Establece y obliga una relación entre esta columna de la clave primaria de la tabla referenciada.
[NOT] NULL Especifica que esta columna no puede contener un valor nulo.
UNIQUE Especifica que una o mas columnas deben tener valores únicos a través de de todas las filas. Oracle crea un índice único para asegurar este constraint.
ON DELETE CASCADE Especifica que Oracle mantendrá la integridad automáticamente removiendo los valores de la clave foránea dependiente si se remueven los valores de la clave primaria o única



Ejemplo:

  • Crear una tabla que utilice los diferentes tipos de constraints. La tabla tendrá nombres de constraints creados por el propio Oracle.

Create table emp1
(Codigo number(4) Primary Key,
Nombre varchar2(10) Unique,
Trabajo varchar2(9) Not Null,
Jefe number(4) Null,
Ingreso date Default Sysdate,
Salario number(7,2) Default 0 Check(salario >= 0),
Comision number(7,2) Default 0 Check(comision > 0),
Dpto number(2) Check(dpto IN (10,20)));

http://liang.armstrong.edu:5560/isqlplus

Mostramos los constraints creados por defecto por Oracle.

Select Constraint_name Nombre, Column_name Columna
From User_cons_columns
Where Table_name='EMP1';

Ejemplo:

  • Elimine varias restricciones simultáneamente.

alter table emp1
drop constraint SYS_C005310
drop constraint SYS_C005309
drop constraint SYS_C005308
drop constraint SYS_C005307
drop constraint SYS_C005306
drop constraint SYS_C005311 ;

Ejemplo:

  • Crear una tabla que utilice los diferentes tipos de constraints. La tabla tendrá nombres de constraints creados por nosotros.

Create table emp_x
(codigo number(4) Constraint Pk_emp_x Primary Key,
Nombre varchar2(10) Constraint Un_nom Unique,
Trabajo varchar2(9) Constraint Nn_trab Not Null,
Jefe number(4) Null,
Ingreso date Default Sysdate,
Salario number(7,2) Default 0 Constraint Ck_sal Check(salario >= 0),
Comm number(7,2) Default 0 Constraint Ck_com Check(comm> 0),
Dpto number(2) Constraint Ck_dep Check(dpto IN (10,20)), Constraint Ck_sal_com Check(salario>=comm));

Ahora mostramos los nombres de constraints.

Select Constraint_name Nombre, Column_name Columna
From User_cons_columns
Where Table_name='EMP_X';

domingo, 22 de julio de 2007

Diccionario de datos de Oracle

El diccionario de datos es un conjunto de tablas y vistas que contienen información descriptiva sobre las tablas, privilegios de acceso y otras características de las base de datos.
Es la fuente central de información tanto para el servidor Oracle como para los administradores y usuarios de la misma.
Se actualiza por el servidor Oracle, siempre que un comando DDL es ejecutado.
El diccionario de datos esta localizado en el tablespace SYSTEM del que es propietario el usuario SYS.

Tablas del diccionario más frecuentemente usadas por los usuarios:



http://liang.armstrong.edu:5560/isqlplus









































USER_CATALOG

Tablas, vistas, sinónimos y secuencias Pertenecientes al usuario.

USER_CONSTRAINTS

Información sobre los constraints en las Tablas del usuario.

USER_INDEXES

Información sobre los índices de los Usuarios

USER_SEQUENCES

Información de las secuencias del Usuario.

USER_SYNONIMOUS

Información de los sinónimos del Usuario.

USER_TABLES

Información de las tablas del

Usuario.

USER_USERS

Información sobre el usuario actual.

USER_VIEWS

Información sobre las vistas del Usuario.

ALL_TABLES

Información de todas las tablas Accesibles al usuario.

V$VERSION

Nos da información sobre la versión de Oracle.

viernes, 20 de julio de 2007

Comentar Tablas

Se pueden añadir comentarios a tablas usando el comando COMMENT.

Sintaxis:
COMMENT ON TABLE nombre_tabla IS
Comentario

Ejemplo:

  • Comente la tabla emp con la frase 'Esta es una tabla que contiene empleados.

COMMENT ON TABLE emp IS
'Esta es una tabla que contiene empleados';

http://liang.armstrong.edu:5560/isqlplus

Debe recordar que:
La información de los comentarios de las tablas es almacenada en una tabla llamada USER_TAB_COMMENTS.

Ejemplo:

  • Para saber donde se almacena el comentario realice el siguiente Select.

Select COMMENTS From USER_TAB_COMMENTS
Where TABLE_NAME='EMP';

jueves, 19 de julio de 2007

Tipos de datos Oracle

La siguiente tabla muestra los diferentes tipos de datos utilizados por Oracle.


Tipo de Dato Descripción

VARCHAR2(n) Dato de caracteres de longitud variable
CHAR(n) Dato de caracteres de longitud fija
NUMBER(p,s) Dato numérico de longitud variable
DATE Valores de fecha y hora
LONG Dato de caracteres de longitud variable de hasta 2 gigabytes
CLOB Dato de caracteres de hasta 4 gigabytes
RAW y LONG RAW Dato raw binario
BLOB Dato binario de hasta 4 gigabytes
BFILE Dato binario almacenado en un archivo externo; hasta 4 Gigabytes
ROWID Sistema numérico de base 64 que representa la dirección única de una fila en su tabla.

Debe recordar que:

No se copia una columna LONG cuando se crea una tabla utilizando una subconsulta.
No se puede incluir una columna LONG en una cláusula GROUP BY u ORDER BY.
Sólo se puede utilizar una columna LONG por tabla.
No se pueden definir restricciones en una columna LONG.
Puede utilizar una columna CLOB en lugar de una columna LONG.

Crear una tabla a partir de un select

Se pueden crear tablas a partir de una sentencia SELECT utilizando la cláusula AS.

Sintaxis:
CREATE TABLE nombre _ tabla [(columna1, columna2,…)]AS sentencia_select;

Ejemplo:

  • Cree la tabla depto1 a partir de una sentencia Select de la tabla Dept

CREATE TABLE depto1 As Select * From dept;

http://liang.armstrong.edu:5560/isqlplus

Veamos la estructura de la tabla depto2:

Describe depto2;

Veamos los datos:

SELECT * From depto2;

Debe recordar que:


La tabla se crea con los nombres de columna especificados y las filas recuperadas por la sentencia SELECT se insertan en la tabla.
La definición de columna sólo puede contener el nombre de columna y el valor por defecto.
Si no se proporcionan especificaciones de columna, los nombres de columna de la tabla son los mismos que los nombres de columna de la subconsulta.
Las reglas de integridad no se transmiten a la nueva tabla, sólo las definiciones de tipo de dato de columna.


Creación de Tablas

Los requisitos de la cláusula CREATE TABLE son:

  • Nombre de la tabla
  • Nombre de la columna
  • Tipo de dato de la columna

Sintaxis:
CREATE TABLE [usuario.] tabla
({columna1 tipo_dato [DEFAULT expr][constraint_colum]}[, {columna2 tipo_dato [DEFAULT expr][constraint_colum]}]…);

Debe recordar que:



Las tablas se pueden crear en cualquier momento, incluso mientras los usuarios utilizan la base de datos.
No es necesario especificar el tamaño de las tablas, ya que se define en última instancia por la cantidad de espacio asignado a la base de datos entera. Sin embargo, es importante estimar cuánto espacio va a utilizar una tabla con el tiempo.
La estructura de tabla se puede modificar en línea.


Ejemplo:

  • Crear la tabla departamento con los siguientes campos: cod_dpto, nombre, ubicación. La Primary Key en el campo cod_dpto.

CREATE TABLE departamento
(cod_dpto NUMBER(2) Primary Key,
nombre VARCHAR2(14),
ubicacion VARCHAR2(13));

http://liang.armstrong.edu:5560/isqlplus

Ejemplo:

  • Crear la tabla departamento1 con los siguientes campos: cod_dpto, nombre y ubicación. La Primary Key para el campo cod_dpto como una continuación de la lista de los campos.

CREATE TABLE departamento1
(cod_dpto NUMBER(2),
nombre VARCHAR2(14),
ubicacion VARCHAR2(13),
Primary Key (cod_dpto));

Ejemplo:

  • Crear la tabla departamento2 con los mismos campos del ejercicio superior; para crear la Primary Key deberá alterar la tabla.

CREATE TABLE departamento2
(cod_dpto NUMBER(2),
Nombre VARCHAR2(14),
Ubicacion VARCHAR2(13));

Ahora alteramos la tabla para añadirle la Primary Key.

Alter table departamento2
Add Primary Key (cod_dpto);

Reglas de nomenclatura:

  • El nombre debe tener como longitud de 1 a 30 caracteres con el primer carácter alfabético A – Z, a – z, 0 – 9, _
  • $ y # también son validos pero no se sugieren
  • No debe ser una palabra reservada de Oracle.
  • No debe ser igual al nombre de otro objeto dentro del mismo usuario de Oracle.

Debe recordar que:


Como la creación de una tabla es una sentencia DDL (Data Definition Language), tiene lugar una validación automática cuando se ejecuta esta sentencia.
Los nombres de la tabla son los mismos ya sean escritos en mayúscula o minúscula.

martes, 17 de julio de 2007

Definición de variables de Usuario

En iSql*Plus es posible definir variables que se pueden utilizar más adelante en el propio programa. Piense en una variable como en una columna de tabla con una sola fila de datos. Al igual que la columna de una tabla, una variable tiene asignada un tipo de dato (númerico o de caracteres) y contiene datos. Lo importante aquí es es recordar que en un archivo de órdenes puede tener una o más consultas SQL.

Comando define:

DEFINE empleado=’KING’

http://liang.armstrong.edu:5560/isqlplus

Confirmación de la variable:

DEFINE empleado

Listar la definición de todas las variables:

DEFINE

Eliminar Variable de Usuario:

Comando Undefine

UNDEFINE empleado

Debe recordar que:



Todas las variables, independientemente del tipo de dato asignado, son datos de tipo carácter.
Las palabras define y undefine se pueden abreviar a def y undefine.






Variable de Sustitución
Muchas veces, cuando se ejecuta una consulta, no se conoce de antemano qué valor quiere utilizar el usuario para el ínforme (o programa), sino que se desea introducir un valor cuando se inicia la realización del ínforme. Las variables de sustitución son variables de usuarios precedidos por los símbolos & o &&.

Ejemplo:

  • Defina 2 variables de usuario

DEFINE columna=job
DEFINE tabla=emp

Ejemplo:

Select &columna, sal From &tabla
Order By &amp;columna;

Debe recordar que:



En Oracle 10g se presenta las línea old y new cuando sustituye los valores de las variables.
Se puede suprimir esta presentanción con la orden iSql*Plus Set Verify Off ó ( Set Ver Off).
Las variables pueden en cualquier parte de un comando SQL o iSql*Plus excepto como primera palabra del comando.
Cuando se define una variable con convenio &&, en este caso se evita que Oracle pida multiples veces el valor de una variable (Oracle implícitamente define la variable).
Para dar un valor diferente a la variable definida con &&, hay que eliminar (undefine) la variable.





lunes, 16 de julio de 2007

Ordenamiento de Filas

La Cláusula ORDER BY permite ordenar:

  • Ascendentemente
  • Descendentemente
  • Por multiples columnas
  • Por la posición de las columnas

Debe recordar que:
Si no se utiliza la cláusula ORDER BY, el orden no está definido y es posible que el Servidor Oracle no recupere las filas en el mismo orden dos veces para la misma consulta.
Utilice esta cláusula para mostrar las filas en un orden específico.

Ascendente:

  • Mostrar el nombre, el cargo y el salario de todos los empleados que trabajen en el departamento 10.
    Ordenados ascendentemente por salario.

Select ename, job, sal From emp
Where deptno=10
Order By sal;

http://liang.armstrong.edu:5560/isqlplus

Descendente:

  • Mostrar el nombre, el cargo y el salario de todos los empleados que trabajen en el departamento 10.
    Ordenados descendentemente por salario
    .

Select ename, job, sal From emp
Where deptno=10
Order By sal Desc;

Por múltiples columnas:

  • Mostrar el nombre, el cargo y el salario de todos los empleados; ordenando el resultado ascendentemente por cargo, si existe más de un empleado con el mismo cargo ordenarlos de forma descendente por salario.

Select ename, job, sal From emp
Order By job, sal Desc;

Por la posición de las columnas:

  • Mostrar el nombre del empleado, el cargo y el salario de todos los empleados del departamento 20, ordenados ascendentemente por el salario (la columna 3).

Select ename, job, sal From emp
Where deptno = 20
Order By 3;

domingo, 15 de julio de 2007

Reglas de Prioridad

Las reglas de prioridad determinan el orden en el que se evalúan y se calculan las expresiones.

La tabla enumera el orden de prioridad por defecto.

1 Operadores aritméticos
2 Operador de Concatenación
3 Condiciones de comparación
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 Condición lógica NOT
7 Condición lógica AND
8 Condición lógica OR

Prioridad del Operador AND

  • En este ejemplo, tenemos dos condiciones:

    • La primera condición es que el cargo es PRESIDENT y el salario mayor que 4000.
  • La segunda condición es que el cargo es SALES.

Select ename, job, sal From emp
Where job= 'SALES' OR job = 'PRESIDENT' AND sal > 4000;

http://liang.armstrong.edu:5560/isqlplus

La sentencia SELECT indica lo siguiente:
“Seleccionar la fila si un empleado es presidente (PRESIDENT) y gana más de 4000 o si el empleado es vendedor (SALES).”

Uso de Paréntesis

  • En este ejemplo, tenemos dos condiciones:

    • La primera condición es que el cargo es PRESIDENT o SALES.
    • La segunda condición es que el salario es mayor que 4000.

Select ename, job, sal From emp
Where (job = 'SALES' OR job = 'PRESIDENT') AND sal> 4000;

La sentencia SELECT indica lo siguiente:
“Seleccionar la fila si un empleado es presidente (PRESIDENT) o vendedor (SALES) y gana más de 4000.”

Debe recordar que:


Puede sustituir el orden por defecto escribiendo entre paréntesis las expresiones que desee calcular en primer lugar.



Operadores Lógicos

Las operadores lógicos combinan el resultado de dos condiciones componentes para producir un resultado único basado en ellas o invierten el resultado de una única condición.

Se devuelve una fila sólo si el resultado global de la condición es verdadero.

En SQL están disponibles tres operadores lógicos:
• AND
• OR
• NOT

Puede utilizar varias condiciones en una cláusula WHERE utilizando los operadores AND y OR.

El Operador AND

  • En el ejemplo, las dos condiciones deben ser verdaderas para que se seleccione un registro.

Select empno, ename, job, sal From emp
Where sal >=1000 AND ename Like '%SC%';

http://liang.armstrong.edu:5560/isqlplus/

El Operador OR

  • En el ejemplo, cualquiera de las dos condiciones puede ser verdadera para que se seleccione un registro.

Select empno, ename, job, sal From emp
Where sal >=3000 OR ename Like '%M%';

El Operador NOT

  • El ejemplo nos muestra el apellido y el cargo de todos los empleados que no sean ANALYST, CLERK o SALESMAN.

Select ename, job From emp
Where job NOT In ('ANALYST', 'CLERK', 'SALESMAN');

Debe recordar que:


El operador NOT también se puede utilizar con otros operadores SQL, como IN, BETWEEN, LIKE y NULL.

sábado, 14 de julio de 2007

Cómo manejar los apóstrofes

Como se sabe, los apóstrofes inician y terminan las cadenas en SQL.
Si se necesita manejar los apóstrofes, la solución depende de en que lugar la comilla es colocada en la cadena.

Tenemos 4 escenarios:


Apostrofe al inicio de la cadena:


Ejemplo:

  • Cuando el apostrofe esta al inicio de la cadena, necesita escribir 3 apóstrofes para que Oracle muestre un apóstrofe.

Select '''Cómo estás?' From dual;

http://liang.armstrong.edu:5560/isqlplus/

Apóstrofe en medio de la cadena:

Ejemplo:

  • Cuando el apóstrofe está en medio de la cadena, necesita escribir 2 apóstrofes para que Oracle muestre un apóstrofe.

Select 'El turista M''c Kensie quedó arrestado en el Aeropuerto.' From dual;

Apóstrofe al fin de la cadena:

Ejemplo:

  • Cuando el apóstrofe esta al fin de una cadena, necesita escribir 3 apóstrofes para que Oracle muestre un apóstrofe.

Select 'Scolari''' From dual;


Apóstrofe concatenada con una cadena:

Ejemplo:

  • Si desea concatenar un apóstrofe en un cadena, necesita escribir 4 apóstrofes para que Oracle muestre un apóstrofe.

Select 'Nos fuimos al M' '''' 'c Donald' From dual;

Valores Nulos

Un valor nulo significa que el valor no está disponible, no está asignado, es desconocido o no es aplicable
No significa cero ni blanco.
Por lo tanto, no puede comprobar con =, pues un valor nulo no puede ser igual o distinto de ningún valor.

Ejemplo:

  • Mostrar todos los empleados cuya comisión es nula.

SQL>Select ename From emp
Where comm IS NULL;

http://liang.armstrong.edu:5560/isqlplus/

Debe recordar que:


Las condiciones NULL incluyen la condición IS NULL y la condición IS NOT NULL
La condición IS NULL comprueba si hay valores nulos.
Muchas expresiones tomarán el valor de NULL si uno de los operandos lo es.





Operadores de Comparación

La siguiente tabla muestra los diferentes operadores de comparación que se pueden utilizar:

= Igual a
! = <> ^= Diferente
> Mayor que
>= Mayor o Igual a
<>

Operador: =

Ejemplo:

  • Mostrar el número de empleado, nombre, salario y la comisión de todos los empleados del departamento 30.

Select empno, ename, sal, comm From emp
Where deptno=30;

http://liang.armstrong.edu:5560/isqlplus

Operador: ! = <> ^=

Ejemplo:

  • Mostrar los nombres de los empleados que no se llaman KING, que no trabajen en el departamento 20 ni cuyo cargo sea SALESMAN.


Select ename, deptno, job From emp

Where ename ! = 'KING' AND deptno <> 20 AND job ^= 'SALESMAN';

Operador: <>

Ejemplo:

  • Mostrar el nombre del empleado, el cargo y el salario de todos los empleados que no sean Analistas (ANALYST).

Select ename, job, sal From emp

Where job<>'ANALYST';

Operadores: >= y <=

Ejemplo:

  • Mostrar el nombre, el número de departamento y el salario de todos los empleados que ganen entre 2500 y 3500 incluyéndolos.

Select ename , dept, sal
From emp
Where sal >= 2800 AND sal <= 3000;

Filtro de Filas (Where)

Cláusula WHERE:
Es utilizada para establecer una (o más) condiciones y de esta forma mostrar sólo aquellas filas que la satisfacen.

Sintaxis:
SELECT *{[DISTINCT] columnexpression [alias],...}
FROM table
[WHERE condition(s)];


En la sintaxis:
WHERE restringe la consulta a las filas que cumplen una condición
condition está formado por nombres de columna, expresiones, constantes y un operador de comparación.

La cláusula WHERE puede comparar valores de columnas, valores literales, expresiones aritméticas o funciones. Consta de tres elementos:

  • Nombre de columna
  • Condición de comparación
  • Nombre de columna, constante o lista de valores

Uso de la Cláusula WHERE
Ejemplo:

  • Mostrar el nombre, el cargo y el número de departamento de todos los empleados cuyos identificadores de cargo (job) sean ANALYST.
Select ename, job, deptno From emp
Where job = 'ANALYST';

http://liang.armstrong.edu:5560/isqlplus/
Debe recordar que:

La cláusula WHERE sigue a la cláusula FROM.
Las constantes de tipo caracter y de tipo fecha deben ir entre comillas simples; pero no las constantes numéricas.
Las constantes de tipo caracter deben colocarse en mayúsculas o minúsculas, según como se encuentren los datos en la base de datos.
Las bases de datos Oracle almacenan fechas en formato numérico interno, representando el siglo, el año, el mes, el día, las horas, los minutos y los segundos. El formato de fecha por defecto es DD-MON-RR.

Uso de Alias de Columna

Dentro de la sentencia SELECT se pueden definir cabeceras o alias como sustitutos de columnas.
Esto no significa que el nombre de la columna cambie en la estructura de la tabla, sólo sirven para mostrarse en el conjunto resultado al momento de la ejecución de la sentencia.

Ejemplo:

  • Mostrar todos los cargos distintos que existen en la tabla Emp poniéndole el alias de Cargos.

Select Distinct job CARGOS From emp;

http://liang.armstrong.edu:5560/isqlplus/

Ejemplo:

  • Mostrar los nombres y las comisiones de todos los empleados.


SELECT ename AS nombre, comm comision
FROM emp;

Debe recordar que:
La palabra clave opcional AS se ha usado delante del nombre alias de columna. El resultado de la consulta es el mismo se utilice la palabra clave AS o no.

La sentencia SQL tiene los nombres, las comisiones y los alias de columna en minúsculas, mientras que el resultado de la consulta muestra la cabecera de columna en mayúsculas. Las cabeceras de columna aparecen en mayúsculas por defecto.

Ejemplo:

  • Mostrar los apellidos y los salarios anuales de todos los empleados.

Select ename "Nombre", sal*12 "Salario Anual "
From emp;

Debe recordar que:

Debido a que Salario Anual contiene un espacio, se ha escrito entre comillas dobles. Observe que la cabecera de columna en el resultado es exactamente igual que el alias de columna.

Valores Unicos

Cláusula DISTINCT
Muestra los valores únicos de una columna, es decir valores no repetidos.

Ejemplos:

  • Mostrar todos los cargos diferentes de la tabla emp.

SQL>Select DISTINCT job FROM emp;

http://liang.armstrong.edu:5560/isqlplus/

La cláusula DISTINCT puede ser usada con más un campo.

Ejemplos:

  • Mostrar la combinación única de job y ename.

SQL>Select Disctinct job, ename From emp;

Esta sentencia retornará la combinación única de job y ename.
En este caso, la sentencia se aplica para cada campo listado después la palabra clave DISTINCT.

Seleccionar Columnas

Existen dos formas diferentes de desplegar todas las columnas de una tabla:


  • Escribiendo todos los nombres de columnas separadas por comas.
  • Escribiendo un asterisco como comodín.

Ejemplo:

  • Mostrar todas las columnas de la tabla dept.

SQL>SELECT deptno, dname, loc FROM dept;

O

http://liang.armstrong.edu:5560/isqlplus/

SQL>SELECT * FROM dept;

Aprenda SQL y PL/SQL

¿Quién es Larry Ellison?
Lawrence Joseph Ellison, nacido en el Bronx el 17 de agosto de 1944, es más conocido como Larry.
Fundador y presidente de Oracle, es uno de los personajes más carismáticos y polémicos de la economía mundial.
Una palabra de su boca es capaz de, subir o bajar, los puntos de la bolsa de New York.
Los datos de la ficha, ORACARD; propuesta como documento nacional de identidad de EEUU, son los del Ciudadano Lawrence J. Ellison.