Download ¿Qué es una consulta SQL y cuándo se usa?

Document related concepts

SQL wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Lenguaje de manipulación de datos wikipedia , lookup

Expresiones multidimensionales wikipedia , lookup

Base de datos relacional wikipedia , lookup

Transcript
Ing. Silvio Daniel Gianfaldoni
Apuntes Fundamentales
Microsoft Access – SQL (Introducción)
cadena o instrucción SQL
Expresión que define un comando de SQL, como por ejemplo SELECT, UPDATE o DELETE e incluye cláusulas,
como por ejemplo WHERE y ORDER BY. Las cadenas/instrucciones de SQL normalmente se usan en consultas y en
funciones de agregado. También se usan como origen de datos para formularios, informes, cuadros de lista y cuadros
combinados si se utilizan los asistentes para crear estos objetos.
¿Qué es una consulta SQL y cuándo se usa?
Una consulta SQL es una consulta creada mediante una instrucción SQL. La consulta de unión, la consulta de paso a
través, la consulta de definición de datos y la subconsulta son ejemplos de consultas específicas de SQL.

Consulta de unión
Este tipo de consulta combina campos (columnas) de una o más tablas o consultas en un campo o columna del
resultado de la consulta. Por ejemplo, si tiene seis distribuidores que envían nuevas listas de inventario cada mes,
puede combinar estas listas en un conjunto de resultados mediante una consulta de unión y, a continuación, crear una
consulta de creación de tabla basada en la consulta de unión para crear una tabla nueva.

Consulta de paso a través
Este tipo de consulta envía comandos directamente a las bases de datos ODBC, como las de Microsoft SQL Server,
utilizando comandos aceptados por el servidor. Por ejemplo, puede emplear una consulta de paso a través para
recuperar registros o modificar datos.

Consulta de definición de datos
Este tipo de consulta crea o modifica objetos de la base de datos, como tablas de Microsoft Access o Microsoft SQL
Server.

Subconsulta
Este tipo de consulta consta de una instrucción SQL SELECT dentro de otra consulta de selección o consulta de
acción. Puede introducir estas instrucciones en la fila Campo de la cuadrícula de diseño de la consulta para definir un
campo nuevo o bien en la fila Criterios para definir criterios para un campo. Puede utilizar las subconsultas para:

Comprobar la existencia de algún resultado de la subconsulta (mediante las palabras clave EXISTS o NOT
EXISTS).

Encontrar los valores de la consulta principal que sean iguales, mayores que o menores que los valores devueltos
por la subconsulta (mediante las palabras reservadas ANY, IN o ALL).

Crear subconsultas dentro de las subconsultas (subconsultas anidadas).
SELECT (Instrucción)
Motor de base de datos Microsoft Jet
Sistema de administración de bases de datos que recupera datos de y almacena datos en bases de datos del sistema y
de los usuarios. El motor de base de datos Microsoft Jet se puede ver como un componente administrador de datos
con el que se crean otros sistemas de acceso a datos, como Microsoft Access y Visual Basic.
Pide al motor de base de datos Microsoft Jet que devuelva información de la base de datos como un conjunto de
registros.
Apuntes
-1-
Unidades 1 y 2
Sintaxis
SELECT [predicado] { * | tabla.*
[tabla.]campo2 [AS alias2] [, ...]]}
|
[tabla.]campo1
[AS
alias1]
[,
FROM expresióntabla [, ...] [IN basededatosexterna]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[WITH OWNERACCESS OPTION]
La sintaxis de la instrucción SELECT consta de las siguientes partes:
Parte
Descripción
predicado
Uno de los siguientes predicados: ALL, DISTINCT, DISTINCTROW o TOP. Puede utilizar
el predicado para limitar el número de registros devueltos. Si no especifica ninguno, el valor
predeterminado es ALL.
*
Especifica que se seleccionan todos los campos de la tabla o tablas especificadas.
tabla
El nombre de la tabla que contiene los campos de la que se van a seleccionar los registros.
campo1, campo2
Los nombres de los campos que contienen los datos que desea recuperar. Si incluye más de
un campo, éstos se recuperan en el orden enumerado.
alias1, alias2
Los nombres que se van a utilizar como encabezados de columnas en vez de los nombres de
columnas originales en tabla.
expresióntabla
El nombre de la tabla o las tablas que contienen los datos que desea recuperar.
basededatosexterna El nombre de la base de datos que contiene las tablas en expresióntabla si no están en la
base de datos activa.
Para realizar esta operación, el motor de base de datos Microsoft Jet busca la tabla o las tablas especificadas, extrae
las columnas elegidas, selecciona las filas que cumplen los criterios y ordena o agrupa las filas resultantes en el orden
especificado.
Las instrucciones SELECT no modifican los datos de la base de datos.
La instrucción SELECT suele ser la primera palabra en una instrucción SQL. La mayoría de las instrucciones SQL
son instrucciones SELECT o SELECT...INTO.

La sintaxis mínima para una instrucción SELECT es:
SELECT campos FROM tabla
Puede utilizar un asterisco (*) para seleccionar todos los campos de una tabla. El ejemplo siguiente selecciona todos
los campos de la tabla Empleados:
SELECT * FROM Empleados;
Si se incluye un nombre de campo en más de una tabla en la instrucción FROM, escriba delante el nombre de la tabla
y el operador . (punto). En el siguiente ejemplo, el campo Departamento está en la tabla Empleados y en la tabla
Supervisores. La instrucción SQL selecciona los departamentos de la tabla Empleados y los nombres de supervisores
de la tabla Supervisores:
SELECT Empleados.Departamento, Supervisores.NombreSupervisor
FROM Empleados INNER JOIN Supervisores
WHERE Empleados.Departamento = Supervisores.Departamento;
Apuntes
-2-
Ing. Silvio Daniel Gianfaldoni
Apuntes Fundamentales
Cuando se crea un objeto Recordset, el motor de base de datos Microsoft Jet utiliza el nombre de campo de la tabla
como el nombre de objeto Field en el objeto Recordset. Si desea un nombre de campo diferente o un nombre que no
participe en la expresión utilizada para generar el campo, utilice la palabra reservada AS. El siguiente ejemplo utiliza
el título Nacimiento para dar nombre al objeto Field devuelto en el objeto Recordset resultante:
SELECT FechaNacimiento
AS Nacimiento FROM Empleados;
Siempre que utilice funciones de dominio agregado o consultas que devuelvan nombres de objetos Field ambiguos o
duplicados, debe utilizar la cláusula AS para proporcionar un nombre alternativo para el objeto Field. El siguiente
ejemplo utiliza el título CuentaEncabezado para dar nombre al objeto Field devuelto del objeto Recordset resultante:
SELECT COUNT(IdEmpleado)
AS CuentaEncabezado FROM Empleados;

Ejemplos para Ejercitar:
1.
Para probar los ejemplos siguientes en Microsoft Access, ha de crear primero una consulta en la base de
datos de ejemplo Neptuno.
2.
Cierre el cuadro de diálogo Mostrar tabla sin especificar ninguna tabla o consulta.
3.
Cambie a la vista SQL, pegue un ejemplo individual en la ventana SQL y ejecute la consulta.
En el ejemplo siguiente se seleccionan los campos Apellido y Nombre de todos los registros de la tabla Empleados:
SELECT Apellido, Nombre FROM Empleados;
En el ejemplo siguiente se seleccionan todos los campos de la tabla Empleados:
SELECT * FROM Empleados;
En el ejemplo siguiente se cuenta el número de registros que tienen una entrada en el campo CódPostal y asigna el
nombre Total al campo devuelto:
SELECT Count(CódPostal) AS Tally FROM Clientes;
El siguiente ejemplo muestra cuáles serían los precios unitarios del producto si cada uno se viera aumentado el 10%.
Los precios unitarios existentes en la base de datos no se modifican.
SELECT NombreProducto, PrecioUnitario AS Current, PrecioUnitario * 1.1
AS NuevosPreciosPropuestos
FROM Productos;
En el ejemplo siguiente se calcula el número de productos de la base de datos y los precios unitarios medios y
máximos:
SELECT Count(*) AS [Total Productos],
Unitario Promedio], Max(PrecioUnitario)
Avg(PrecioUnitario)
AS
[Precio
AS [Precio Unitario Máximo] FROM Productos;
En el ejemplo siguiente se muestra el NombreProducto y PrecioUnitario de cada registro de la tabla Productos. La
cadena "tiene un precio unitario de" separa los dos campos en el conjunto resultado.
Apuntes
-3-
Unidades 1 y 2
SELECT NombreProducto,
FROM Productos;

'tiene
un
precio
unitario
de',
PrecioUnitario
Ejemplos de consultas de unión
Las consultas de unión combinan campos de dos o más tablas o consultas en un solo campo. A continuación se
muestran ejemplos de una consulta de unión básica, de ordenación de registros, de cambios en el nombre de los
campos y obtención de registros duplicados en consultas de unión.

La siguiente consulta de unión selecciona todos los nombres de compañías y ciudades de ambas tablas,
Proveedores y Clientes, y los ordena alfabéticamente por ciudad:
SELECT [NombreCompañía], [Ciudad]
FROM [Proveedores]
UNION SELECT [NombreCompañía], [Ciudad]
FROM [Clientes]
ORDER BY [Ciudad];

Cambiar nombre de campos en una consulta de unión
La siguiente consulta de unión cambia el nombre el campo NombreCompañía por "Nombre del proveedor/cliente" en
la salida de la consulta:
SELECT [NombreCompañía] AS [Proveedor/Nombre cliente], [Ciudad]
FROM [Proveedores]
UNION SELECT [NombreCompañía] AS [Proveedor/Nombre cliente], [Ciudad]
FROM [Clientes];

Obtener registros duplicados en una consulta de unión
La siguiente consulta de unión utiliza la instrucción UNION ALL para extraer todos los registros, incluyendo los
registros duplicados:
SELECT [NombreCompañía], [Ciudad]
FROM [Proveedores]
UNION ALL SELECT [NombreCompañía], [Ciudad]
FROM [Clientes];
Apuntes
-4-