free hosting   image hosting   hosting reseller   online album   e-shop   famous people 
Free Website Templates
Free Installer

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 Municipios con dos campos: Código y Nombre, (con ya varios registros), a esa tabla se le crea una consulta en vista diseño.

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 municipios;"  y luego cierre la ventana. Nota: SQL es inmune al uso de mayúsculas y minúsculas, también puede escribir "select * from municipios;" y da lo mismo.

6. Guarde la consulta, presione "Sí"

7. Póngale un nombre a la consulta

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

9. Y este es el resultado

10. Vuelva otra vez a "Vista Diseño"

11. Varíe un poco la instrucción SQL a "SELECT * FROM municipios ORDER BY nombre;", ahora el resultado lo ordenará por el segundo campo, guarde y ejecute la consulta.

12. 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/

http://www.asptutor.com/sql/

 

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