SQL • Lenguaje de Consulta Estructurado • Es un lenguaje avanzado que opera sobre los datos de una Base de Datos Relacional, devolviendo un conjunto de datos, permitiendo al usuario definir, mostrar y actualizar la información de las tablas. Acceso a conjuntos • Al usar SQL, el usuario indica los datos que necesita y no el procedimiento para recuperarlos. Es el sistema el que determina la mejor forma de hacerlo. Tipo de operaciones SQL • Consultas: Es un subconjunto de filas y columnas de una o mas tablas ya existentes. SELECT • Vistas: Los datos son dinamicos, es decir reflejan los cambios en ambos sentidos. CREATE VIEW • Mantenimiento: Permite añadir, borrar y modificar. Consultas • Recupera datos de una o más tablas. SELECT * | DISTINCT | Tabla.Campo,... FROM [BD!]Tabla [AS <alias>],... [WHERE <condición>] [ORDER BY <campo>] [GROUP BY <campo> [HAVING <condicion>]] [INTO <destino>] Operadores • =, ==, >, <, >=, <= • <>, != o #: Diferente • $: Incluido • AND, OR: Operadores boleanos y o. • NOT o !: Operadores boleanos negacion. • ALL: Debe cumplir con todas las cond • ANY: Debe cumplir solo con alguna cond. • EXIST: Si existen filas Operadores (2) • BETWEEN: Comprueba si cae entre los limites impuestos. • IN: Comprueba si coincide con una de un conjunto de valores. • LIKE: Comprueba si corresponde al patron. • _: Comodin de un caracter • %: Comodin de muchos caracteres Ejemplos • maealu.cod = matri.codalu • detfac.total >= 1000 • “Pedro” $ maealu.nom • maeart.pu BETWEEN 10 AND 199 • customer.postalcode NOT IN ("98052","98072","98034") • customer.country NOT LIKE ”_eino%“ Funciones SQL • CNT() = Recuento • SUM() = Suma de un campo • AVG() = Valor promedio de un campo • MAX() = Valor maximo de un campo • MIN() = Valor menimo de un campo • STD() = Desviacion estandar • VAR() = Varianza Condiciones de combinacion • Interna: Sólo muestra filas de ambas tablas que cumplan los criterios de combinación. INNER JOIN • Izquierda: Muestra todas las filas de la tabla izquierda y sólo las que cumplan el criterio de combinación de la tabla derecha. LEFT OUTER JOIN Condiciones combinacion (2) • Derecha: Muestra todas las filas de la tabla derecha y sólo las que cumplan el criterio de combinación de la tabla izquierda. RIGHT OUTER JOIN • Completa: Todas las filas de ambas tablas, cumplan o no el criterio de combinación. FULL OUTER JOIN Subconsultas • Es una consulta que aparece dentro de una clausula WHERE o HAVING de otra consulta SQL. • Listar aquellos articulos cuyo precio sea mayor o igual al precio promedio de los articulos vendidos. • SELECT * FROM maeart WHERE PU>= (SELECT AVG(PU) FROM detfac) Subconsultas (2) • En la subconsulta puedes hacer referencia a columnas de la tabla principal. • La subconsulta solo debe producir una columna como resultado. • Los resultados se usan internamente y nunca seran visibles al usuario. • No puedes usar: ORDER BY ni UNION Ejemplos • customer.cust_id IN (SELECT orders.cust_id FROM orders WHERE orders.city="Seattle") • company < ALL (SELECT company FROM customer WHERE country = "Reino Unido") • company < ANY (SELECT company FROM customer WHERE country = "Reino Unido") • EXISTS (SELECT * FROM orders WHERE customer.postalcode = orders.postalcode) Tipos de salida • Examinar: Muestra el resultado de la consulta en una ventana examinar • Cursor: Guarda el resultado de la consulta en una cursor. Es solo lectura y esta disponible hasta que se cierre. • Tabla: Guarda el resultado de la consulta en una tabla DBF. Tipos de salida (2) • Grafico: Transforma el resutado en un grafico. • Pantalla: Muestra resultado en ventana de salida activa. • Informe: Muestra el resultado en un informe creado previamente (FRX) • Etiqueta: Muestra el resultado en una etiqueta creada previamente (LBX) Propuetos • Averiguar que clientes fueron atendidos por empleados que trabajan los dias martes. • Obtener el porcentaje de ventas mensuales. Tipos de vistas • Local: Cuando el origen de datos son tablas sueltas DBF o una BD de Visual FoxPRO. • Remota: Cuando la fuente de datos es externa, osea otro motor de DB como: MS Acces, MS SQL, Oracle, Informix, Sybase etc. SQL para BD • CREATE: Crea una BD • OPEN: Activa una BD • CLOSE: Cierra una BD • DROP: Borra una BD SQL para tablas • CREATE: Añade una tabla • DROP: Borra una tabla SQL para filas • INSERT: Permite añadir nuevas nuevas filas a una tabla de una BD. • UPDATE: Permite modificar filas. • DELETE: Permite eliminar las filas seleccionadas de una tabla. • SELECT: Para visualizar el contenido de una o mas tablas de una BD.