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.