| Docencia | Autor |
SQL (Struct Query Language)
Hay cuatro(4) operaciones que se hacen con una base de datos, se le conoce como CRUD:
C (create): Ingresar registros a una tabla.
R (read): Leer los registros de una tabla.
U (update): Actualizar uno o varios campos de un registro ya existente de una tabla.
D (delete): Borrar un registro de una tabla.
Para hacer estas operaciones de una forma bastante sencilla, hay un lenguaje de programación llamado SQL (Struct Query Language). Este lenguaje de programación es llamado por Visual Basic.
Siga los pasos a continuación para ejecutar una instrucción SQL dentro de Microsoft Access:
1. Tiene una tabla llamada DatosBasicos con varios campos. Entre por Crear y luego Diseño de Consulta.

2. De cerrar, no se necesita la "ayuda" de Access aquí.

3. De clic en el botón derecho del ratón, y en el menú que sale, seleccione "Vista SQL"

4. Esta es la pantalla para escribir el código SQL

5. Escriba "SELECT * FROM DatosBasicos ORDER BY cedula;" y luego cierre la ventana. Nota: SQL es inmune al uso de mayúsculas y minúsculas, también puede escribir "select * from datosbasicos order by cedula;" y da lo mismo.

6. Guarde y póngale un nombre a la consulta

8. Así debe quedar, de doble clic a la consulta

9. Y este es el resultado

Mas ejemplos de uso de SQL
SQL es muy versátil para hacer consultas
http://www.desarrolloweb.com/manuales/9/
Comandos Básicos de SQL
Uso de SELECT.
1. SELECT * FROM nombre_tabla
Devuelve todos los campos de la tabla.
2. SELECT campo1, campo2, campo3 FROM nombre_tabla
Devuelve sólo los campos campo1, campo2, campo3 de la tabla.
3. SELECT campo1, campo2 FROM nombre_tabla ORDER BY campoFecha
Devuelve campo1 y campo2 de la tabla y los ordena for fecha ascendente (los más antiguos primero).
4. SELECT campo1, campo2 FROM nombre_tabla ORDER BY campoFecha DESC
Devuelve campo 1 y campo2 ordenados por fecha descendente (los más nuevos primero).
5. SELECT DISTINCT Ciudad FROM Empleados ORDER BY Ciudad
Devuelve el campo Ciudad de la tabla Empleados con todos los duplicados eliminados (probablemente hay más de un empleado en la misma ciudad: esta sentencia nos devuelve la lista de ciudades).
Uso de where
La cláusula WHERE nos permite especificar un criterio para recuperar los datos.
1. SELECT * FROM nombre_tabla WHERE Ciudad = 'Madrid'
Devuelve todos los campos de todas las filas que tengan Madrid en el campo Ciudad.
2. SELECT * FROM nombre_tabla WHERE Ciudad = 'Madrid' AND Edad = 35
Devuelve todos los campos de la tabla de las filas en las que Ciudad valga Madrid y Edad sea 35.
3. SELECT * FROM nombre_tabla WHERE campo_numerico >= 150
Devuelve los registros con campo_numerico mayor o igual que 150.
5. SELECT * FROM nombre_tabla WHERE campo1 LIKE 'Mad*'
Devuelve todos los campos de las filas con campo1 comenzando por Mad (Madrid, Madagascar, Madmadmad serían devueltos).
6. SELECT * FROM nombre_tabla WHERE campo1 LIKE '*a'
Devuelve todos los campos de las filas con campo1 terminando en a (Málaga, Barcelona, Segovia serían devueltas).
7. SELECT * FROM nombre_tabla WHERE campo1 LIKE '*bruno*'
Devuelve las filas en las que campo1 contenga bruno al principio, al final, en medio o incluso como parte de una palabra.
Condiciones compuestas
Podemos especificar varios criterios en la cláusula WHERE.
1. SELECT * FROM nombre_tabla WHERE campo1 = 4500 AND campo_fecha >= # 2000-12-31#
Devuelve las filas con campo1 = 4500 y campo_fecha mayor que el 31 de Diciembre de 2000.
2. SELECT * FROM nombre_tabla WHERE campo1 = 'Javier' OR campo1 = 'Carlos'
Devuelve las filas con campo1 igual a Javier o Carlos.
3. SELECT * FROM nombre_tabla WHERE salario >= 25000 AND ( vacaciones <= 100 OR jefe = 'Hugo')
Devuelve las filas en las que el salario es mayor o igual que 25.000, y o bien tiene 100 días de vacaciones o bien su jefe es Hugo. :-)
4. SELECT * FROM nombre_tabla WHERE vacaciones BETWEEN 25 AND 50
Devuelve las filas en las que tengamos entre 25 y 50 días de vacaciones. Es equivalente a WHERE vacaciones >= 25 AND vacaciones <= 50
5. SELECT * FROM nombre_tabla WHERE nombre IN ('Carlos, Efra, Alejo, Erika, Irene, Javier')
Devuelve las filas cuyo nombre sea uno de entre Carlos, Efra, Alejo, Erika, Irene o Javier, es decir, cuyo nombre esté en la lista de nombres.
Funciones de agregado
Las funciones de agregado permiten hacer operaciones sobre los campos y devolver el resultado de éstas.
1. SELECT MAX(vacaciones) FROM empleados
Devuelve el valor más alto del campo vacaciones.
2. SELECT MIN(edad) FROM empleados
Devuelve la edad del empleado más joven.
3. SELECT AVG(vacaciones) FROM empleados
Devuelve la media (average) del campo vacaciones.
4. SELECT Count(salario) FROM empleados WHERE salario >= 25000
Devuelve cuántos empleados tienen un salario mayor o igual que 25000.
5. SELECT SUM(precio) FROM pedidos
Devuelve la suma total del precio de todos los pedidos.
Funciones de Grupo
1. SELECT idcliente, SUM(cargo) FROM pedidos GROUP BY idcliente;
Retorna el total de cargos por cada distinto cliente que hay en la tabla de pedidos.
2. SELECT idempleado, SUM(cargo) FROM pedidos GROUP BY idempleado;
Retorna el total de cargos por cada distinto empleado que hay en la tabla de pedidos.
Combinando Consultas
Uno de los problemas típicos al hacer funciones de agregado es que no se sabe a ciencia cierta que registro es el que tiene el máximo (MAX) o mínimo (MIN) valor.
EJEMPLO: Tenemos la siguiente tabla de Personas

Necesitamos traer la mayor edad:
SELECT MAX(edad) FROM personas

Este es el resultado:

Pero ¿Quién es la persona que ostenta esa edad? Se requiere entonces hacer una combinación de consultas, que es así:

SELECT nombre, genero, edad FROM personas
WHERE edad = (SELECT MAX(edad) FROM personas);
Y obtenemos el dato que necesitamos:

Combinando Tablas
Tenemos la siguiente relación:

Si hacemos una simple consulta a la tabla de Ventas tenemos el siguiente resultado
SELECT * FROM ventas

¿Pero quién es el vendedor V01, V17, V18? ¿Qué es el municipio M02, M05? ¿Qué es el producto P01, P08, P09?
Para traer las descripciones, debemos consultar en varias tablas al tiempo, este proceso se le conoce como JOIN y se hace de la siguiente manera:
SELECT ventas.vendedor, vendedores.nombre, ventas.municipio, ventas.producto
FROM ventas, vendedores
WHERE ventas.vendedor=vendedores.codigo;
1. La instrucción combina dos tablas: ventas y vendedores
2. La instrucción explícitamente nombra los campos de las respectivas tablas: ventas.vendedor, ventas.municipio, ventas.producto, vendedores.nombre
3. La instrucción limita el producto cartesiano entre las dos tablas en la cláusula where.
Este es el resultado:

¿Cómo traer la descripción de Municipio y Producto?
Descargue Ejemplo Base de datos