Procesos
Bases de Datos
Lenguaje Estructurado de Consultas Structured Query Language
CLASE 10
Prof. Elsa Liliana Tovar
Lenguaje Estructurado de Consultas - SQL
Bases de Datos
SQL: El SQL es un Lenguaje de Manejo de Datos (LMD) basado en los lenguajes formales álgebra relacional y cálculo de predicados de tuplas. Está considerado el lenguajeestándar para consulta de datos en los DBMS relacionales.
La estructura básica de una expresión en SQL se compone de tres cláusulas:
cláusulas
Select from where
P
predicado
Lenguaje Estructurado de Consultas - SQL
Bases de Datos
SQL
Cláusula Select:
Corresponde a la operación de proyección del álgebra relacional. Sirve para listar todos los atributos que se deseen enel resultado de la consulta o query.
Cláusula From:
Corresponde a la operación de producto cartesiano del álgebra relacional. Su argumento consta de una lista de relaciones que se examinan durante la ejecución de la expresión.
Cláusula Where:
Corresponde al predicado de la selección (elegir) del álgebra relacional. Este predicado incluye atributos que aparecen en las relaciones indicadasen la cláusula from.
Lenguaje Estructurado de Consultas - SQL
Bases de Datos
SQL
Sintaxis
Select a1, a2, … , an from R1, R2, …, Rm where P
Equivalente en álgebra relacional:
π a1,a2,…,an(σ(P) (((R1X(R2X(…X(Rm-1XRm))))
Lenguaje Estructurado de Consultas - SQL
Bases de Datos
SQL
Varientes en las Cláusulas:
1. Si en la expresión de SQL se omite la cláusula where se asumeque P es verdadero. 2. Si se sustituye a1,a2,...,an por "∗" (asterisco) se eligen todos los atributos de las relaciones que aparecen en la cláusula from.
Así como en el álgebra relacional, todo resultado de la ejecución de una expresión en SQL es una relación.
Lenguaje Estructurado de Consultas - SQL
Bases de Datos
Ejemplos en SQL
Pieza(p#,nombre-p,color-p,peso-p,ciudad-alm)Precio(p#,precio-p,precio-p-sug) Préstamo(numPréstamo,ci-ch,nombre-suc,importe) Depósito(numDepósito,ci-ch,nombre-suc,saldo)
Consulta 1: Listar todos nombres de las sucursales donde se han solicitado préstamos.
Select nombre-suc from Préstamo
La relación resultante está compuesta por los nombres de todas las sucursales que aparecen en la relación Prestamo, si hay nombres de sucursales repetidos envarias tuplas, estos aparecen repetidos en el resultado.
Lenguaje Estructurado de Consultas - SQL
Bases de Datos
Ejemplos en SQL
Pieza(p#,nombre-p,color-p,peso-p,ciudad-alm) Precio(p#,precio-p,precio-p-sug) Préstamo(numPréstamo,ci-ch,nombre-suc,importe) Depósito(numDepósito,ci-ch,nombre-suc,saldo)
Si se desea eliminar los duplicados se debe indicar explícitamente:
Select distinctnombre-suc from Préstamo
Lenguaje Estructurado de Consultas - SQL Pieza(p#,nombre-p,color-p,peso-p,ciudad-alm) Precio(p#,precio-p,precio-p-sug) Préstamo(numPréstamo,ci-ch,nombre-suc,importe) Depósito(numDepósito,ci-ch,nombre-suc,saldo)
Bases de Datos
Consulta 2: Hallar los cuentahabientes que tienen tanto préstamos como depósitos.
(Select ci-ch from Deposito ) intersect (Select ci-chfrom Prestamo)
Lenguaje Estructurado de Consultas - SQL Pieza(p#,nombre-p,color-p,peso-p,ciudad-alm) Precio(p#,precio-p,precio-p-sug) Préstamo(numPréstamo,ci-ch,nombre-suc,importe) Depósito(numDepósito,ci-ch,nombre-suc,saldo)
Bases de Datos
Consulta 3: Listar los cuentahabientes que tengan o bien un préstamo o un depósito o ambos en la sucursal "Centro".
(Select ci-ch from Depositowhere nombre-suc = "Centro") union (Select ci-ch from Prestamo where nombre-suc = "Centro")
La unión elimina los duplicados.
Lenguaje Estructurado de Consultas - SQL Pieza(p#,nombre-p,color-p,peso-p,ciudad-alm) Precio(p#,precio-p,precio-p-sug) Préstamo(numPréstamo,ci-ch,nombre-suc,importe) Depósito(numDepósito,ci-ch,nombre-suc,saldo)
Bases de Datos
Consulta 4: Hallar a todos los...
Regístrate para leer el documento completo.