IEDGE – Transact SQL, el lenguaje de manipulación de datos. La sentencia select


1 Star2 Stars3 Stars4 Stars5 Stars (Valora este post)
Loading...

El lenguaje de manipulación de datos (DML), cuando hablamos de Transact SQL, permite manejar los datos contenidos en el esquema, consultando, actualizando y borrando tuplas de las tablas.

La sentencia select sirve para recuperar registros de una o varias tablas, de una o varias bases de datos. Su sintaxis es la siguiente:

Select atributo/s from tabla/s

[where condition1]

[group by atributo/s]

[having condicion1]

[Order by atributo/s]

Los datos entre corchete son opcionales, por lo que pueden ser omitidos. La sintaxis de la sentencia select se compone de:

  • Select atributo/s: selecciona los campos que deseamos recuperar de la base de datos, separados por coma. Si escribimos * se obtendrán todos los campos de la tabla
  • from tabla/s: especifica la tabla o tablas de las que se extraeran los datos
  • where condition1: solo se obtendrán las tuplas que verifiquen dicha condición. Si se omite, se recuperarán todas las filas
  • group by atributo/s: establece una selección de campos cuando se usan funciones escalares, de conteo o agrupación
  • having condicion1:establece una condición para los atributos obtenidos en funciones escalares
  • Order by atributo/s: obtiene el resultado de la consulta ordenado por los atributos que se especifiquen

Si se especifican varias tablas en la cláusula from, los atributos de la claúsula select, deberían ir precedidos de la tabla donde se encuentran, para en el caso de que dicho campo exista en más de una tabla, evitemos el problema de la ambigüedad.

Si deseamos obtener todo los atributos de una tabla, escribiríamos:

Select * from tabla1

La opción where permite seleccionar las filas de una tabla. A continuación de la palabra reservada where, se deberá especificar la condición lógica que se debe evaluar. Para expresar una expresión lógica podemos utilizar cualquiera de los operadores de Transact SQL como:

  • >: una expresión es mayor que otra
  • <: una expresión es menor que otra
  • >= : una expresión es mayor o igual que otra
  • <= : una expresión es menor o igual que otra
  • <>: una expresión es distinta de otra
  • Like: verifica un patrón de búsqueda en una cadena
  • Not like: compara las cadenas que no verifican un patrón de búsqueda
  • Between: compara las cadenas que están en un rango de valores
  • In: compara cadenas que están en una lista

Si queremos obtener los productos cuyo precio sea mayor que 1000:

Select nombreproducto from productos where precio>1000

La claúsula Group by agrupa filas que tienen el mismo valor para un atributo, en grupos distintos. Con la siguiente sintaxis:

Select apellidos from usuarios group by apellidos

Lo que hace es una select, pero no de las filas de la tabla usuarios, sino de los grupos obtenidos en la claúsula group by. Todas las filas cuyo valor del atributo apellidos sea igual, irán en el mismo grupo.

La claúsula having es similar a la where, salvo que se usa como condición cuando se especifica la cláusula group by. El funcionamiento es similar al where. La única diferencia es que having se aplica a condiciones de grupo. Siguiendo el ejemplo anterior, para obtener las filas cuyo apellidos sea Apellido1, haríamos:

Select apellidos from usuarios group by apellidos having apellidos =’Apellido1’

El order by determina el orden de visualización de las filas obtenidas en la sentencia select. A continuación de esta palabra reservada se especificarán el atributo/atributos por los cuales se ordenará el resultado de la consulta. Ejemplo:

Select nombre, apellidos from usuarios order by apellidos

Funciones escalares son todas aquellas que permiten realizar operaciones de conteo de filas, sumas de atributos, … Dichas funciones se especifican a continuación de la palabra reservada select, y son:

  • sum: realiza una suma acumulativa de un atributo para todas las filas a las que se accede. Ej:

select sum (precio) from libros

  • count: cuenta todas las filas de las tablas accedidas en la consulta. Para obtener todas las filas de una una tabla:

select count (*) from usuarios

  • avg: realiza la media aritmética de los atributos para todas las filas de la consulta. Ej:

select avg (precio) form libros

  • max: obtiene el máximo valor del atributo que se especifica. Ej:

select max (precio) form libros

  • min: obtiene el mínimo valor del atributo especificado. Ej:

select min (precio) form libros

Muchas gracias y esperamos sus comentarios!

Juan Manuel Escudero

Profesor de Dirección en Tecnología y Sistemas de Información

Nota: Para aprender de una forma práctica y rápida todo sobre la gestión profesional de un departamento de Sistemas y Tecnología de la Información, les invitamos a que consulten la Especialidad Europea en Gestión de Sistemas y Tecnologías de la Información donde se formará con los mejores profesores de Europa y Latinoamérica y conocerá las mejores prácticas en el área de SITI.

* Los contenidos publicados en este post son responsabilidad exclusiva del Autor.


Comentarios


  1. jesus
    comento el día 27 de Febrero a las 6:29 pm (#)


    buenas tardes realice una consulta de una tabla completa, la tabla es bastante grande es decir posee muchos atributos, los datos de mi tabla los pase a excel y mi problema q los titulos o atributos en el excel no me salen y nose como traerme esos titulos o dondese guardan gracias,