36
Taller de Bases de Datos y Lenguaje SQL

Presentación sql

Embed Size (px)

Citation preview

Page 1: Presentación sql

Taller de Bases de Datos y Lenguaje SQL

Page 2: Presentación 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.

Page 3: Presentación sql

Agenda

Introducción

Aplicando el lenguaje SQL

Tips and tricks

Page 4: Presentación sql

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.

Page 5: Presentación sql

Conceptos

TablaEntidadTipos de datoClavesoPrincipaloForánea

Índices

Page 6: Presentación sql

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

Page 7: Presentación sql

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

Page 8: Presentación sql

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.

Page 9: Presentación sql

QUE Relaciones básicas en Aspel-SAE

SELECT * FROM FACT01

SELECT * FROM FA0TY1

Page 10: Presentación sql

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?

Page 11: Presentación sql

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.

Page 12: Presentación sql

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?

Page 13: Presentación sql

QUE Relaciones básicas en Aspel-SAE

SELECT * FROM MINV01

SELECT * FROM CUEN01

Page 14: Presentación sql

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?

Page 15: Presentación sql

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

Page 16: Presentación sql

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

Page 17: Presentación sql

QUEAplicando el lenguaje SQL

Selección de datos agrupadosSELECT campo SUM(camponumerico) FROM tabla1 GROUP BY campo

Funciones de agregación:AVGMAX MIN

Page 18: Presentación sql

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

Page 19: Presentación sql

QUE Aplicando el lenguaje SQL

Subconsultas:

SELECT campo1, campo2 FROM tabla1 WHERE campo3 IN (SELECT campo4 FROM tabla2)

Otras variantes:NOT IN,EXISTS

Page 20: Presentación sql

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

Page 21: Presentación sql

QUEAplicando el lenguaje SQL

SELECT campo1, campo2 FROM tabla1 alias JOIN tabla2 alias ON alias1.campo = alias1.campo

Consultas de datos de varias tablas:

Page 22: Presentación sql

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

Page 23: Presentación sql

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

Page 24: Presentación sql

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

Page 25: Presentación sql

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

Page 26: Presentación sql

QUE

Aplicando el lenguaje SQL

Generar una consulta que nos indique si un cliente es nacional o extranjero

Page 27: Presentación sql

QUEAplicando el lenguaje SQL

Actualización de datos

UPDATE tabla1 SET campo1 = valor1 WHERE campo2 = valor2

Page 28: Presentación sql

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

Page 29: Presentación sql

QUE Aplicando el lenguaje SQL

Creación de tablas

CREATE TABLE nombretabla(

campo1 CHAR(100),campo2 CHAR(100)

)

Page 30: Presentación sql

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

Page 31: Presentación sql

QUEAplicando el lenguaje SQL

CREATE TABLE DIRECTORIO( NOMBRE VARCHAR(100), TELEFONO VARCHAR(100)

)

INSERT INTO DIRECTORIO SELECT NOMBRE, TELEFONOS FROM CLIE01

Page 32: Presentación sql

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.

Page 33: Presentación sql

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

Page 34: Presentación sql

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

Page 35: Presentación sql

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

Page 36: Presentación sql

QUETips & Tricks

Cursores

Los cursores son instrucciones que permiten evaluar de manera individual los registros de una tabla y ejecutar acciones en cada paso.