SQL-92: Consultas Básicas III

Con esta tercera parte acabo las consultas b�sicas, pod�is ver las dos anteriores en I y II.

Los nombres de las columnas dentro de una misma tabla deben ser �nicos, pero que ocurre cuando hacemos una consulta que hace referencia a varias columans de igual nombre, pero en distintas tablas… pongamos un ejemplo para ver claramente este problema de ambig�edad:

Imaginemos estas dos tablas:

DEPARTAMENTO (nombred, numerod, nssdire, fechainicdire)

OFICINA_DEPTO (numerod, oficina)

Y deseamos sacar el c�digo, nombre y oficinas de los departamento de Marketing y de Investigaci�n.

SELECT Departamento.numerod, nombred, oficina FROM Departamento, Oficina_depto WHERE Departamento.nombred IN (‘Marketing’, ‘Investigaci�n’) AND Departamento.numerod = Oficina_depto.numerod;

veamos como hemos empleado algo nuevo, el opedaror IN que podemos usarlo para tomar filas con distintos valores (tanto como le colomentos dentro de los par�ntesis del IN) en una columna.

Otra manera de solucionar el problema de la ambig�edad a la hora de consultar en varias tablas, es utilizar seud�nimos (esta soluci�n es m�s elegante). Para el mismo ejemplo que el anterior:

SELECT nombred, D.numerod, oficina FROM Departamento D, Oficina_depto AS O WHERE D.nombred IN (‘Marketing’, ‘Investigaci�n’) AND D.numerod = O.numerod;

veamos como se acortan la longitud de la consulta considerablemente, he marcado el AS como negrita para avisar que es opcional, mi consejo es que no os acostumbreis a colocarlo, porque existe incompatibilidades con algunas bases de datos descendientes de SQL-92 como es el caso de ORACLE.

Y la �ltima manera que veremos para solucionar el tema de la ambig�edad es renombrando las columnas, hay dos maneras, realizar la operaci�n entre el SELECT y FROM y la otra en el FROM. Primero veremos la que se utiliza entre el SELECT y FROM:

SELECT E.nombre AS nom_empleado, S.nombre AS nom_supervisor FROM Empleado E, Empleado S WHERE E.nssjefe = S.nss;

en este caso el utilizar AS no es ning�n problema en bases de datos ORACLE.

La segunda manera de renombramiento de columnas es en la cl�usula FROM:

SELECT nom, num, oficina FROM Departamento D(nom,num,dire,inidire), Oficina_depto WHERE nom IN (‘Marketing’, ‘Investigaci�n’) AND num = numerod;

vemos como la tabla� DEPARTAMENTO (nombred, numerod, nssdire, fechainicdire), ha sido renombrada completamente, esto no funciona en bases de datos como ORACLE.

Y para terminar con el tema de consultas b�sicas lo haremos con el orden de presentaci�n. SQL permite realizar consultas y mostrarnos filas de forma ordenada, gracias a la cl�usula ORDER BY, que ordena seg�n el valor de una o varias columnas, puede ser Ascendente ASC (por defecto) o Descedente DESC. Suele ser una operaci�n muy costosa. Las filas no se ordenan en la tabla sino que se ven ordenadas sin estarlo. Pongamos un ejemplo de que queremos sacar el nombre y apellido de todos los empleados, ordenado por el salario que tienen de mayor a menor:

SELECT nombre, apellido FROM Empleado ORDER BY salario DESC;

aunque podr�a a�adir tantos campos como quisiese,separandolos a trav�s de una coma.

Pues esto es todo sobre consultas b�sicas, el siguiente art�culo trata sobre ‘Tablas como conjuntos’.

Escrito por rankhispano | 15 de Diciembre de 2006 con 0 comentarios.
Lee más artículos sobre Bases de Datos

Random Posts

  • Barra de Progreso con Ajax (Uber Uploader)

    Es un script para subir ficheros al servidor gracias a PHP pero con la tecnología de AJAX te muestra más información como la velocidad de subida,...

  • SQL-92: Consultas Básicas III
    Comandos básicos de MySQL

    Aquí os dejo un listado con lo comandos más útiles para emplear en MySQL. Información: show databases; - Listar todas las bases de...

  • SQL-92: Consultas Básicas III
    Notificador de comentarios para WP

    Han desarrollado ya un notificador de comentarios en espera de moderación para Wordpress. Hay algunos que antes que se publiquen los...

  • Redimensiona muchas fotos a la vez

      Si vas a hacer una galería de imágenes, se sabe que deben ser todas de un mismo tamaño para darle un buen aspecto,  tienes  unas 70 fotos...

  • Significado de los colores web

         ¿Has pensado en escoger un color para tu web, no tan sólo por tu gusto sino tambien por su energía vibratoria? Aquí te...

Aún no hay comentarios. Sé el primero.

Deja una respuesta