SlideShare una empresa de Scribd logo
1 de 36
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



Tabla
Entidad
Tipos de dato
Claves
    oPrincipal
    oForánea
Índices
Tipos de dato
                    Clientes SAE 4.X
Column_name   Type           Column_name   Type
NUM_REG       int            ATENCION      varchar

CCLIE         varchar        ATEN_COB      varchar
                             REV_PAG       varchar
STATUS        varchar
                             CLASIFIC      varchar
NOMBRE        varchar
                             DIAS_CRE      smallint
RFC           varchar
                             FCH_ULTCOM    datetime
DIR           varchar
                             VEND          varchar
POB           varchar
                             DESCUENTO     float
CODIGO        varchar        LIM_CRED      float
TELEFONO      varchar        SALDO         float
Tipos de dato
                     Clientes 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
Relaciones básicas en Aspel-SAE

QUE
  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?
QUE
           Relaciones 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
QUE
           Relaciones 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
       SELECT * FROM nombre de tabla WHERE campo = valor


 Ordenamiento
      ORDER BY


 Filtros adicionales
         BETWEEN, LIKE




   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
QUE              Aplicando el lenguaje SQL

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


 Funciones de agregación:
    AVG
    MAX    MIN
QUE                 Aplicando 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
QUE
                     Aplicando el lenguaje SQL



 Consultas de datos de varias tablas:


 SELECT campo1, campo2 FROM tabla1 alias JOIN tabla2 alias ON alias1.campo =
 alias1.campo
QUE
                     Aplicando 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


  Funciones de cadena



 SELECT SUBSTRING (RFC FROM 2 FOR 3) FROM CLIE01

 SELECT SUBSTRING(RFC, 3,2) FROM CLIE01


 Otras variantes

 LEFT , RIGHT
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
QUE                 Aplicando 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
Aplicando el lenguaje SQL

QUE

  Generar una consulta que nos indique si un cliente es
  nacional o extranjero
QUE               Aplicando 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
QUE
            Aplicando 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ño
   b) 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
Tips & Tricks
QUE
                               Triggers
 CREATE TRIGGER CONTACTOS2 ON CONTAC01
 FOR INSERT
 AS BEGIN
   DECLARE
     @cliente        varchar(10)


      SELECT @CLIENTE = CVE_CLPV
       FROM Inserted

            INSERT INTO TEMPORAL (CLIENTE, NOMBRE) VALUES (@CLIENTE,'
 ')


 RETURN
 END
QUE
                             Tips & Tricks

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

Más contenido relacionado

La actualidad más candente (20)

02 guia-i235
02 guia-i23502 guia-i235
02 guia-i235
 
Guia de la funcion buscar v
Guia de la funcion buscar vGuia de la funcion buscar v
Guia de la funcion buscar v
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Gar043 guia de aprendizaje access desempeño
Gar043  guia de aprendizaje access desempeñoGar043  guia de aprendizaje access desempeño
Gar043 guia de aprendizaje access desempeño
 
Comandos SQL
Comandos SQLComandos SQL
Comandos SQL
 
Teoria sql
Teoria sqlTeoria sql
Teoria sql
 
Ejemplo ddl dml
Ejemplo ddl dmlEjemplo ddl dml
Ejemplo ddl dml
 
Sentencias sql
Sentencias sqlSentencias sql
Sentencias sql
 
Funciones de ecxel
Funciones de ecxelFunciones de ecxel
Funciones de ecxel
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Anexo balance en excel
Anexo  balance en excelAnexo  balance en excel
Anexo balance en excel
 
SENTENCIAS SQL
SENTENCIAS SQL SENTENCIAS SQL
SENTENCIAS SQL
 
Consultas en sql básico
Consultas en sql básicoConsultas en sql básico
Consultas en sql básico
 
SQL para IEDA
SQL para IEDASQL para IEDA
SQL para IEDA
 
Proyecto 2 Bases de Datos
Proyecto 2 Bases de DatosProyecto 2 Bases de Datos
Proyecto 2 Bases de Datos
 
Consultas sql
Consultas sqlConsultas sql
Consultas sql
 
84 Php. AñAdir A Traves De Formularios
84 Php. AñAdir A Traves De Formularios84 Php. AñAdir A Traves De Formularios
84 Php. AñAdir A Traves De Formularios
 
Tipos de consultas sql
Tipos de consultas sqlTipos de consultas sql
Tipos de consultas sql
 
Oracle Tuning Opq
Oracle Tuning OpqOracle Tuning Opq
Oracle Tuning Opq
 
Aprenda SQL Server
Aprenda SQL ServerAprenda SQL Server
Aprenda SQL Server
 

Similar a Presentación sql

Similar a Presentación sql (20)

04-SQL.pdf
04-SQL.pdf04-SQL.pdf
04-SQL.pdf
 
04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf
 
Ejer acces
Ejer accesEjer acces
Ejer acces
 
Ejer acces
Ejer accesEjer acces
Ejer acces
 
Fundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sqlFundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sql
 
Ejercicio de access
Ejercicio de accessEjercicio de access
Ejercicio de access
 
Ejercicio Practico Access
Ejercicio Practico AccessEjercicio Practico Access
Ejercicio Practico Access
 
Ejercicios de access 2007 10 Grado
Ejercicios de access 2007 10 GradoEjercicios de access 2007 10 Grado
Ejercicios de access 2007 10 Grado
 
Sql procedimientos-almacenados
Sql procedimientos-almacenadosSql procedimientos-almacenados
Sql procedimientos-almacenados
 
Ejer acces preactica
Ejer acces  preacticaEjer acces  preactica
Ejer acces preactica
 
Ejer acces
Ejer accesEjer acces
Ejer acces
 
2016 ejercicio base datos srs
2016 ejercicio base datos srs2016 ejercicio base datos srs
2016 ejercicio base datos srs
 
EjerAcces.pdf
EjerAcces.pdfEjerAcces.pdf
EjerAcces.pdf
 
Ejer acces
Ejer accesEjer acces
Ejer acces
 
Ejer acces tablas 3
Ejer acces tablas 3Ejer acces tablas 3
Ejer acces tablas 3
 
Modificaciones De Ansi Sql
Modificaciones De Ansi SqlModificaciones De Ansi Sql
Modificaciones De Ansi Sql
 
Modificaciones De Ansi Sql
Modificaciones De Ansi SqlModificaciones De Ansi Sql
Modificaciones De Ansi Sql
 
Manual completo-sql
Manual completo-sqlManual completo-sql
Manual completo-sql
 
Manual completo-sql5
Manual completo-sql5Manual completo-sql5
Manual completo-sql5
 
103305862 t-sql
103305862 t-sql103305862 t-sql
103305862 t-sql
 

Presentación sql

  • 1. Taller de Bases de Datos y Lenguaje SQL
  • 2. 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.
  • 4. 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.
  • 6. Tipos de dato Clientes SAE 4.X Column_name Type Column_name Type NUM_REG int ATENCION varchar CCLIE varchar ATEN_COB varchar REV_PAG varchar STATUS varchar CLASIFIC varchar NOMBRE varchar DIAS_CRE smallint RFC varchar FCH_ULTCOM datetime DIR varchar VEND varchar POB varchar DESCUENTO float CODIGO varchar LIM_CRED float TELEFONO varchar SALDO float
  • 7. Tipos de dato Clientes 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
  • 8. 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.
  • 9. QUE Relaciones básicas en Aspel-SAE SELECT * FROM FACT01 SELECT * FROM FA0TY1
  • 10. Relaciones básicas en Aspel-SAE QUE 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?
  • 11. QUE Relaciones 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.
  • 12. 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?
  • 13. QUE Relaciones básicas en Aspel-SAE SELECT * FROM MINV01 SELECT * FROM CUEN01
  • 14. QUE Relaciones 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?
  • 15. QUE Aplicando el lenguaje SQL Selección de datos con filtro SELECT * FROM nombre de tabla WHERE campo = valor Ordenamiento ORDER BY Filtros adicionales BETWEEN, LIKE Ejercicios adicionales
  • 16. 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
  • 17. QUE Aplicando el lenguaje SQL Selección de datos agrupados SELECT campo SUM(camponumerico) FROM tabla1 GROUP BY campo Funciones de agregación: AVG MAX MIN
  • 18. QUE Aplicando 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
  • 19. QUE Aplicando el lenguaje SQL Subconsultas: SELECT campo1, campo2 FROM tabla1 WHERE campo3 IN (SELECT campo4 FROM tabla2) Otras variantes: NOT IN,EXISTS
  • 20. 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
  • 21. QUE Aplicando el lenguaje SQL Consultas de datos de varias tablas: SELECT campo1, campo2 FROM tabla1 alias JOIN tabla2 alias ON alias1.campo = alias1.campo
  • 22. QUE Aplicando 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
  • 23. QUE Aplicando el lenguaje SQL Funciones de cadena SELECT SUBSTRING (RFC FROM 2 FOR 3) FROM CLIE01 SELECT SUBSTRING(RFC, 3,2) FROM CLIE01 Otras variantes LEFT , RIGHT
  • 24. 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
  • 25. QUE Aplicando 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
  • 26. Aplicando el lenguaje SQL QUE Generar una consulta que nos indique si un cliente es nacional o extranjero
  • 27. QUE Aplicando el lenguaje SQL Actualización de datos UPDATE tabla1 SET campo1 = valor1 WHERE campo2 = valor2
  • 28. 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
  • 29. QUE Aplicando el lenguaje SQL Creación de tablas CREATE TABLE nombretabla ( campo1 CHAR(100), campo2 CHAR(100) )
  • 30. 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
  • 31. QUE Aplicando el lenguaje SQL CREATE TABLE DIRECTORIO ( NOMBRE VARCHAR(100), TELEFONO VARCHAR(100) ) INSERT INTO DIRECTORIO SELECT NOMBRE, TELEFONOS FROM CLIE01
  • 32. 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.
  • 33. QUE Aplicando el lenguaje SQL Procedimientos almacenados: a) Actualizar campo libre numérico con las ventas promedio del año b) Actualizar línea de producto para artículos no vendidos en el último año
  • 34. 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
  • 35. Tips & Tricks QUE Triggers CREATE TRIGGER CONTACTOS2 ON CONTAC01 FOR INSERT AS BEGIN DECLARE @cliente varchar(10) SELECT @CLIENTE = CVE_CLPV FROM Inserted INSERT INTO TEMPORAL (CLIENTE, NOMBRE) VALUES (@CLIENTE,' ') RETURN END
  • 36. QUE Tips & Tricks Cursores Los cursores son instrucciones que permiten evaluar de manera individual los registros de una tabla y ejecutar acciones en cada paso.