Vamos a empezar por la instrucción que más se utiliza en SQL, la sentencia SELECT. La sentencia SELECT es, con diferencia, la más compleja y potente de las sentencias SQL, con ella podemos recuperar datos de una o más tablas, seleccionar ciertos registros e incluso obtener resúmenes de los datos almacenados en la base de datos. Es tan compleja que la estudiaremos a lo largo de varias unidades didácticas incorporando poco a poco nuevas funcionalidades.
El resultado de una SELECT es una tabla lógica que alberga las filas resultantes de la ejecución de la sentencia.
La sintaxis completa es la siguiente:
SELECT sentencia::=[WITH <expresion_tabla_comun> [,...n]] <expresion_consulta> [ORDER BY {expression_columna|posicion_columna [ASC|DESC] } [ ,...n ]] [COMPUTE {{AVG|COUNT|MAX|MIN|SUM} (expression)}[ ,...n ] [BY expression[ ,...n ]] ] [<FOR clausula_for>] [OPTION (<query_hint>[ ,...n ])] <expresion_consulta> ::= {<especificacion_consulta> | ( < expresion_consulta > ) } [ {UNION [ALL]|EXCEPT|INTERSECT} <especificacion_consulta> | (<expresion_consulta>) [...n ] ] <especificacion_consulta> ::= SELECT [ALL|DISTINCT] [TOP expresion [PERCENT] [WITH TIES] ] <lista_seleccion> [INTO nueva_tabla] [FROM { <origen> } [ ,...n ] ] [WHERE <condicion_busqueda> ] [GROUP BY [ ALL ] expresion_agrupacion [ ,...n ] [WITH { CUBE | ROLLUP } ] ] [HAVING < condicion_busqueda > ]
Debido a la complejidad de la sentencia (en la sintaxis anterior no se han detallado algunos elementos), la iremos viendo poco a poco, empezaremos por ver consultas básicas para luego ir añadiendo más cláusulas.
Empezaremos por ver las consultas más simples, basadas en una sola tabla y nos limitaremos a la siguiente sintaxis:
SELECT [ALL|DISTINCT] [TOP expresion [PERCENT] [WITH TIES]] <lista_seleccion> FROM <origen> [WHERE <condicion_busqueda> ] [ORDER BY {expression_columna|posicion_columna [ASC|DESC]} [ ,...n ]]
De la sintaxis anterior, el elemento <origen> indica de dónde se va a extraer la información y se indica en la cláusula FROM, es la única cláusula obligatoria. En este tema veremos un origen de datos basado en una sola tabla.
La sintaxis será la siguiente:
<origen>::= nb_tabla | nb_vista [[ AS ] alias_tabla ]
nb_tabla representa un nombre de tabla.
nb_vista un nombre de vista.
Tanto para las tablas como para las vistas, podemos hacer referencia a tablas que están en otras bases de datos (siempre que tengamos los permisos adecuados), en este caso tenemos que cualificar el nombre de la tabla, indicando delante el nombre de la base de datos (Lógica) y el nombre del esquema al que pertenece la tabla dentro de la base de datos.
Por ejemplo: MiBase.dbo.MiTabla
se refiere a la tabla MiTabla que se encuentra en el esquema dbo de la base de datos MiBase.
Cuando no se definen esquemas, SQL-Server crea uno por defecto en cada base de datos denominado dbo.
Opcionalmente podemos definir un nombre de alias.
Un nombre de alias (alias_tabla) es un nombre alternativo que se le da a la tabla dentro de la consulta.
Si se define un nombre de alias, dentro de la consulta, será el nombre a utilizar para referirnos a la tabla, el nombre original de la tabla ya no tendrá validez.
Se utilizan los nombres de alias para simplificar los nombres de tablas a veces largos y también cuando queremos combinar una tabla consigo misma; ya volveremos sobre los alias de tabla cuando veamos consultas multitabla.
La palabra AS no añade ninguna operatividad, está más por estética.
Podemos escribir:
SELECT ...
FROM tabla1 Sacamos los datos de la tabla tabla1
SELECT ... FROM tabla1 t1 Sacamos los datos de la tabla tabla1 y le asignamos un alias de tabla: t1
SELECT ... FROM tabla1 AS t1 Es equivalente a la sentencia anterior.
Si la tabla o la vista están en otra base de datos del mismo equipo que está ejecutando la instancia de SQL Server, se utiliza el nombre cualificado con el formato nbBaseDatos.nbEsquema.nbTabla.
Si la tabla o la vista están fuera del servidor local en un servidor vinculado, se utiliza un nombre de cuatro partes con el formato nbservidor.catalogo.nbEsquema.nbTabla. Volveremos más adelante sobre las conexiones remotas.
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic S.L. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.