Sunteți pe pagina 1din 18

Instituto Particular Mixto Dr.

Pedro Molina

5to. Perito en Administracin


Computacin II
Prof. Herber Pinto

TIPOS DE CONSULTAS EN
ACCESS, SQL Y MYSQL

Lourdes Abigail Torres Menjivar


05/02/16

INTRODUCCION

Una base de datos es un conjunto de herramientas que permiten gestionar


informacin relacionada con un tema determinado, en forma de tablas. Una parte
importante de la base de datos son las consultas, ya que nos permiten responder
a preguntas sobre los datos almacenados y realizar bsquedas de informacin
ms fcilmente, a continuacin se expondrn los tipos de consultas existentes en
diferentes bases de datos como son Microsoft Access, SQL Server y MySql.

Los tipos de consulta que trabaja Access.


-Consultas de comandos.- Una consulta de comandos aporta modificaciones a
muchos registros con una nica operacin. Existen cuatro tipos de consultas de
comando: de Eliminacin, de Actualizacin, de Alineacin y de Creacin de Tablas.
-Consultas de eliminacin: este tipo de consulta elimina un grupo de registros de
una o ms tablas. Existe la posibilidad, por ejemplo, de utilizar una consulta de
eliminacin para reemplazar los productos que se han dejado de producir o para
aquellos sobre los cuales no existen pedidos. Con las consultas de eliminacin
siempre se eliminan registros internos y no nicamente determinados campos de
su
interior.
-Consultas de actualizacin: este tipo aporta modificaciones globales a uno o
ms tablas. Existe la posibilidad, por ejemplo, de aumentar en un 10 por ciento el
precio de todos los productos lcteos o aumentar los salarios en un 5 por ciento a
las personas pertenecientes a una determinada categora laboral.
-Consultas de alineacin: estas consultas agregan un grupo de registros de una
o ms tablas al final de una o ms tablas. Supongamos, por ejemplo, que se han
conseguido nuevos clientes y existe una base de datos que contiene una tabla de
informacin sobre estos. En vez de teclear nuevamente todas estas
informaciones, se alinean en la tabla correspondiente de Clientes.
-Consultas de creacin de tablas: este tipo de consultas crea una nueva tabla
basndose en todos los datos o parte de estos existentes en una o ms tablas.
-Consultas de parmetros: una consulta de parmetros es una consulta que,
cuando se ejecuta, muestra una ventana de dilogo que solicita informaciones,
como por ejemplo criterios para recuperar registros o un valor que se desea
insertar
en
un
campo.
-Consultas de buscar duplicados: encuentra los registros repetidos en una
misma tabla.

Crear una consulta

Para crear una consulta, seguir los siguientes pasos:


Abrir la base de datos donde se encuentra la consulta a crear.
Hacer clic en el botn Diseo de Consulta en la pestaa Crear:

Tambin tenemos la posibilidad de utilizar el Asistente para consultas que


puedes ver en la imagen anterior para crear consultas con un poco de ayuda.
Si haces clic en el botn Asistente para consultas aparecer el siguiente cuadro
de dilogo:

El Asistente para consultas sencillas crea una consulta de seleccin sencilla


como definimos en el apartado anterior.
Los otros asistentes nos permiten generar tipos especiales de consulta que
veremos ms adelante.
Nosotros explicaremos detenidamente la opcin Diseo de consulta que te
permitir crear cualquiera de las anteriores por ti mismo.

Al entrar en la Vista Diseo de consulta nos pide primero las tablas de las que la
consulta sacar los datos con un cuadro de dilogo parecido al siguiente:

Seleccionar la tabla de la que queremos sacar datos y hacer clic sobre el


botn Agregar.
Si queremos sacar datos de varias tablas agregar de la misma forma las dems
tablas.
Finalmente hacer clic sobre el botn Cerrar.
Aparecer la ventana Vista Diseo de consultas.

Consulta de datos en SQL


Ahora nos vamos a centrar en la R de CRUD, es decir, en cmo recuperar la
informacin que nos interesa de dentro de una base de datos, usando para
ello el lenguaje de consulta o SQL. Ya nos preocuparemos luego de cmo
llegamos a introducir los datos primeramente.
Para realizar consultas sobre las tablas de las bases de datos disponemos de la
instruccin SELECT. Con ella podemos consultar una o varias tablas. Es sin
duda el comando ms verstil del lenguaje SQL.
Existen muchas clusulas asociadas a la sentencia SELECT (GROUP BY,
ORDER, HAVING, UNION). Tambin es una de las instrucciones en la que con
ms frecuencia los motores de bases de datos incorporan clusulas adicionales al
estndar, que es el que veremos aqu.
Vamos a empezar viendo las consultas simples, basadas en una sola tabla.
Veremos cmo obtener filas y columnas de una tabla en el orden en que nos haga
falta.
El resultado de una consulta SELECT nos devuelve una tabla lgica. Es decir, los
resultados son una relacin de datos, que tiene filas/registros, con una serie de
campos/columnas. Igual que cualquier tabla de la base de datos. Sin embargo
esta tabla est en memoria mientras la utilicemos, y luego se descarta. Cada vez
que ejecutamos la consulta se vuelve a calcular el resultado.
La sintaxis bsica de una consulta SELECT es la siguiente (los valores opcionales
van entre corchetes):
SELECT [ ALL / DISTINC ] [ * ] / [ListaColumnas_Expresiones] AS [Expresion]
FROM Nombre_Tabla_Vista
WHERE Condiciones
ORDER BY ListaColumnas [ ASC / DESC ]
A continuacin analizaremos cada una de las partes de la consulta para
entenderla mejor.
SELECT
Permite seleccionar las columnas que se van a mostrar y en el orden en que lo
van a hacer. Simplemente es la instruccin que la base de datos interpreta como
que vamos a solicitar informacin.

ALL / DISTINCT

ALL es el valor predeterminado, especifica que el conjunto de resultados puede


incluir filas duplicadas. Por regla general nunca se utiliza.
DISTINCT especifica que el conjunto de resultados slo puede incluir filas nicas.
Es decir, si al realizar una consulta hay registros exactamente iguales que
aparecen ms de una vez, stos se eliminan. Muy til en muchas ocasiones.
Nombres de campos
Se debe especificar una lista de nombres de campos de la tabla que nos interesan
y que por tanto queremos devolver. Normalmente habr ms de uno, en cuyo caso
separamos cada nombre de los dems mediante comas.
Se puede anteponer el nombre de la tabla al nombre de las columnas, utilizando el
formato Tabla.Columna. Adems de nombres de columnas, en esta lista se
pueden poner constantes, expresiones aritmticas, y funciones, para obtener
campos calculados de manera dinmica.
Si queremos que nos devuelva todos los campos de la tabla utilizamos el comodn
* (asterisco).
Los nombres indicados deben coincidir exactamente con los nombre de los
campos de la tabla, pero si queremos que en nuestra tabla lgica de resultados
tengan un nombre diferente podemos utilizar:
AS
Permite renombrar columnas si lo utilizamos en la clusula SELECT, o renombrar
tablas si lo utilizamos en la clusula FROM. Es opcional. Con ello podremos crear
diversos alias de columnas y tablas. Enseguida veremos un ejemplo.
FROM
Esta clusula permite indicar las tablas o vistas de las cuales vamos a obtener la
informacin. De momento veremos ejemplos para obtener informacin de una sola
tabla.
Como se ha indicado anteriormente, tambin se pueden renombrar las tablas
usando la instruccin AS.

WHERE
Especifica la condicin de filtro de las filas devueltas. Se utiliza cuando no se
desea que se devuelvan todas las filas de una tabla, sino slo las que cumplen
ciertas condiciones. Lo habitual es utilizar esta clusula en la mayora de las
consultas.
Condiciones
Son expresiones lgicas a comprobar para la condicin de filtro, que tras su
resolucin devuelven para cada fila TRUE o FALSE, en funcin de que se cumplan
o no. Se puede utilizar cualquier expresin lgica y en ella utilizar diversos
operadorescomo:

> (Mayor)

>= (Mayor o igual)

< (Menor)

<= (Menor o igual)

= (Igual)

<> o != (Distinto)

IS [NOT] NULL (para comprobar si el valor de una columna es o no es nula,


es decir, si contiene o no contiene algn valor)

Se dice que una columna de una fila es NULL si est completamente vaca. Hay
que tener en cuenta que si se ha introducido cualquier dato, incluso en un campo
alfanumrico si se introduce una cadena en blanco o un cero en un campo
numrico, deja de ser NULL.

LIKE: para la comparacin de un modelo. Para ello utiliza los caracteres


comodn especiales: % y _. Con el primero indicamos que en su lugar
puede ir cualquier cadena de caracteres, y con el segundo que puede ir
cualquier carcter individual (un solo carcter). Con la combinacin de
estos caracteres podremos obtener mltiples patrones de bsqueda. Por
ejemplo:
o El nombre empieza por A: Nombre LIKE A%
o El nombre acaba por A: Nombre LIKE %A

o El nombre contiene la letra A: Nombre LIKE %A%


o El nombre empieza por A y despus contiene un solo carcter
cualquiera: Nombre LIKE A_
o El nombre empieza una A, despus cualquier carcter, luego una E y
al final cualquier cadena de caracteres:Nombre LIKE A_E%

BETWEEN: para un intervalo de valores. Por ejemplo:


o Clientes entre el 30 y el 100: CodCliente BETWEEN 30 AND 100
o Clientes nacidos entre 1970 y 1979: FechaNac BETWEEN
19700101 AND 19791231

IN( ): para especificar una relacin de valores concretos. Por ejemplo:


Ventas de los Clientes 10, 15, 30 y 75:CodCliente IN(10, 15, 30, 75)

Por supuesto es posible combinar varias condiciones simples de los operadores


anteriores utilizando los operadores lgicosOR, AND y NOT, as como el uso de
parntesis para controlar la prioridad de los operadores (como en matemticas).
Por ejemplo: (Cliente = 100 AND Provincia = 30) OR Ventas > 1000 que
sera para los clientes de las provincias 100 y 30 o cualquier cliente cuyas ventas
superen 1000.
ORDER BY
Define el orden de las filas del conjunto de resultados. Se especifica el campo o
campos (separados por comas) por los cuales queremos ordenar los resultados.
ASC / DESC
ASC es el valor predeterminado, especifica que la columna indicad en la clusula
ORDER BY se ordenar de forma ascendente, o sea, de menor a mayor. Si por el
contrario se especifica DESC se ordenar de forma descendente (de mayor a
menor).
Por ejemplo, para ordenar los resultados de forma ascendente por ciudad, y los
que sean de la misma ciudad de forma descendente por nombre, utilizaramos
esta clusula de ordenacin:
ORDER BY Ciudad, Nombre DESC
Como a la columna Ciudad no le hemos puesto ASC o DESC se usar para la
misma el valor predeterminado (que es ASC)

OJO: Aunque al principio si an no se est habituado, pueda dar la impresin de


que se ordena por ambas columnas en orden descendente. Si es eso lo que
queremos deberemos escribir ORDER BY Ciudad DESC, Nombre DESC
Algunos ejemplos
Para terminar este repaso a las consultas simples practicarlas un poco, veamos
algunos ejemplos con la base de datos Northwind en SQL Server:
- Mostrar todos los datos de los Clientes de nuestra empresa:
SELECT * FROM Customers
- Mostrar apellido, ciudad y regin (LastName, city, region) de los empleados de
USA (ntese el uso de AS para darle el nombre en espaol a los campos
devueltos):
SELECT E.LastName AS Apellido, City AS Ciudad, Region
FROM Employees AS E
WHERE Country = USA
- Mostrar los clientes que no sabemos a qu regin pertenecen (o sea, que no
tienen asociada ninguna regin) :
SELECT * FROM Customers WHERE Region IS NULL
- Mostrar las distintas regiones de las que tenemos algn cliente, accediendo slo
a la tabla de clientes:
SELECT DISTINCT Region FROM Customers WHERE Region IS NOT NULL
- Mostrar los clientes que pertenecen a las regiones CA, MT o WA, ordenados por
regin ascendentemente y por nombre descendentemente.
CODE SELECT * FROM Customers WHERE Region IN(CA, MT, WA)
ORDER BY Region, CompanyName DESC
- Mostrar los clientes cuyo nombre empieza por la letra W:
SELECT * FROM Customers WHERE CompanyName LIKE W%
- Mostrar los empleados cuyo cdigo est entre el 2 y el 9:
SELECT * FROM Employees WHERE EmployeeID BETWEEN 2 AND 9

- Mostrar los clientes cuya direccin contenga ki:


SELECT * FROM Customers WHERE Address LIKE %ki%
- Mostrar las Ventas del producto 65 con cantidades entre 5 y 10, o que no tengan
descuento:
SELECT * FROM [Order Details] WHERE (ProductID = 65 AND Quantity
BETWEEN 5 AND 10) OR Discount = 0
Nota: En SQL Server, para utilizar nombres de objetos con caracteres especiales
se deben poner entre corchetes. Por ejemplo en la consulta anterior [Order
Details] se escribe entre corchetes porque lleva un espacio en blanco en su
nombre. En otros SGBDR se utilizan comillas dobles (Oracle, por ejemplo: Order
Details) y en otros se usan comillas simples (por ejemplo en MySQL).

CONSULTAS EN MYSQL
Ya disponemos de bases de datos, y sabemos cmo aadir y modificar datos.
Ahora aprenderemos a extraer datos de una base de datos. Para ello volveremos
a usar la sentencia SELECT.
La sintaxis de SELECT es compleja, pero en este captulo no explicaremos todas
sus opciones. Una forma ms general consiste en la siguiente sintaxis:
SELECT [ALL | DISTINCT | DISTINCTROW]
expresion_select,...
FROM referencias_de_tablas
WHERE condiciones
[GROUP BY
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING condiciones]
[ORDER BY
[ASC | DESC] ,...]
[LIMIT ]
Forma incondicional
La forma ms sencilla es la que hemos usado hasta ahora, consiste en pedir todas
las columnas y no especificar condiciones.
mysql>mysql> SELECT * FROM gente;
+---------+------------+
| nombre | fecha
|
+---------+------------+
| Fulano | 1985-04-12 |
| Mengano | 1978-06-15 |
| Tulano | 2001-12-02 |
| Pegano | 1993-02-10 |
+---------+------------+
4 rows in set (0.00 sec)

mysql>
Limitar las columnas: proyeccin
Recordemos que una de las operaciones del lgebra relacional era la proyeccin,
que consita en seleccionar determinados atributos de una relacin.
Mediante la sentencia SELECT es posible hacer una proyeccin de una tabla,
seleccionando las columas de las que queremos obtener datos. En la sintaxis que
hemos mostrado, la seleccin de columnas corresponde con la parte
"expresion_select". En el ejemplo anterior hemos usado '*', que quiere decir que
se muestran todas las columnas.
Pero podemos usar una lista de columnas, y de ese modo slo se mostrarn esas
columnas:
mysql> SELECT nombre FROM gente;
+---------+
| nombre |
+---------+
| Fulano |
| Mengano |
| Tulano |
| Pegano |
+---------+
4 rows in set (0.00 sec)
mysql> SELECT clave,poblacion FROM ciudad5;
Empty set (0.00 sec)
mysql>
Las expresiones_select no se limitan a nombres de columnas de tablas, pueden
ser otras expresiones, incluso aunque no correspondan a ninguna tabla:
mysql> SELECT SIN(3.1416/2), 3+5, 7*4;
+------------------+-----+-----+
| SIN(3.1416/2) | 3+5 | 7*4 |
+------------------+-----+-----+
| 0.99999999999325 | 8 | 28 |
+------------------+-----+-----+
1 row in set (0.00 sec)

mysql>
Vemos que podemos usar funciones, en este ejemplo hemos usando la
funcin SIN para calcular el seno de /2. En prximos captulos veremos muchas
de las funciones de las que disponemos en MySQL.
Tambin podemos aplicar funciones sobre columnas de tablas, y usar esas
columnas en expresiones para generar nuevas columnas:
mysql> SELECT nombre, fecha, DATEDIFF(CURRENT_DATE(),fecha)/365 FROM
gente;
+---------+------------+------------------------------------+
| nombre | fecha
| DATEDIFF(CURRENT_DATE(),fecha)/365 |
+---------+------------+------------------------------------+
| Fulano | 1985-04-12 |
19.91 |
| Mengano | 1978-06-15 |
26.74 |
| Tulano | 2001-12-02 |
3.26 |
| Pegano | 1993-02-10 |
12.07 |
+---------+------------+------------------------------------+
4 rows in set (0.00 sec)
mysql>
Alias
Aprovechemos la ocasin para mencionar que tambin es posible asignar un alias
a cualquiera de las expresiones select. Esto se puede hacer usando la palabra AS,
aunque esta palabra es opcional:
mysql> SELECT nombre, fecha, DATEDIFF(CURRENT_DATE(),fecha)/365 AS
edad
-> FROM gente;
+---------+------------+-------+
| nombre | fecha
| edad |
+---------+------------+-------+
| Fulano | 1985-04-12 | 19.91 |
| Mengano | 1978-06-15 | 26.74 |
| Tulano | 2001-12-02 | 3.26 |
| Pegano | 1993-02-10 | 12.07 |
+---------+------------+-------+
4 rows in set (0.00 sec)

mysql>
Podemos hacer "bromas" como:
mysql> SELECT 2+3 "2+2";
+-----+
| 2+2 |
+-----+
| 5|
+-----+
1 row in set (0.00 sec)
mysql>
En este caso vemos que podemos omitir la palabra AS. Pero no es aconsejable,
ya que en ocasiones puede ser difcil distinguir entre un olvido de una coma o de
una palabra AS.
Posteriormente veremos que podemos usar los alias en otras clusulas,
como WHERE, HAVING o GROUP BY.

CONCLUSION

Luego de haber concluido este trabajo de investigacin sobre bases


de datos fueron muchos los esfuerzos y conocimientos adquiridos
durante dicha elaboracin
La creacin de consultas de base de datos consta de archivos que
permiten realizar muchas tareas diferentes con los datos que se
pueden ver. Tambin se pueden utilizar para controlar los registros que
visualiza la consulta no contiene informacin de base de datos, si no
tan solo las instrucciones necesarias para seleccionar los registros y
campos requeridos de una base de datos.

BIBLIOGRAFIA
CAMPBELl, Mary. base IV Gua de Autoenseanza. Espaa. Editorial McGraw Hill
Interamericana. 1990. pp110/111,121/122,161,169, 179-191/192.
HARWRYSZKIEWYCZ, I T. Anlisis y diseo de base de datos. Editorial
Megabyte. Noriega Editores. Mxico. 1994. pp29/31
LAUDON, Kenneth C. Administracin de los sistemas de informacin. 3ra. Edicin.
Mxico. 1996. pp 271/295
Aprende computacin. Editorial ocano. Espaa. Pp36/39
Bsquedas en Internet:
monografias.com/trabajos5/tipbases/tipbases.shtml
monografias.com/trabajos5/basede/basede.shtml
monografias.com/trabajos5/desor/desor.shtml
inei.gob.pe/cpi/bancopub/libfree/lib607/cap01.htmet.gob.pe
elizabethpeguero.8m.com/enza.htm
learnthenet.com/spanish/glossary/database.htm
ipyme.org/sie/

RECOMENDACIN

Algunas consultas consumen ms recursos que otras. Por ejemplo, las consultas que
devuelven grandes conjuntos de resultados y las que contienen clusulas WHERE que no
son nicas siempre consumen muchos recursos. Ningn grado de inteligencia del
optimizador de consultas puede eliminar el costo de recursos de estas construcciones en
comparacin con una consulta menos compleja. SQL Server utiliza un plan de acceso
ptimo, pero la optimizacin de consultas est limitada por lo que es posible.

S-ar putea să vă placă și