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

  • Libería PHP para el API de Bing.com

    Bing es el buscador de Microsoft que en general en las webs españolas empezamos a ver como nos dirige bastante tráfico a nuestras webs, cosa...

  • SQL-92: Consultas Básicas III
    Pop-up autoajustable

    [js] function PopUp(img){ foto1= new Image(); foto1.src=(img); Control(img); } function...

  • bgMaker, generador de backgrounds online

    bgMaker es una aplicación web desarrollada en Flash, para crear backgrounds. Lo destacado de esta herramienta es que, al momento de que vamos...

  • SQL-92: Consultas Básicas III
    Compuntoes es el nuevo concurso de posicionamiento

    Ya está aqui el nuevo concurso de posicionamiento web, con la palabra compuntoes la cual ya he creado una micropagina del concurso en rankhispano...

  • SQL-92: Consultas Básicas III
    Reset CSS

    Reset CSS es una técnica para resetear todos los valores del CSS que vienen por defecto en los navegadores (margenes, aliniaciones...). La web de...

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

Deja una respuesta