Consultas Basicas En SQL
Enviado por JSebastianD • 28 de Mayo de 2013 • 1.945 Palabras (8 Páginas) • 565 Visitas
CONSULTAS BASICAS EN SQL SERVER
CONSULTAS DE SELECCION
Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de
las bases de datos, esta información es devuelta en forma de conjunto de registros.
Consultas básicas
La sintaxis básica de una consulta de selección es la siguiente:
SELECT Campos FROM Tabla
SELECT * FROM Tabla
En donde “campos” es la lista de campos que se deseen recuperar, si fuesen todos los
campos a utilizar colocar “*” y después “tabla”, es el origen de los mismos, por ejemplo:
SELECT Nombres, Telefono FROM empleados
Esta sentencia devuelve un conjunto de resultados con el campo “nombres” y “teléfono” de la
tabla “empleados”.
Devolver Literales
En determinadas ocasiones nos puede interesar incluir una columna con un texto fijo en una
consulta de selección, por ejemplo, supongamos que tenemos una tabla de Empleados y
deseamos recuperar los nombres y teléfonos y una columna fija que diga el nombre de la
empresa, podríamos realizar la siguiente consulta:
SELECT Nombres, Telefono , 'Credomatic' FROM Empleados
Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las
tablas mediante la cláusula ORDER BY Lista de Campos. En donde Lista de campos representa los
campos a ordenar. Ejemplo:
SELECT Código, Nombres, Telefono, ‘Credomatic’ FROM Empleados ORDER
BY Nombres
Esta consulta devuelve los campos Código, Nombres, Telefono de la tabla Empleados ordenados
por el campo Nombres.
Se pueden ordenar los registros por más de un campo, como por ejemplo:
2
Fuente: Libros en pantalla de SQL Server 2008 de Microsoft Corporation (Edición de Enero de 2009)
SELECT Código, Nombres, Telefono, ‘Credomatic’ FROM Empleados
ORDER BY Código, Nombres
Incluso se puede especificar el orden de los registros: ascendente mediante la cláusula (ASC - se
toma este valor por defecto) ó descendente (DESC)
SELECT Código Nombres, Telefono, ‘Credomatic’ FROM Empleados ORDER BY Código DESC , Nombres ASC
CONSULTAS CON PREDICADO
El predicado se incluye entre la cláusula y el primer nombre del campo a recuperar, los posibles
predicados son:
Predicado Descripción
(*) Devuelve todos los campos de la tabla.
(TOP) Devuelve un determinado número de registros de la tabla.
(DISTINCT) Omite los registros cuyos campos seleccionados coincidan totalmente.
(*)
El Motor de base de datos selecciona todos los registros que cumplen las condiciones de la
instrucción SQL y devuelve todos y cada uno de sus campos.
No es conveniente abusar de este predicado ya que obligamos al motor de la base de datos a analizar la estructura de la tabla para averiguar los campos que contiene, es mucho más rápido indicar el listado de campos deseados.
SELECT * FROM Empleados
(TOP)
Devuelve un cierto número de registros que entran entre el principio o el final de un rango
especificado por una cláusula ORDER BY. Supongamos que queremos recuperar los nombres de los
25 últimos empleados ingresados a la empresa
SELECT TOP 25 codigo,nombres,telefono, 'Credomatic' FROM Empleados ORDER BY Codigo DESC
Si no se incluye la cláusula ORDER BY, la consulta devolverá un conjunto arbitrario de 25 registros
de la tabla de Empleados. El predicado TOP no elige entre valores iguales. Se puede utilizar la
palabra reservada PERCENT para devolver un cierto porcentaje de registros que caen al principio o
al final de un rango especificado por la cláusula ORDER BY. Supongamos que en lugar de los 25
últimos empleados deseamos el 10 por ciento de los empleados ingresados recientemente a la
empresa:
3
Fuente: Libros en pantalla de SQL Server 2008 de Microsoft Corporation (Edición de Enero de 2009)
SELECT Top 10 percent codigo,nombres,telefono, 'Credomatic' FROM Empleados
ORDER BY Codigo DESC
El valor que va a continuación de TOP debe ser un entero sin signo. TOP no afecta a la posible
actualización de la consulta.
(DISTINCT)
Omite los registros que contienen datos duplicados en los campos seleccionados. Para que los
valores de cada campo listado en la instrucción SELECT se incluyan en la consulta deben ser únicos.
Por ejemplo, varios empleados listados en la tabla Empleados pueden tener el mismo apellido. Si
dos registros contienen López en el campo Apellido, la siguiente instrucción SQL devuelve un único
registro:
SELECT DISTINCT Prim_Apellido FROM Empleados
Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en
la cláusula SELECT posean un contenido diferente. El resultado de una consulta que utiliza
DISTINCT no es actualizable.
(ALIAS)
En determinadas circunstancias es necesario asignar un nombre a alguna columna determinada de
un conjunto devuelto, otras veces por simple capricho o porque estamos recuperando datos de
diferentes tablas y resultan tener un campo con igual nombre. Para resolver todas ellas tenemos la
palabra reservada AS que se encarga de asignar el nombre que deseamos a la columna deseada.
Tomado como referencia el ejemplo anterior podemos hacer que la columna devuelta por la
consulta, en lugar de llamarse prim_apellido (igual que el campo devuelto) se llame Empleado. En
este caso procederíamos de la siguiente forma:
SELECT Prim_Apellido AS Empleado FROM Empleados
También podemos asignar alias a las tablas dentro de la consulta de selección, en esta caso hay
que tener en cuenta que en todas las referencias que deseemos hacer a dicha tabla se ha de
utilizar el alias en lugar del nombre. Esta técnica será de gran utilidad más adelante cuando se
estudien las vinculaciones entre tablas. Por ejemplo:
SELECT Prim_Apellido Empleado FROM Empleados Trabajadores
También se puede asignar alias a las tablas y campos en ORACLE y SQL-SERVER escribiendo el
nombre de la tabla o el campo, dejando un espacio en blanco y escribiendo el Alias.
SELECT Trabajadores.Apellido (1) AS Empleado FROM Empleados Trabajadores
Esta nomenclatura [Tabla].[Campo] se debe utilizar cuando se está recuperando un campo cuyo
nombre se repite en varias de las tablas que se utilizan en la sentencia. No obstante cuando en la
sentencia se emplean
...