Upload
ignacio-gomez-rivas
View
1.502
Download
2
Embed Size (px)
Citation preview
Taller de Bases de Datos y Lenguaje SQL
Objetivo
Al finalizar el taller, el participante:
Comprenderá los conceptos básicos relacionados con definición de datos, manipulación de datos y procedimientos almacenados.
Escribirá sentencias en lenguaje SQL para consultar, modificar e insertar información.
Desarrollará procedimientos almacenados en lenguaje SQL.
Utilizará Alfaquerys para ejecutar consultas en tablas de Aspel-SAE.
Agenda
Introducción
Aplicando el lenguaje SQL
Tips and tricks
Dinámica
Se plantearán requerimientos de información para resolverse mediante instrucciones de lenguaje SQL. Se explicarán los conceptos principales y se aplicará la solución sobre tablas de Aspel-SAE.
Conceptos
TablaEntidadTipos de datoClavesoPrincipaloForánea
Índices
Tipos de datoClientes SAE 4.X
Column_name Type
NUM_REG int
CCLIE varchar
STATUS varchar
NOMBRE varchar
RFC varchar
DIR varchar
POB varchar
CODIGO varchar
TELEFONO varchar
Column_name Type
ATENCION varchar
ATEN_COB varchar
REV_PAG varchar
CLASIFIC varchar
DIAS_CRE smallint
FCH_ULTCOM datetime
VEND varchar
DESCUENTO float
LIM_CRED float
SALDO float
Tipos de datoClientes SAE 4.X
Identificar los valores que existen en la tabla CUEN01, ¿qué tipo de dato es el importe?, ¿Qué tipo de dato es la referencia? Utiliza la instrucción SELECT * FROM CUEN01
QUE Relaciones básicas en Aspel-SAE
La tabla de facturación incluye cabecera y partidas, ambas tablas se relacionan y al mismo tiempo se relacionan con otras como clientes, inventarios, vendedores y cuentas por cobrar.
QUE Relaciones básicas en Aspel-SAE
SELECT * FROM FACT01
SELECT * FROM FA0TY1
QUE
Relaciones básicas en Aspel-SAE
Identificar las relaciones entre las tablas de cabecera y partidas de facturación. ¿Por qué la clave del documento no es suficiente para relacionar ambas tablas?
QUERelaciones básicas en Aspel-SAE
Las tablas de compras incluyen cabecera y partidas que se relacionan entre sí , y además, éstas se relacionan con otras como proveedores, inventarios y cuentas por pagar.
QUE Relaciones básicas en Aspel-SAE
Identificar las relaciones entre las tablas de cabecera y partidas de compras. ¿Cuál es la utilidad del campo NUM_REG en SAE 4.X?, ¿Hacia dónde están justificados los valores de la clave de documento?
QUE Relaciones básicas en Aspel-SAE
SELECT * FROM MINV01
SELECT * FROM CUEN01
QUERelaciones básicas en Aspel-SAE
Visualiza los campos de la tabla de movimientos al inventario ¿Esta tabla permite dos o más registros idénticos?
QUE Aplicando el lenguaje SQL
Selección de datos con filtro
Filtros adicionales
SELECT * FROM nombre de tabla WHERE campo = valor
BETWEEN, LIKE
OrdenamientoORDER BY
Ejercicios adicionales
QUE Aplicando el lenguaje SQL
Clientes filtrados por saldo ¿Cuáles clientes tienen un saldo mayor a 10,000? Facturas filtradas por fecha: ¿Cuáles facturas se generaron en Enero? Facturas filtradas por fecha y cliente: ¿ A Cuáles clientes se les facturó en Diciembre? Búsqueda de un cliente de quien solo se conoce parte del RFC
QUEAplicando el lenguaje SQL
Selección de datos agrupadosSELECT campo SUM(camponumerico) FROM tabla1 GROUP BY campo
Funciones de agregación:AVGMAX MIN
QUEAplicando el lenguaje SQL
a) Suma de importe de facturas por cliente y fecha b) Suma de importe de facturas por vendedor c) Conteo de facturas canceladas
QUE Aplicando el lenguaje SQL
Subconsultas:
SELECT campo1, campo2 FROM tabla1 WHERE campo3 IN (SELECT campo4 FROM tabla2)
Otras variantes:NOT IN,EXISTS
QUE Aplicando el lenguaje SQL
a) Selección de productos que han sido registrados en cotizaciones b) Selección de productos que nunca han sido devueltos c) Mostrar un valor si existen facturas canceladas (MSSQL) c) Mostrar facturas que no generaron cuenta por cobrar
QUEAplicando el lenguaje SQL
SELECT campo1, campo2 FROM tabla1 alias JOIN tabla2 alias ON alias1.campo = alias1.campo
Consultas de datos de varias tablas:
QUEAplicando el lenguaje SQL
a) Facturas con datos de clientes: Lista de facturas con nombre de cliente y dias de crédito b) Lista de artículos comprados en el mes de Enero, mostrando el costo promedio c) Lista de clientes con nombre del vendedor
QUE Aplicando el lenguaje SQL
SELECT SUBSTRING (RFC FROM 2 FOR 3) FROM CLIE01
SELECT SUBSTRING(RFC, 3,2) FROM CLIE01
Otras variantes
LEFT , RIGHT
Funciones de cadena
QUE Aplicando el lenguaje SQL
a) Seleccionar productos que comiencen con un prefijo b) Seleccionar productos en cuyo código aparezcan dos caracteres buscados c) Seleccionar clientes cuyo RFC contenga caracteres intermedios específicos
QUEAplicando el lenguaje SQL
Instrucción CASE
SELECT CASE campo WHEN valor1 THEN resultado1 WHEN valor2 THEN resultado2 END
Otras variantes:SELECT CASE WHEN campo1 < valor1 THEN resultado1 WHEN
campo1 > valor1 THEN resultado2 END
QUE
Aplicando el lenguaje SQL
Generar una consulta que nos indique si un cliente es nacional o extranjero
QUEAplicando el lenguaje SQL
Actualización de datos
UPDATE tabla1 SET campo1 = valor1 WHERE campo2 = valor2
QUE Aplicando el lenguaje SQL
a) Actualizar el campo de número de guia en una factura b) Actualizar stock mínimo en inventários c) Actualizar % de comisión a los vendedores
QUE Aplicando el lenguaje SQL
Creación de tablas
CREATE TABLE nombretabla(
campo1 CHAR(100),campo2 CHAR(100)
)
QUE Aplicando el lenguaje SQL
a) Crear un directorio de clientes con nombre y telefono
b) Llenar la tabla con datos del catálogo de cuentas
QUEAplicando el lenguaje SQL
CREATE TABLE DIRECTORIO( NOMBRE VARCHAR(100), TELEFONO VARCHAR(100)
)
INSERT INTO DIRECTORIO SELECT NOMBRE, TELEFONOS FROM CLIE01
QUE Aplicando el lenguaje SQL
Procedimientos almacenados:
Los procedimientos almacenados son rutinas que integran código para su reutilización. Un procedimiento almacenado puede incluir parámetros de entrada y devolver resultados o mensajes para el cliente.
QUE Aplicando el lenguaje SQL
Procedimientos almacenados:
a) Actualizar campo libre numérico con las ventas promedio del añob) Actualizar línea de producto para artículos no vendidos en el último año
QUE Tips & Tricks
A diferencia de SAE 4.X, en SAE 5.0 la información de facturación se distribuye en diferentes tablas según el tipo de documento.
SELECT * FROM FACTF01
SELECT * FROM PAR_FACTF01
SELECT C.CVE_DOC, P.CVE_ART FROM FACTF01 C JOIN PAR_FACTF01 P ON C.CVE_DOC = P.CVE_DOC
QUE Tips & Tricks
TriggersCREATE TRIGGER CONTACTOS2 ON CONTAC01FOR INSERTAS BEGIN DECLARE @cliente varchar(10) SELECT @CLIENTE = CVE_CLPV FROM Inserted
INSERT INTO TEMPORAL (CLIENTE, NOMBRE) VALUES (@CLIENTE,' ')
RETURNEND
QUETips & Tricks
Cursores
Los cursores son instrucciones que permiten evaluar de manera individual los registros de una tabla y ejecutar acciones en cada paso.