Vamos a comenzar desde cero con un pequeño curso de SQL. La idea del curso es dejar un poco de lado la teoría para acercarnos al uso del lenguaje, que es lo que realmente nos interesa.
Requerimientos:
El DBMS a utilizar será SQLite. Esta elección se debe a que es un motor relacional muy completo y funcional, el uso de recursos es mínimo y la velocidad es de las mejores(aparte de otras características que podremos ver en este link)
Pasos de la Instalación
Ejecutar el Firefox 3.5, si no lo tenemos, podemos bajarlo de aquí
Bajar el Complemento SQLite Manager de esta dirección: https://addons.mozilla.org/es-ES/firefox/addon/5817
Primero presionamos el Botón Añadir a Firefox
Se abrirá una nueva Ventana Solicitando la Confirmación, en esta pantalla Presionamos el botón Instalar ahora
Una vez instalado el complemento, debemos proceder al reinicio de Firefox para que tome los cambios.
Con el Firefox reiniciado, nos dirigimos al menú Herramientas->SQLite Manager
Bajamos la Base de Datos que vamos a utilizar como ejemplo
http://clonefiles.com/files/xZH0Gyot45IJPY7U6Sje
Descomprimimos el archivo en alguna Carpeta Ej: C:\CursoSQL
El password del archivo .zip es www.softwareutil.com
En el Menú del SQLManager Seleccionamos la Opción Database->Connect Database y buscamos la carpeta en donde descomprimimos la Base de datos (Aclaración, en la ventana de Abrir Archivo deberemos seleccionar la opción Todos los Archivos en Tipo)
Seleccionamos el Archivo y presionamos el Botón Abrir
Una vez hechos estos pasos, tenemos la Base de Datos con el Siguiente Esquema:
Con esto ya podemos comenzar a ejecutar Consultas contra la Base
Nuestra Primer Consulta
Nos Dirigimos a la pestaña Execute SQL
1: SELECT * FROM Cliente
y presionamos el Botón Run SQL, con esto le estamos pidiendo a la base de datos que nos traiga todos los registros de la tabla Cliente
Una Consulta SQL está Compuesta por:
SELECT listaDeCampos
FROM Tabla(s)
WHERE Condicion(es)
GROUP BY Campo(s)Agrupados
HAVING Condicion(es)
SELECT: Lista los datos a recuperar por la sentencia
FROM: lista las tablas que contienen los datos a recuperar por la consulta.
WHERE: Permite incluir solo algunas filas del resultado de una consulta mediante una condición de búsqueda.
GROUP BY: Especifica una consulta resumen, agrupando las filas similares para cada grupo (se utiliza cuando hay una función en el select).
HAVING: Deja incluir solo ciertos grupos producidos por group by en la consulta a través de una condición de búsqueda. (Condición de búsqueda de grupos).
· Es aplicable a constante, función columna, columna de agrupación o una expresión que afecta a las anteriores.
· Se puede utilizar sin group by pero en ese caso la condicion se aplica a un grupo formado por todas las filas de la consulta.
ORDER BY: Ordena los resultados de la consulta en relación a una o mas columnas.Se puede usar el nombre o el orden (numero) de la columna.Puede ser ascendente (asc) o descendente (desc).
CONDICIONES DE BÚSQUEDA PARA CONSULTAS SIMPLES
- Test de comparación: Compara el valor de una expresión con el valor de otra.
En este SQL calcula y compara los valores por cada fila de datos. Las expresiones pueden ser simples o complejas.
Expresión 1 = , <> , < , <= , > , >= Expresión 2
Ejemplo:
1: SELECT Nombre
2: FROM Cliente
3: WHERE idCliente < 10
1: SELECT descripcion, precioCompra, precioVenta
2: FROM Articulo
3: WHERE stockActual > 500
1: SELECT *
2: FROM Cliente
3: WHERE idCliente=22
- Test de rango: Examina si el valor de una expresión cae dentro de un rango especificado de valores.
Expresión de test (Not) BETWEEN expresión-inf and expresión-sup
Ejemplos:
1: SELECT *
2: FROM Articulo
3: WHERE stockActual BETWEEN 100 and 500
1: SELECT Nombre, Direccion
2: FROM Cliente
3: WHERE fechaAlta BETWEEN '01/01/2009' and '31/01/2009'
Las expresiones de cadena o de fechas deben ir entre comillas simples ‘’
- Test de pertenencia a un conjunto: Examina si un valor de dato coincide con uno de una lista de valores objetivo.
expresión (Not) IN (constante,constante,.....)
Ejemplos:
1: SELECT *
2: FROM Articulo
3: WHERE idArticulo IN (1,22,19)
Artículos cuyo idArticulo se encuentra en el conjunto de valores 1,22 y 19
1: SELECT *
2: FROM Articulo
3: WHERE idArticulo NOT IN (21,25,19,15)
Artículo cuto idArticulo no se encuentra enel conjunto de valores 21,25,19 y 15
- Test de correspondencia a un patrón: Comprueba si el valor de datos de una columna se ajusta a un patron especificado. El patrón es una cadena que puede incluir uno o mas caracteres comodines (%).
nombre_de_columna (Not) LIKE patrón
Ejemplos:
1: SELECT *
2: FROM Articulo
3: WHERE descripcion LIKE 'S%'
Todos los artículo que comienzan con S
1: SELECT *
2: FROM Articulo
3: WHERE descripcion LIKE '_ILLA'
Todos Los Artículos que comienzan con cualquier letra y terminan en ILLA
Para este tipo de comparaciones, el signo de porcentaje sirve como un comodín que representa una cadena de caracteres de cualquier tamaño, mientras que que el guión bajo _ sirve como reemplazo a un único caracter de la cadena.
- Test de valor nulo : Comprueba si una columna tiene un valor NULL.
nombre_de_columna IS (Not) NULL
Ejemplos:
1: SELECT *
2: FROM Articulo
3: WHERE stockActual IS NULL
1: SELECT nombre, fechaAlta
2: FROM Cliente
3: WHERE fechaAlta IS NOT NULL
En la base de datos de ejemplo ningún campo tiene un valor NULL
En la segunda parte veremos como hacer consultas a más de una tabla.
Espero sus comentarios