SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
Modelo Relacional (8):
                 SQL

                                       II - Semestre 2006




Apuntes 2005, Fundamentos de Sistema de Bases de datos, Elmasri and Navathe   1
Introducción
    SQL (Structured Query Language)


    SQL emplea los términos tabla, fila y

    columna en vez de relación, tupla y atributo,
    respectivamente.
    Las instrucciones SQL2 para definir datos

    son CREATE, ALTER y DROP



                                                    2
Concepto de Esquema y
Catálogo
    Un esquema SQL se identifica con un

    nombre de esquema y consta de un
    identificador de autorización, que indica el
    usuario o la cuenta propietaria del esquema,
    además de los descriptores de cada
    elemento del esquema.
    Los elementos del esquema comprenden

    tablas, restricciones, vistas, dominios y otros.

                                                   3
Concepto de Esquema y
Catálogo
    Un esquema se crea mediante la sentencia CREATE SCHEMA,

    por ejemplo:
    CREATE SCHEMA EMPRESA AUTHORIZATION JPEREZ;

    Catálogo es un conjunto de esquemas, con un nombre. El

    catálogo, siempre contiene un esquema especial, llamado
    INFORMATION_SCHEMA, que proporciona información sobre
    todos los esquemas del catálogo.
    La ventaja de los catálogos es que se pueden definir restricciones

    de integridad, sobre relaciones que están en el mismo catálogo.
    Además los esquemas del mismo catálogo pueden compartir
    ciertos elementos, como definiciones de dominio.




                                                                         4
CREATE TABLE y Tipos de Datos
    La instrucción CREATE TABLE permite

    crear relaciones, dándole un nombre y
    especificando atributos y restricciones.
    Los atributos se especifican con un nombre,

    un tipo de datos (para especificar su dominio
    de valores) y cualquier restricción del
    mismo, por ejemplo: NOT NULL.
    Se especifican las restricciones de clave: de

    integridad de la entidad y referencial

                                                    5
CREATE TABLE y Tipos de Datos

CREATE TABLE EMPLEADO
(NOMBRE      VARCHAR(15) NOT NULL,
INIC         CHAR,
APELLIDO     VARCHAR(15) NOT NULL,
NUMERO        CHAR(9)       NOT NULL,
FECHA_NAC    DATE,
DIRECCION    VARCHAR(30),
SEXO          CHAR,
SALARIO       DECIMAL(10,2),
NRO_SUP        CHAR(9),
NRO_DEPTO INT             NOT NULL,
PRIMARY KEY (NUMERO),
FOREIGN KEY (NRO_SUP) REFERENCES EMPLEADO (NUMERO),
FOREIGN KEY (NRO_DEPTO) REFERENCES DEPARTAMENTO (ND));

                                                         6
Tipos de Datos y dominios
    Tipos de Datos para atributos: numéricos, cadena

    de caracteres, cadena de bits, fecha y hora.
    Numéricos (de distintos tamaños, enteros):

    INTEGER o INT y SMALLINT y reales de diversas
    precisiones (FLOAT; REAL; DOUBLE
    PRECISION). Formatos DECIMAL(i,j) o DEC(i,j) o
    NUMERIC(i,j), donde i es la precisión (nro de
    digitos) y j la escala (numero de decimales)



                                                       7
Tipos de Datos y dominios
    Cadena de caracteres, de longitud fija

    (CHAR(n) o CHARACTER(n), donde n es el
    número de caracteres) o de longitud variable
    (VARCHAR(n) o CHARVARYING(n), donde
    es el número máximo de caracteres)
    Cadena de bits, pueden ser de longitud fija n

    (BIT(n)) o longitud variable (BIT
    VARIYNG(n)), donde n es el número
    máximo de bits.

                                                    8
Tipos de Datos y dominios
    Tipo de dato para fecha es DATE, tiene 10

    posiciones y sus componentes son YEAR,
    MONTH y DAY, por lo regular de la forma
    YYYY-MM-DD.
    Tipo de dato para tiempo es TIME, tiene 8

    posiciones, con los componentes HOUR,
    MINUTE y SECOND, por lo general de la
    forma HH:MM:SS

                                                9
Tipos de Datos y dominios
    Dominios: esto permite cambiar tipos de

    datos de un dominio utilizado por un gran
    numero de atributos más fácilmente. Por
    ejemplo, dominio TIPO_NUMERO así:
    CREATE DOMAIN TIPO_NUMERO AS

    CHAR(9),



                                                10
Especificación de
restricciones
    Dado que SQL permite NULL como valor para un

    atributo, se puede especificar la restricción NOT
    NULL, si es que no queremos nulos.
    Valor por omisión de un atributo, añadiendo la

    cláusula DEFAULT <valor> a la definición de un
    atributo
    La cláusula PRIMARY KEY y FOREIGN KEY

    permiten especificar las pk y fk.
    La cláusula UNIQUE especifica claves alternativas




                                                        11
Especificación de
restricciones
    El diseñador debe especificar las acciones que

    deben realizarse cuando se transgrede una
    restricción, asociada a la inserción, modificación y
    eliminación de un valor de atributo de clave foránea
    y asociada al modificarse un valor de clave primaria
    referenciada, añadiendo una cláusula de acción de
    disparo referencial a una restricción de clave
    externa.
    Las opciones son: SET NULL, CASCADE y SET

    DEFAULT, las opciones son ON DELETE o ON
    CASCADE.

                                                       12
Especificación de
restricciones
    CREATE TABLE EMPLEADO

(…,
NRO_DEPTO INT      NOT NULL DEFAULT 1,
PRIMARY KEY (NUMERO),
FOREIGN KEY (NRO_SUP) REFERENCES EMPLEADO (NUMERO)
               ON DELETE SET NULL ON UPDATE CASCADE,
FOREIGN KEY (NRO_DEPTO) REFERENCES DEPARTAMENTO (ND) ON
   DELETE SET DEFAULT ON UPDATE CASCADE);

    Se tiene SET NULL ON DELETE y CASCADE ON UPDATE para la clave

    externa NRO_SUP de EMPLEADO. Esto significa que si se elimina la tupla de
    empleado supervisor, el valor de NRO_SUP pasa automáticamente a NULL en
    todas las tuplas de EMPLEADO que hagan referencia a la tupla eliminada.


                                                                            13
Especificación de
restricciones
    Si se actualiza el valor de NUMERO de un empleado

    supervisor, el nuevo valor se propaga a NRO_SUP para
    todas las tuplas de empleado que hagan referencia a la tupla
    del empleado actualizada.
    En general, la acción emprendida por el SGBD cuando se

    especifica SET NULL o SET DEFAULT es la misma para ON
    DELETE que para ON UPDATE: el valor de los atributos
    referenciados afectados se cambia a NULL en el caso de
    SET NULL y al valor por omisión especificado en el caso de
    SET DEFAULT.



                                                               14
Especificación de
restricciones
    La acción correspondiente a CASCADE ON

    DELETE es eliminar todas las tuplas
    referenciadoras, mientras que la acción
    correspondiente a CASCADE ON UPDATE es
    cambiar el valor de la clave externa al nuevo valor
    actualizado de la clave primaria en todas las tuplas
    referenciadoras.
    Por lo general, la opción CASCADE es adecuada

    para tablas del tipo TRABAJA_EN, para relaciones
    que representan atributos multivaluados como
    LOCALIZACION_DEPTO y para relaciones que
    representan tipos de entidad débiles como
    DEPENDIENTE.
                                                       15
Especificación de
restricciones
    Las relaciones declaradas con CREATE

    TABLE se denominan tablas base. El SGBD
    las almacena como archivos.
    En SQL, los atributos de una relación de una

    tabla base están ordenados en la secuencia
    en que se especifican en la sentencia
    CREATE TABLE. Las filas no están
    ordenadas.

                                               16
DROP SCHEMA y DROP TABLE
    Existen dos opciones para eliminar: CASCADE y

    RESTRICT.
    Si se desea eliminar el esquema EMPRESA con

    todas sus tablas, dominios, etc. Se utiliza
    CASCADE:
    DROP SCHEMA EMPRESA CASCADE;

    Si se elige la opción RESTRICT, el esquema se

    eliminará sólo si no tiene elementos; en caso
    contrario no se ejecutará la instrucción DROP


                                                    17
DROP SCHEMA y DROP TABLE
    DROP TABLE DEPENDIENTE CASCADE;


    Elimina la tabla DEPENDIENTE. Con la

    opción CASCADE, todas las restricciones y
    vistas que hagan referencia a la tabla se
    eliminarán automáticamente del esquema,
    junto con la propia tabla.



                                                18
ALTER TABLE
    Las posibles acciones de alterar tablas incluyen

    agregar atributos, eliminar atributos, la modificación
    de la definición de una columna y la agregación y
    eliminación de restricciones de tabla.
    ALTER TABLE EMPRESA.EMPLEADO ADD

    PUESTO VARCHAR(12); Agrega un atributo. Para
    darle valores a este nuevo atributo se puede utilizar
    UPDATE o bien darle un valor por defecto. Si no se
    hace esto último, el nuevo atributo tendrá valor
    NULL
    ALTER TABLE EMPRESA.EMPLEADO DROP

    DIRECCION CASCADE; Elimina atributo
    DIRECCION de la tabla EMPLEADO
                                                         19
CONSULTAS BASICAS
    La sentencia SELECT permite recuperar

    información de la BD. No tiene nada que ver con la
    operación de selección del álgebra relacional.
    SQL y el Modelo relacional tienen diferencias: SQL

    permite filas duplicadas, es decir, una tabla SQL no
    es un conjunto de tuplas, porque los conjuntos no
    permiten elementos repetidos. A veces a las tablas
    SQL se les llama bolsa, bag o multiconjunto.
    La cláusula DISTINCT elimina las filas repetidas.




                                                       20
SELECT-FROM-WHERE
    SELECT <lista de atributos>

    FROM <lista de tablas>
    WHERE <condición>
    Considere como caso la BDR de empleados,

    proyectos y dependientes dada como ejercicio2 del
    capítulo3.
    C1: Recupere la fecha de nacimiento y dirección

    del empleado cuyo nombre es Juan Pérez.
    SELECT FECHA_NAC, DIRECCION

    FROM EMPLEADO
    WHERE Nombre=‘Juan’ AND APELLIDO = ‘Pérez’;

                                                    21
Ejercicio2
    Dada la siguiente BDR:

    EMPLEADO(Nombre, Apellido, NroEmpleado, FechaNacimiento,

    Dirección, Sexo, Salario, NroSuperior, NroDepto)
    DEPARTAMENTO(NombreDepto, NroDepto,NroGerente,

    FechaInicioGerente)
    LUGARESDEPTO(NroDepto, LugarDepto)

    PROYECTO(Nombreproyecto, NroProyecto, LugarProyecto, NroDepto)

    TRABAJAEN(NroEmpleado, NroProyecto, Horas)

    DEPENDIENTE(NroEmpleado, NombreDependiente, Sexo,

    FechaNacimiento, Parentesco)




                                                                 22
SELECT-FROM-WHERE
    C2 Recupere el nombre, apellido y dirección

    de todos los empleados que trabajan en el
    departamento de Investigación.
    SELECT NOMBRE, APELLIDO, DIRECCION

    FROM EMPLEADO, DEPARTAMENTO
    WHERE NOMBREDEPTO = ‘Investigación’
    AND DEPARTAMENTO.NRODEPTO =
    EMPLEADO.NRODEPTO;


                                              23
SELECT-FROM-WHERE
    C3 De cada proyecto ubicado en Concepción, haga una

    lista con el número de proyecto, el numero de
    departamento controlador y el apellido, dirección y
    fecha de nacimiento del jefe de departamento.
    SELECT NROPROYECTO, NRODEPTO, APELLIDO,

    DIRECCION, FECHANACIMIENTO
     FROM EMPLEADO, DEPARTAMENTO, PROYECTO
     WHERE PROYECTO.NRODEPTO =
    DEPARTAMENTO.NRODEPTO AND
    DEPARTAMENTO.NROGERENTE =
    EMPLEADO.NROEMPLEADO AND
    LUGARPROYECTO = ‘Concepción’;
                                                      24
CONSULTAS BASICAS
    Cláusulas Where no especificadas (todas las tuplas son

    consideradas)
    C4 Seleccione todos los números de empleado de EMPLEADO

    SELECT NROEMPLEADO

    FROM EMPLEADO;
    C5 Seleccione todas las combinaciones posibles de números de

    empleado y números de departamento
    SELECT NROEMPLEADO, NRODEPARTAMENTO

    FROM EMPLEADO, DEPARTAMENTO;
    Esta consulta realiza el producto cartesiano.





                                                               25
CONSULTAS BASICAS
    Uso del *: Recupera los valores de todos

    los atributos.
    SELECT *


    FROM EMPLEADO
    WHERE NroDepto = 5;




                                               26
CONSULTAS BASICAS
    Tablas como conjuntos en SQL:

    SQL no elimina las filas repetidas en los resultados

    de las consultas, por las siguientes razones:
        La eliminación de duplicados es una operación
    
        costosa. Una forma de implementarla es ordenar las
        tuplas primero y luego eliminar los duplicados.
        Es posible que el usuario requiera ver las tuplas
    
        repetidas en el resultado de la consulta
        Cuando se aplica una función agregada, en la
    
        mayoría de los casos no se quiere eliminar los
        duplicados.

                                                             27
CONSULTAS BASICAS
    Si queremos eliminar tuplas repetidas en el

    resultado de una consulta, se usa la palabra
    clave DISTINCT en la cláusula SELECT.
    Recupere el salario de todos los empleados

    y los valores de todos los salarios distintos
    SELECT ALL SALARIO (o SELECT simple)

     FROM EMPLEADO; (incluye repetidos)
    SELECT DISTINCT SALARIO

     FROM EMPLEADO; (no incluye repetidos)
                                                    28
CONSULTAS BASICAS
    Operaciones de Conjunto: UNION, EXCEPT e

    INTERSECT, equivalentes a la unión, diferencia e
    intersección de conjuntos. Las tuplas repetidas se
    eliminan del resultado y se debe asegurar que las
    relaciones sean compatibles en su esquema
    (mismos atributos y el orden).
    Lista con todos los números de proyecto en los que

    participa un empleado de apellido Pérez, sea como
    trabajador o como jefe del departamento que
    controla el proyecto.

                                                         29
CONSULTAS BASICAS
      (SELECT DISTINCT NROPROYECTO

     FROM PROYECTO, DEPARTAMENTO, EMPLEADO
     WHERE PROYECTO.NRODEPTO =
      DEPARTAMENTO.NRODEPTO AND
      DEPARTAMENTO.NROGERENTE =
      EMPLEADO.NROEMPLEADO AND APELLIDO = ‘Pérez’)
    UNION
    (SELECT DISTINCT NROPROYECTO
    FROM TRABAJA_EN, EMPLEADO
    WHERE TRABAJA_EN. NROEMPLEADO =
      EMPLEADO.NROEMPLEADO AND APELLIDO = ‘Pérez’);




                                                      30
Comparaciones, ordenación
    Comparación cadena de caracteres: operador

    LIKE, cadenas parciales %: sustituye un número
    arbitrareo de caracteres y _ sustituye a un solo
    caracter.
    Recupere todos los empleados cuya dirección sea

    Talcahuano.

SELECT NOMBRE, APELLIDO
FROM EMPLEADO
WHERE DIRECCION LIKE ‘%Talcahuano’;

                                                       31
Comparaciones, ordenación
    Aritmética en Consultas: Los operadores suma(+), resta(-),

    multiplicación (*) y división (/) se pueden aplicar a valores
    numéricos o atributos con dominios númericos.
    Muestre los salarios resultantes si cada empleado que trabaja en el

    proyecto ‘Producto X’ recibe un aumento del 10%.

SELECT NOMBRE, APELLIDO, 1.1*SALARIO
FROM EMPLEADO, TRABAJA_EN, PROYECTO
WHERE TRABAJA_EN. NROEMPLEADO =
  EMPLEADO.NROEMPLEADO AND
  TRABAJA_EN.NROPROYECTO = PROYECTO.NROPROYECTO
  AND NOMBREPROYECTO = ‘Producto X’;



                                                                      32
Comparaciones, ordenación
    En el caso de tipos de datos de cadena, se

    puede usar el operador concatenación(//) en
    una consulta para anexar un valor de
    cadena a otro.
    En el caso de tipos de datos fecha, tiempo,

    los operadores incluyen el incremento (+) o
    disminución (-), en un intervalo compatible
    con el tipo de una fecha, o tiempo.

                                                  33
Comparaciones, ordenación
    Operador BETWEEN

    Recupere todos los empleados del

    departamento 5 cuyo salario esté entre
    30000 y 40000 dólares

SELECT *
FROM EMPLEADO
WHERE (SALARIO BETWEEN 30000 AND
 40000) AND NRODEPTO= 5;
                                             34
Comparaciones, ordenación
    Cláusula ORDER BY

    Obtenga una lista de los empleados y de los proyectos en los que

    trabajan, ordenados por departamento, y dentro de cada
    departamento, alfabéticamente por apellido y nombre

SELECT NOMBREDEPTO, APELLIDO, NOMBRE,
  NOMBREPROYECTO
FROM DEPARTAMENTO, EMPLEADO, TRABAJA_EN,
  PROYECTO
WHERE DEPARTAMENTO.NRODEPTO =
  EMPLEADO.NRODEPTO AND EMPLEADO.NROEMPLEADO
  = TRABAJA_EN.NROEMPLEADO AND
  TRABAJA_EN.NRO.PROY = PROYECTO.NROPROY
  ORDER BY NOMBREDEPTO, APELLIDO, NOMBRE;


                                                                       35
Comparaciones, ordenación
    El orden por omisión es ascendente. Se usa

    la palabra DESC para ordenar en forma
    descendente. ORDER BY NOMBREDEPTO
    DESC, APELLIDO ASC, NOMBRE ASC




                                                 36
CONSULTAS COMPLEJAS
    Estas consultas requieren valores de la BD

    para usarlos después en una condición de
    comparación.
    Consultas anidadas: bloques select-from-

    where dentro de la cláusula where de otra
    consulta. A esta última consulta se le llama
    consulta externa


                                                   37
Consultas Complejas
    SELECT DISTINCT NROPROY


    FROM PROYECTO


    WHERE NROPROY IN ( SELECT NROPROY

            FROM PROYECTO, EMPLEADO
            WHERE PROYECTO.NRODEPTO=DEPTO. NRODEPTO
             AND NRO NROGERENTE = NROSUPERIOR AND
             APELLIDO =‘Pérez’)
           OR
            NROPROY IN (SELECT NROPROY FROM TRABAJA_EN,
             EMPLEADO
           WHERE EMPLEADO.NROEMP = TRABAJA_EN.NROEMP
           AND APELLIDO = ‘Pérez’);

                                                      38
Consultas Complejas
    La primera consulta anidada selecciona los números de

    proyectos en que un Pérez participa como jefe.
    La segunda consulta anidada selecciona los números de

    proyectos en que un Pérez participa como trabajador.
    La consulta externa selecciona una tupla PROYECTO si el

    valor de NROPROY de esa tupla está en el resultado de
    cualquiera de las dos consultas anidadas.
    El operador de comparación IN compara el valor v con un

    conjunto (o multiconjunto) de valores V y evalúa a TRUE para
    comprobar si v es uno de los elementos de V




                                                               39
Consultas anidadas
correlacionadas
    Siempre que una condición en la cláusula

    WHERE de una consulta anidada hace
    referencia a un atributo de una relación
    declarada en la consulta externa, se dice
    que las dos consultas están correlacionadas.
    La consulta anidada se evalúa una sola vez

    para cada tupla (o combinación de tuplas)
    en la consulta externa

                                               40
Consultas anidadas
correlacionadas
    Recupere el nombre de cada empleado que tenga

    un familiar dependiente con el mismo nombre de
    pila y sexo que el empleado.

SELECT E.NOMBRE, E.APELLIDO
FROM EMPLEADO AS E, DEPENDIENTE AS D
WHERE E.NROEMPLEADO =D.NROEMPLEADO
  AND E.SEXO =D.SEXO AND E.NOMBRE
  =D.NOMBREDEP;

                                                     41
Función EXISTS
    EXISTS sirve para comprobar si el resultado de

    una consulta anidada correlacionada es o no vacío.

SELECT E.NOMBRE, E.APELLIDO
FROM EMPLEADO AS E
WHERE EXISTS (SELECT *
              FROM DEPENDIENTE
              WHERE E.NROEMP =
  DEPENDIENTE.NROEMP AND SEXO = E.SEXO
  AND E.NOMBRE =NOMBREDEPENDIENTE);

                                                         42
Función EXISTS
    Recupere los nombres de empleados que

    no tienen familiares dependientes

SELECT NOMBRE, APELLIDO
FROM EMPLEADO
WHERE NOT EXISTS (SELECT *
       FROM DEPENDIENTE
       WHERE EMPLEADO.NROEMPLEADO =
         DEPENDIENTE.NROEMPLEADO);

                                            43
Conjuntos explícitos y NULL
    Recupere el número de empleado de todos los que trabajan

    en los proyectos 1, 2 o 3.

SELECT DISTINCT NROEMPLEADO
FROM EMPLEADO
WHERE NROPROY IN (1,2,3);
 Recupere los nombres de todos los empleados que no tienen
  supervisores

SELECT NOMBRE, APELLIDO
FROM EMPLEADO
WHERE NROSUPERVISOR IS NULL;


                                                               44
Funciones agregadas y
agrupación
    Funciones COUNT (cuenta numero de

    tuplas), SUM, MAX, MIN, AVG
    Halle la suma de los salarios de todos los

    empleados, el salario máximo, el mínimo y
    el salario medio.

SELECT SUM(SALARIO), MAX(SALARIO),
 MIN(SALARIO), AVG(SALARIO)
FROM EMPLEADO;
                                                 45
Funciones agregadas y
agrupación
  Recupere el total de empleados de la empresa

SELECT COUNT(*)
FROM EMPLEADO;
 Recupere el número de empleados del
  departamento de Investigación.
SELECT COUNT(*)
FROM EMPLEADO, DEPARTAMENTO
WHERE DEPTO.NRODEPTO =
  EMPLEADO.NRODEPTO AND NOMBREDEPTO
  =‘Investigación’;

                                                 46
Funciones agregadas y
agrupación
    Contar valores de atributos en vez de tuplas.




SELECT COUNT(DISTINCT SALARO)
FROM EMPLEADO;




                                                47
Agrupación
    A veces es necesario aplicar funciones agregadas

    a subgrupos de tuplas de una relación, por ejemplo
    conocer el salario medio de los empleados de cada
    departamento, o el número de empleados que
    trabajan en que cada proyecto.
    En estos casos se necesita agrupar las tuplas que

    tienen el mismo valor para ciertos atributos, que se
    llaman atributos de agrupación y aplicar la función
    de manera independiente a cada uno de esos
    grupos.
    SQL tiene la cláusula GROUP BY


                                                           48
Agrupación
    Recupere el número de depto y el número

    de empleados de cada departamento y su
    salario medio.

SELECT NRODEPTO, COUNT(*), AVG
 (SALARIO)
FROM EMPLEADO GROUP BY NRODEPTO;


                                              49
Agrupación
    De cada proyecto, recupere su número, nombre y

    el número de empleados que trabajan en él

SELECT NROPROY, NOMBREPROY, COUNT(*)
FROM PROYECTO, TRABAJA_EN
WHERE PROYECTO.NROPROY =
  TRABAJA_EN.NROPROY
GROUP BY NROPROY, NOMBREPROY;


                                                     50
Agrupación
    A veces se requiere recuperar valores agrupados

    cuando se cumplan ciertas condiciones. Por
    ejemplo, la consulta anterior, pero para aquellos
    proyectos que tengan más de dos empleados.
    Se ocupa la cláusula HAVING, que puede aparecer

    con la cláusula GROUP BY.
    HAVING especifica una condición en términos del

    grupo de tuplas asociado a cada valor de los
    atributos de agrupación. Sólo lo grupos que
    satisfagan la condición entrarán en el resultado de
    la consulta.
                                                          51
Agrupación
SELECT NROPROY, NOMBREPROY, COUNT(*)
FROM PROYECTO, TRABAJA_EN
WHERE PROYECTO.NROPROY =
 TRABAJA_EN.NROPROY
GROUP BY NROPROY, NOMBREPROY
HAVING COUNT(*) >2;




                                   52
Especificación de
Restricciones Generales
    CREATE ASSERTION RESTRIC_SALARIO

    CHECK (NOT EXISTS (SELECT * FROM
    EMPLEADO E, EMPLEADO M,
    DEPARTAMENTO D
        WHERE E. SALARI > M. SALARIO AND
        E.ND = D.NUMEROD AND
        D.NSS_JEFE = M.NSS))
    Se puede usar el CHECK en la creación de

    dominios.
                                           53
ASSERTION/CHECK
    Especifica cuando se viola una restricción

    general, lo que implica el aborto de una
    actualización.




                                                 54
TRIGGERS
    Son disparadores de acciones ante eventos.

    Esto posibilita no que se aborte una
    actualización, sino que se avise o que
    realice una acción determinada. Esto último
    relacionado al concepto de bases de datos
    activas.




                                                  55
TRIGGER: Ejemplo
    R1: CREATE TRIGGER SALTOTAL1

    AFTER INSERT ON EMPLEADO
    FOR EACH ROW
    WHEN (NEW.ND IS NOT NULL)
          UPDATE DEPARTAMENTO
          SET SAL_TOTAL = SAL_TOTAL +
                        NEW.SALARIO
          WHERE ND = NEW.ND;

                                        56
TRIGGER: Sintaxis
    <disparador>::= CREATE TRIGGER <nombre de disparador>

                     (AFTER| BEFORE) <eventos de disparador> ON
                                         <nombre tabla>
                      [FOR EACH ROW]
                      [WHEN <condicion>]
                      <acciones del disparador>
    <eventos del disparador> ::= <evento del disparador> {OR <evento

    del disparador>
    <evento del disparador> ::= INSERT|DELETE|UPDATE [OF

    <nombre de columna> {, <nombre de columna>}]
    <acciones del disparador> ::= <bloque PL/SQL>





                                                                   57

Contenu connexe

Tendances

Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sqlSuarezJhon
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Sergio Sanchez
 
Microsoft sql server
Microsoft sql serverMicrosoft sql server
Microsoft sql serverDeisyVilchez
 
Lenguaje de consulta de datos
Lenguaje de consulta de datosLenguaje de consulta de datos
Lenguaje de consulta de datosFrancis Xavier
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dmlGerardo
 
Lenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlLenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlCristian Garzon
 
Instrucciones Transact S Q L
Instrucciones Transact  S Q LInstrucciones Transact  S Q L
Instrucciones Transact S Q LOlaya Molina
 
Sentencias dml y ddl
Sentencias dml y ddlSentencias dml y ddl
Sentencias dml y ddlkleberyauti
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosvargasaldanajohanna
 
SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...
SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...
SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...Anastacio Salazar
 
Comandos dll en sql server
Comandos dll en sql serverComandos dll en sql server
Comandos dll en sql serverVicente Alberca
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizBolivar Castillo
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosjosecuartas
 
LENGUAJE DE CONSULTA ESTRUCTURADO
LENGUAJE DE CONSULTA ESTRUCTURADOLENGUAJE DE CONSULTA ESTRUCTURADO
LENGUAJE DE CONSULTA ESTRUCTURADOMinerva136
 

Tendances (20)

Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
 
Microsoft sql server
Microsoft sql serverMicrosoft sql server
Microsoft sql server
 
Abd3 sql
Abd3 sqlAbd3 sql
Abd3 sql
 
Lenguaje de consulta de datos
Lenguaje de consulta de datosLenguaje de consulta de datos
Lenguaje de consulta de datos
 
1. introduccion a transact-sql
1.  introduccion a transact-sql1.  introduccion a transact-sql
1. introduccion a transact-sql
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
 
Lenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlLenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sql
 
Instrucciones Transact S Q L
Instrucciones Transact  S Q LInstrucciones Transact  S Q L
Instrucciones Transact S Q L
 
Sentencias dml y ddl
Sentencias dml y ddlSentencias dml y ddl
Sentencias dml y ddl
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datos
 
SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...
SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...
SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...
 
Introduccion al sql query
Introduccion al sql queryIntroduccion al sql query
Introduccion al sql query
 
Comandos dll en sql server
Comandos dll en sql serverComandos dll en sql server
Comandos dll en sql server
 
02 sql reference
02   sql reference02   sql reference
02 sql reference
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
 
Bdii 09 ddl_new
Bdii 09 ddl_newBdii 09 ddl_new
Bdii 09 ddl_new
 
Ejemplo ddl dml
Ejemplo ddl dmlEjemplo ddl dml
Ejemplo ddl dml
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datos
 
LENGUAJE DE CONSULTA ESTRUCTURADO
LENGUAJE DE CONSULTA ESTRUCTURADOLENGUAJE DE CONSULTA ESTRUCTURADO
LENGUAJE DE CONSULTA ESTRUCTURADO
 

En vedette

Elementos de la base de datos
Elementos de la base de datosElementos de la base de datos
Elementos de la base de datosManuel Hernandez
 
Expo Brigadas Psicológicas
Expo Brigadas PsicológicasExpo Brigadas Psicológicas
Expo Brigadas Psicológicasjanetross
 
Marketing on-line ICADE 2
Marketing on-line ICADE 2Marketing on-line ICADE 2
Marketing on-line ICADE 2Bequest, I+D
 
Vosotros correis y nosotros vivimos - SAS
Vosotros correis y nosotros vivimos - SASVosotros correis y nosotros vivimos - SAS
Vosotros correis y nosotros vivimos - SASAfanic
 
La falta de competitividad del Sector Forestal en Galicia
La falta de competitividad del Sector Forestal en GaliciaLa falta de competitividad del Sector Forestal en Galicia
La falta de competitividad del Sector Forestal en GaliciaMonte Industria
 
Marketing on-line Icade
Marketing on-line IcadeMarketing on-line Icade
Marketing on-line IcadeBequest, I+D
 
Lecturas Recomendadas Por El Departamento De Fsica Y Qumica Del Ies Rosario A...
Lecturas Recomendadas Por El Departamento De Fsica Y Qumica Del Ies Rosario A...Lecturas Recomendadas Por El Departamento De Fsica Y Qumica Del Ies Rosario A...
Lecturas Recomendadas Por El Departamento De Fsica Y Qumica Del Ies Rosario A...pochito
 
Hijos Dela 5ta Niños de la calle (Chavez)
Hijos Dela 5ta Niños de la calle (Chavez)Hijos Dela 5ta Niños de la calle (Chavez)
Hijos Dela 5ta Niños de la calle (Chavez)gigipretty76
 
Pensamiento complejo
Pensamiento complejoPensamiento complejo
Pensamiento complejoveritava
 
Oscar Cagigas: Bolsalia 2014
Oscar Cagigas: Bolsalia 2014Oscar Cagigas: Bolsalia 2014
Oscar Cagigas: Bolsalia 2014Rankia
 
Negociación, mediacion y conciliacion
Negociación, mediacion y conciliacionNegociación, mediacion y conciliacion
Negociación, mediacion y conciliacionMario6carbajal
 
Ome 2009 T2 O Multiplica.V2
Ome 2009 T2 O Multiplica.V2Ome 2009 T2 O Multiplica.V2
Ome 2009 T2 O Multiplica.V2David Boronat
 
Proyección Bilbao: 12 de febrero
Proyección Bilbao: 12 de febreroProyección Bilbao: 12 de febrero
Proyección Bilbao: 12 de febreroRankia
 
Jose manuel glosario
Jose manuel glosarioJose manuel glosario
Jose manuel glosariodelgadoj93
 

En vedette (20)

Manual sql server parte 1
Manual sql server parte 1Manual sql server parte 1
Manual sql server parte 1
 
Elementos de la base de datos
Elementos de la base de datosElementos de la base de datos
Elementos de la base de datos
 
Expo Brigadas Psicológicas
Expo Brigadas PsicológicasExpo Brigadas Psicológicas
Expo Brigadas Psicológicas
 
Marketing on-line ICADE 2
Marketing on-line ICADE 2Marketing on-line ICADE 2
Marketing on-line ICADE 2
 
Vosotros correis y nosotros vivimos - SAS
Vosotros correis y nosotros vivimos - SASVosotros correis y nosotros vivimos - SAS
Vosotros correis y nosotros vivimos - SAS
 
Filosofiaoriental
FilosofiaorientalFilosofiaoriental
Filosofiaoriental
 
La falta de competitividad del Sector Forestal en Galicia
La falta de competitividad del Sector Forestal en GaliciaLa falta de competitividad del Sector Forestal en Galicia
La falta de competitividad del Sector Forestal en Galicia
 
Aguss ]
Aguss ]Aguss ]
Aguss ]
 
Marketing on-line Icade
Marketing on-line IcadeMarketing on-line Icade
Marketing on-line Icade
 
Lecturas Recomendadas Por El Departamento De Fsica Y Qumica Del Ies Rosario A...
Lecturas Recomendadas Por El Departamento De Fsica Y Qumica Del Ies Rosario A...Lecturas Recomendadas Por El Departamento De Fsica Y Qumica Del Ies Rosario A...
Lecturas Recomendadas Por El Departamento De Fsica Y Qumica Del Ies Rosario A...
 
Labellezaazul
LabellezaazulLabellezaazul
Labellezaazul
 
Hijos Dela 5ta Niños de la calle (Chavez)
Hijos Dela 5ta Niños de la calle (Chavez)Hijos Dela 5ta Niños de la calle (Chavez)
Hijos Dela 5ta Niños de la calle (Chavez)
 
Infodemo
InfodemoInfodemo
Infodemo
 
Pensamiento complejo
Pensamiento complejoPensamiento complejo
Pensamiento complejo
 
Oscar Cagigas: Bolsalia 2014
Oscar Cagigas: Bolsalia 2014Oscar Cagigas: Bolsalia 2014
Oscar Cagigas: Bolsalia 2014
 
Negociación, mediacion y conciliacion
Negociación, mediacion y conciliacionNegociación, mediacion y conciliacion
Negociación, mediacion y conciliacion
 
Ome 2009 T2 O Multiplica.V2
Ome 2009 T2 O Multiplica.V2Ome 2009 T2 O Multiplica.V2
Ome 2009 T2 O Multiplica.V2
 
tarea1
tarea1tarea1
tarea1
 
Proyección Bilbao: 12 de febrero
Proyección Bilbao: 12 de febreroProyección Bilbao: 12 de febrero
Proyección Bilbao: 12 de febrero
 
Jose manuel glosario
Jose manuel glosarioJose manuel glosario
Jose manuel glosario
 

Similaire à 05 Sql Profundizacion

Similaire à 05 Sql Profundizacion (20)

4. sql (autoguardado)
4. sql (autoguardado)4. sql (autoguardado)
4. sql (autoguardado)
 
Expo
ExpoExpo
Expo
 
Manejo De Sentencias De Definicion
Manejo De Sentencias De DefinicionManejo De Sentencias De Definicion
Manejo De Sentencias De Definicion
 
Sentencias Sql
Sentencias SqlSentencias Sql
Sentencias Sql
 
Sql básico - compendio
Sql básico  - compendioSql básico  - compendio
Sql básico - compendio
 
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
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
SENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVER
 
Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
 
Bases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datosBases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datos
 
Trabajo grupal - Base de Datos
Trabajo grupal - Base de DatosTrabajo grupal - Base de Datos
Trabajo grupal - Base de Datos
 
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
 
Lenguaje sql
Lenguaje sqlLenguaje sql
Lenguaje sql
 
Presentación1
Presentación1Presentación1
Presentación1
 
SQL
SQLSQL
SQL
 
Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datos
 
Sql ddl
Sql ddlSql ddl
Sql ddl
 
Sql basico parte_i_
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_
 
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
(2)_sesión_2_construir_base_datos_FINAL(mixta)_v1.2023-1.pdf
 

Plus de Kudos S.A.S

AWS - Ingrese a la era de las bases de datos personalizadas: Encuentre la bas...
AWS - Ingrese a la era de las bases de datos personalizadas: Encuentre la bas...AWS - Ingrese a la era de las bases de datos personalizadas: Encuentre la bas...
AWS - Ingrese a la era de las bases de datos personalizadas: Encuentre la bas...Kudos S.A.S
 
Miradas al exterior.
Miradas al exterior. Miradas al exterior.
Miradas al exterior. Kudos S.A.S
 
Bringing GEOSS services into Practice for Beginners: GeoNode Tutorial
Bringing GEOSS services into Practice for Beginners: GeoNode TutorialBringing GEOSS services into Practice for Beginners: GeoNode Tutorial
Bringing GEOSS services into Practice for Beginners: GeoNode TutorialKudos S.A.S
 
Uso de Tecnologías Geoespaciales y Big Data para mejorar los procesos de actu...
Uso de Tecnologías Geoespaciales y Big Data para mejorar los procesos de actu...Uso de Tecnologías Geoespaciales y Big Data para mejorar los procesos de actu...
Uso de Tecnologías Geoespaciales y Big Data para mejorar los procesos de actu...Kudos S.A.S
 
Using python to analyze spatial data
Using python to analyze spatial dataUsing python to analyze spatial data
Using python to analyze spatial dataKudos S.A.S
 
Proyecto Mapa Nacional de Amenaza Relativa por Movimientos en Masa
Proyecto Mapa Nacional de Amenaza Relativa por Movimientos en MasaProyecto Mapa Nacional de Amenaza Relativa por Movimientos en Masa
Proyecto Mapa Nacional de Amenaza Relativa por Movimientos en MasaKudos S.A.S
 
Presentación software libre v2
Presentación software libre v2Presentación software libre v2
Presentación software libre v2Kudos S.A.S
 
A Web Application Designed to Publish Information of Surface Manifestations o...
A Web Application Designed to Publish Information of Surface Manifestations o...A Web Application Designed to Publish Information of Surface Manifestations o...
A Web Application Designed to Publish Information of Surface Manifestations o...Kudos S.A.S
 
Portafolio Empresarial Egresados Universidad Nacional de Colombia 2013
Portafolio Empresarial Egresados Universidad Nacional de Colombia 2013Portafolio Empresarial Egresados Universidad Nacional de Colombia 2013
Portafolio Empresarial Egresados Universidad Nacional de Colombia 2013Kudos S.A.S
 
Conferencias ACIS: Análisis y visualización de información georreferenciada u...
Conferencias ACIS: Análisis y visualización de información georreferenciada u...Conferencias ACIS: Análisis y visualización de información georreferenciada u...
Conferencias ACIS: Análisis y visualización de información georreferenciada u...Kudos S.A.S
 
Implementación de Fábricas de Software en el Sector Público Colombiano
Implementación de Fábricas de Software en el Sector Público ColombianoImplementación de Fábricas de Software en el Sector Público Colombiano
Implementación de Fábricas de Software en el Sector Público ColombianoKudos S.A.S
 
Presentacion SNC : Sistema Nacional Catastral de Colombia
Presentacion SNC : Sistema Nacional Catastral de ColombiaPresentacion SNC : Sistema Nacional Catastral de Colombia
Presentacion SNC : Sistema Nacional Catastral de ColombiaKudos S.A.S
 
Analizando y visualizando información geoespacial utilizando cloud computing
Analizando y visualizando información geoespacial utilizando cloud computingAnalizando y visualizando información geoespacial utilizando cloud computing
Analizando y visualizando información geoespacial utilizando cloud computingKudos S.A.S
 
Manejo de información raster_en_post_gis-2.0-
Manejo de información raster_en_post_gis-2.0-Manejo de información raster_en_post_gis-2.0-
Manejo de información raster_en_post_gis-2.0-Kudos S.A.S
 
Crowd-sourcing free and open geographic data: information poverty solutions f...
Crowd-sourcing free and open geographic data: information poverty solutions f...Crowd-sourcing free and open geographic data: information poverty solutions f...
Crowd-sourcing free and open geographic data: information poverty solutions f...Kudos S.A.S
 
Software libre y Sistemas de Información Geográfica
Software libre y Sistemas de Información GeográficaSoftware libre y Sistemas de Información Geográfica
Software libre y Sistemas de Información GeográficaKudos S.A.S
 
Modelamiento en Web de Geoinformación de la Amazonía Colombiana con el uso de...
Modelamiento en Web de Geoinformación de la Amazonía Colombiana con el uso de...Modelamiento en Web de Geoinformación de la Amazonía Colombiana con el uso de...
Modelamiento en Web de Geoinformación de la Amazonía Colombiana con el uso de...Kudos S.A.S
 
Kudos Flashcamp Bogota 2009
Kudos Flashcamp Bogota 2009Kudos Flashcamp Bogota 2009
Kudos Flashcamp Bogota 2009Kudos S.A.S
 
Geo Marketing, ¿Herramienta o Gadget?:
Geo Marketing, ¿Herramienta o Gadget?: Geo Marketing, ¿Herramienta o Gadget?:
Geo Marketing, ¿Herramienta o Gadget?: Kudos S.A.S
 
Integración de Adobe Flex y Google Maps: Aplicaciones Geográficas Enriquecida...
Integración de Adobe Flex y Google Maps: Aplicaciones Geográficas Enriquecida...Integración de Adobe Flex y Google Maps: Aplicaciones Geográficas Enriquecida...
Integración de Adobe Flex y Google Maps: Aplicaciones Geográficas Enriquecida...Kudos S.A.S
 

Plus de Kudos S.A.S (20)

AWS - Ingrese a la era de las bases de datos personalizadas: Encuentre la bas...
AWS - Ingrese a la era de las bases de datos personalizadas: Encuentre la bas...AWS - Ingrese a la era de las bases de datos personalizadas: Encuentre la bas...
AWS - Ingrese a la era de las bases de datos personalizadas: Encuentre la bas...
 
Miradas al exterior.
Miradas al exterior. Miradas al exterior.
Miradas al exterior.
 
Bringing GEOSS services into Practice for Beginners: GeoNode Tutorial
Bringing GEOSS services into Practice for Beginners: GeoNode TutorialBringing GEOSS services into Practice for Beginners: GeoNode Tutorial
Bringing GEOSS services into Practice for Beginners: GeoNode Tutorial
 
Uso de Tecnologías Geoespaciales y Big Data para mejorar los procesos de actu...
Uso de Tecnologías Geoespaciales y Big Data para mejorar los procesos de actu...Uso de Tecnologías Geoespaciales y Big Data para mejorar los procesos de actu...
Uso de Tecnologías Geoespaciales y Big Data para mejorar los procesos de actu...
 
Using python to analyze spatial data
Using python to analyze spatial dataUsing python to analyze spatial data
Using python to analyze spatial data
 
Proyecto Mapa Nacional de Amenaza Relativa por Movimientos en Masa
Proyecto Mapa Nacional de Amenaza Relativa por Movimientos en MasaProyecto Mapa Nacional de Amenaza Relativa por Movimientos en Masa
Proyecto Mapa Nacional de Amenaza Relativa por Movimientos en Masa
 
Presentación software libre v2
Presentación software libre v2Presentación software libre v2
Presentación software libre v2
 
A Web Application Designed to Publish Information of Surface Manifestations o...
A Web Application Designed to Publish Information of Surface Manifestations o...A Web Application Designed to Publish Information of Surface Manifestations o...
A Web Application Designed to Publish Information of Surface Manifestations o...
 
Portafolio Empresarial Egresados Universidad Nacional de Colombia 2013
Portafolio Empresarial Egresados Universidad Nacional de Colombia 2013Portafolio Empresarial Egresados Universidad Nacional de Colombia 2013
Portafolio Empresarial Egresados Universidad Nacional de Colombia 2013
 
Conferencias ACIS: Análisis y visualización de información georreferenciada u...
Conferencias ACIS: Análisis y visualización de información georreferenciada u...Conferencias ACIS: Análisis y visualización de información georreferenciada u...
Conferencias ACIS: Análisis y visualización de información georreferenciada u...
 
Implementación de Fábricas de Software en el Sector Público Colombiano
Implementación de Fábricas de Software en el Sector Público ColombianoImplementación de Fábricas de Software en el Sector Público Colombiano
Implementación de Fábricas de Software en el Sector Público Colombiano
 
Presentacion SNC : Sistema Nacional Catastral de Colombia
Presentacion SNC : Sistema Nacional Catastral de ColombiaPresentacion SNC : Sistema Nacional Catastral de Colombia
Presentacion SNC : Sistema Nacional Catastral de Colombia
 
Analizando y visualizando información geoespacial utilizando cloud computing
Analizando y visualizando información geoespacial utilizando cloud computingAnalizando y visualizando información geoespacial utilizando cloud computing
Analizando y visualizando información geoespacial utilizando cloud computing
 
Manejo de información raster_en_post_gis-2.0-
Manejo de información raster_en_post_gis-2.0-Manejo de información raster_en_post_gis-2.0-
Manejo de información raster_en_post_gis-2.0-
 
Crowd-sourcing free and open geographic data: information poverty solutions f...
Crowd-sourcing free and open geographic data: information poverty solutions f...Crowd-sourcing free and open geographic data: information poverty solutions f...
Crowd-sourcing free and open geographic data: information poverty solutions f...
 
Software libre y Sistemas de Información Geográfica
Software libre y Sistemas de Información GeográficaSoftware libre y Sistemas de Información Geográfica
Software libre y Sistemas de Información Geográfica
 
Modelamiento en Web de Geoinformación de la Amazonía Colombiana con el uso de...
Modelamiento en Web de Geoinformación de la Amazonía Colombiana con el uso de...Modelamiento en Web de Geoinformación de la Amazonía Colombiana con el uso de...
Modelamiento en Web de Geoinformación de la Amazonía Colombiana con el uso de...
 
Kudos Flashcamp Bogota 2009
Kudos Flashcamp Bogota 2009Kudos Flashcamp Bogota 2009
Kudos Flashcamp Bogota 2009
 
Geo Marketing, ¿Herramienta o Gadget?:
Geo Marketing, ¿Herramienta o Gadget?: Geo Marketing, ¿Herramienta o Gadget?:
Geo Marketing, ¿Herramienta o Gadget?:
 
Integración de Adobe Flex y Google Maps: Aplicaciones Geográficas Enriquecida...
Integración de Adobe Flex y Google Maps: Aplicaciones Geográficas Enriquecida...Integración de Adobe Flex y Google Maps: Aplicaciones Geográficas Enriquecida...
Integración de Adobe Flex y Google Maps: Aplicaciones Geográficas Enriquecida...
 

Dernier

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 

Dernier (20)

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 

05 Sql Profundizacion

  • 1. Modelo Relacional (8): SQL II - Semestre 2006 Apuntes 2005, Fundamentos de Sistema de Bases de datos, Elmasri and Navathe 1
  • 2. Introducción SQL (Structured Query Language)  SQL emplea los términos tabla, fila y  columna en vez de relación, tupla y atributo, respectivamente. Las instrucciones SQL2 para definir datos  son CREATE, ALTER y DROP 2
  • 3. Concepto de Esquema y Catálogo Un esquema SQL se identifica con un  nombre de esquema y consta de un identificador de autorización, que indica el usuario o la cuenta propietaria del esquema, además de los descriptores de cada elemento del esquema. Los elementos del esquema comprenden  tablas, restricciones, vistas, dominios y otros. 3
  • 4. Concepto de Esquema y Catálogo Un esquema se crea mediante la sentencia CREATE SCHEMA,  por ejemplo: CREATE SCHEMA EMPRESA AUTHORIZATION JPEREZ;  Catálogo es un conjunto de esquemas, con un nombre. El  catálogo, siempre contiene un esquema especial, llamado INFORMATION_SCHEMA, que proporciona información sobre todos los esquemas del catálogo. La ventaja de los catálogos es que se pueden definir restricciones  de integridad, sobre relaciones que están en el mismo catálogo. Además los esquemas del mismo catálogo pueden compartir ciertos elementos, como definiciones de dominio. 4
  • 5. CREATE TABLE y Tipos de Datos La instrucción CREATE TABLE permite  crear relaciones, dándole un nombre y especificando atributos y restricciones. Los atributos se especifican con un nombre,  un tipo de datos (para especificar su dominio de valores) y cualquier restricción del mismo, por ejemplo: NOT NULL. Se especifican las restricciones de clave: de  integridad de la entidad y referencial 5
  • 6. CREATE TABLE y Tipos de Datos CREATE TABLE EMPLEADO (NOMBRE VARCHAR(15) NOT NULL, INIC CHAR, APELLIDO VARCHAR(15) NOT NULL, NUMERO CHAR(9) NOT NULL, FECHA_NAC DATE, DIRECCION VARCHAR(30), SEXO CHAR, SALARIO DECIMAL(10,2), NRO_SUP CHAR(9), NRO_DEPTO INT NOT NULL, PRIMARY KEY (NUMERO), FOREIGN KEY (NRO_SUP) REFERENCES EMPLEADO (NUMERO), FOREIGN KEY (NRO_DEPTO) REFERENCES DEPARTAMENTO (ND)); 6
  • 7. Tipos de Datos y dominios Tipos de Datos para atributos: numéricos, cadena  de caracteres, cadena de bits, fecha y hora. Numéricos (de distintos tamaños, enteros):  INTEGER o INT y SMALLINT y reales de diversas precisiones (FLOAT; REAL; DOUBLE PRECISION). Formatos DECIMAL(i,j) o DEC(i,j) o NUMERIC(i,j), donde i es la precisión (nro de digitos) y j la escala (numero de decimales) 7
  • 8. Tipos de Datos y dominios Cadena de caracteres, de longitud fija  (CHAR(n) o CHARACTER(n), donde n es el número de caracteres) o de longitud variable (VARCHAR(n) o CHARVARYING(n), donde es el número máximo de caracteres) Cadena de bits, pueden ser de longitud fija n  (BIT(n)) o longitud variable (BIT VARIYNG(n)), donde n es el número máximo de bits. 8
  • 9. Tipos de Datos y dominios Tipo de dato para fecha es DATE, tiene 10  posiciones y sus componentes son YEAR, MONTH y DAY, por lo regular de la forma YYYY-MM-DD. Tipo de dato para tiempo es TIME, tiene 8  posiciones, con los componentes HOUR, MINUTE y SECOND, por lo general de la forma HH:MM:SS 9
  • 10. Tipos de Datos y dominios Dominios: esto permite cambiar tipos de  datos de un dominio utilizado por un gran numero de atributos más fácilmente. Por ejemplo, dominio TIPO_NUMERO así: CREATE DOMAIN TIPO_NUMERO AS  CHAR(9), 10
  • 11. Especificación de restricciones Dado que SQL permite NULL como valor para un  atributo, se puede especificar la restricción NOT NULL, si es que no queremos nulos. Valor por omisión de un atributo, añadiendo la  cláusula DEFAULT <valor> a la definición de un atributo La cláusula PRIMARY KEY y FOREIGN KEY  permiten especificar las pk y fk. La cláusula UNIQUE especifica claves alternativas  11
  • 12. Especificación de restricciones El diseñador debe especificar las acciones que  deben realizarse cuando se transgrede una restricción, asociada a la inserción, modificación y eliminación de un valor de atributo de clave foránea y asociada al modificarse un valor de clave primaria referenciada, añadiendo una cláusula de acción de disparo referencial a una restricción de clave externa. Las opciones son: SET NULL, CASCADE y SET  DEFAULT, las opciones son ON DELETE o ON CASCADE. 12
  • 13. Especificación de restricciones CREATE TABLE EMPLEADO  (…, NRO_DEPTO INT NOT NULL DEFAULT 1, PRIMARY KEY (NUMERO), FOREIGN KEY (NRO_SUP) REFERENCES EMPLEADO (NUMERO) ON DELETE SET NULL ON UPDATE CASCADE, FOREIGN KEY (NRO_DEPTO) REFERENCES DEPARTAMENTO (ND) ON DELETE SET DEFAULT ON UPDATE CASCADE); Se tiene SET NULL ON DELETE y CASCADE ON UPDATE para la clave  externa NRO_SUP de EMPLEADO. Esto significa que si se elimina la tupla de empleado supervisor, el valor de NRO_SUP pasa automáticamente a NULL en todas las tuplas de EMPLEADO que hagan referencia a la tupla eliminada. 13
  • 14. Especificación de restricciones Si se actualiza el valor de NUMERO de un empleado  supervisor, el nuevo valor se propaga a NRO_SUP para todas las tuplas de empleado que hagan referencia a la tupla del empleado actualizada. En general, la acción emprendida por el SGBD cuando se  especifica SET NULL o SET DEFAULT es la misma para ON DELETE que para ON UPDATE: el valor de los atributos referenciados afectados se cambia a NULL en el caso de SET NULL y al valor por omisión especificado en el caso de SET DEFAULT. 14
  • 15. Especificación de restricciones La acción correspondiente a CASCADE ON  DELETE es eliminar todas las tuplas referenciadoras, mientras que la acción correspondiente a CASCADE ON UPDATE es cambiar el valor de la clave externa al nuevo valor actualizado de la clave primaria en todas las tuplas referenciadoras. Por lo general, la opción CASCADE es adecuada  para tablas del tipo TRABAJA_EN, para relaciones que representan atributos multivaluados como LOCALIZACION_DEPTO y para relaciones que representan tipos de entidad débiles como DEPENDIENTE. 15
  • 16. Especificación de restricciones Las relaciones declaradas con CREATE  TABLE se denominan tablas base. El SGBD las almacena como archivos. En SQL, los atributos de una relación de una  tabla base están ordenados en la secuencia en que se especifican en la sentencia CREATE TABLE. Las filas no están ordenadas. 16
  • 17. DROP SCHEMA y DROP TABLE Existen dos opciones para eliminar: CASCADE y  RESTRICT. Si se desea eliminar el esquema EMPRESA con  todas sus tablas, dominios, etc. Se utiliza CASCADE: DROP SCHEMA EMPRESA CASCADE;  Si se elige la opción RESTRICT, el esquema se  eliminará sólo si no tiene elementos; en caso contrario no se ejecutará la instrucción DROP 17
  • 18. DROP SCHEMA y DROP TABLE DROP TABLE DEPENDIENTE CASCADE;  Elimina la tabla DEPENDIENTE. Con la  opción CASCADE, todas las restricciones y vistas que hagan referencia a la tabla se eliminarán automáticamente del esquema, junto con la propia tabla. 18
  • 19. ALTER TABLE Las posibles acciones de alterar tablas incluyen  agregar atributos, eliminar atributos, la modificación de la definición de una columna y la agregación y eliminación de restricciones de tabla. ALTER TABLE EMPRESA.EMPLEADO ADD  PUESTO VARCHAR(12); Agrega un atributo. Para darle valores a este nuevo atributo se puede utilizar UPDATE o bien darle un valor por defecto. Si no se hace esto último, el nuevo atributo tendrá valor NULL ALTER TABLE EMPRESA.EMPLEADO DROP  DIRECCION CASCADE; Elimina atributo DIRECCION de la tabla EMPLEADO 19
  • 20. CONSULTAS BASICAS La sentencia SELECT permite recuperar  información de la BD. No tiene nada que ver con la operación de selección del álgebra relacional. SQL y el Modelo relacional tienen diferencias: SQL  permite filas duplicadas, es decir, una tabla SQL no es un conjunto de tuplas, porque los conjuntos no permiten elementos repetidos. A veces a las tablas SQL se les llama bolsa, bag o multiconjunto. La cláusula DISTINCT elimina las filas repetidas.  20
  • 21. SELECT-FROM-WHERE SELECT <lista de atributos>  FROM <lista de tablas> WHERE <condición> Considere como caso la BDR de empleados,  proyectos y dependientes dada como ejercicio2 del capítulo3. C1: Recupere la fecha de nacimiento y dirección  del empleado cuyo nombre es Juan Pérez. SELECT FECHA_NAC, DIRECCION  FROM EMPLEADO WHERE Nombre=‘Juan’ AND APELLIDO = ‘Pérez’; 21
  • 22. Ejercicio2 Dada la siguiente BDR:  EMPLEADO(Nombre, Apellido, NroEmpleado, FechaNacimiento,  Dirección, Sexo, Salario, NroSuperior, NroDepto) DEPARTAMENTO(NombreDepto, NroDepto,NroGerente,  FechaInicioGerente) LUGARESDEPTO(NroDepto, LugarDepto)  PROYECTO(Nombreproyecto, NroProyecto, LugarProyecto, NroDepto)  TRABAJAEN(NroEmpleado, NroProyecto, Horas)  DEPENDIENTE(NroEmpleado, NombreDependiente, Sexo,  FechaNacimiento, Parentesco) 22
  • 23. SELECT-FROM-WHERE C2 Recupere el nombre, apellido y dirección  de todos los empleados que trabajan en el departamento de Investigación. SELECT NOMBRE, APELLIDO, DIRECCION  FROM EMPLEADO, DEPARTAMENTO WHERE NOMBREDEPTO = ‘Investigación’ AND DEPARTAMENTO.NRODEPTO = EMPLEADO.NRODEPTO; 23
  • 24. SELECT-FROM-WHERE C3 De cada proyecto ubicado en Concepción, haga una  lista con el número de proyecto, el numero de departamento controlador y el apellido, dirección y fecha de nacimiento del jefe de departamento. SELECT NROPROYECTO, NRODEPTO, APELLIDO,  DIRECCION, FECHANACIMIENTO FROM EMPLEADO, DEPARTAMENTO, PROYECTO WHERE PROYECTO.NRODEPTO = DEPARTAMENTO.NRODEPTO AND DEPARTAMENTO.NROGERENTE = EMPLEADO.NROEMPLEADO AND LUGARPROYECTO = ‘Concepción’; 24
  • 25. CONSULTAS BASICAS Cláusulas Where no especificadas (todas las tuplas son  consideradas) C4 Seleccione todos los números de empleado de EMPLEADO  SELECT NROEMPLEADO  FROM EMPLEADO; C5 Seleccione todas las combinaciones posibles de números de  empleado y números de departamento SELECT NROEMPLEADO, NRODEPARTAMENTO  FROM EMPLEADO, DEPARTAMENTO; Esta consulta realiza el producto cartesiano.  25
  • 26. CONSULTAS BASICAS Uso del *: Recupera los valores de todos  los atributos. SELECT *  FROM EMPLEADO WHERE NroDepto = 5; 26
  • 27. CONSULTAS BASICAS Tablas como conjuntos en SQL:  SQL no elimina las filas repetidas en los resultados  de las consultas, por las siguientes razones: La eliminación de duplicados es una operación  costosa. Una forma de implementarla es ordenar las tuplas primero y luego eliminar los duplicados. Es posible que el usuario requiera ver las tuplas  repetidas en el resultado de la consulta Cuando se aplica una función agregada, en la  mayoría de los casos no se quiere eliminar los duplicados. 27
  • 28. CONSULTAS BASICAS Si queremos eliminar tuplas repetidas en el  resultado de una consulta, se usa la palabra clave DISTINCT en la cláusula SELECT. Recupere el salario de todos los empleados  y los valores de todos los salarios distintos SELECT ALL SALARIO (o SELECT simple)  FROM EMPLEADO; (incluye repetidos) SELECT DISTINCT SALARIO  FROM EMPLEADO; (no incluye repetidos) 28
  • 29. CONSULTAS BASICAS Operaciones de Conjunto: UNION, EXCEPT e  INTERSECT, equivalentes a la unión, diferencia e intersección de conjuntos. Las tuplas repetidas se eliminan del resultado y se debe asegurar que las relaciones sean compatibles en su esquema (mismos atributos y el orden). Lista con todos los números de proyecto en los que  participa un empleado de apellido Pérez, sea como trabajador o como jefe del departamento que controla el proyecto. 29
  • 30. CONSULTAS BASICAS (SELECT DISTINCT NROPROYECTO  FROM PROYECTO, DEPARTAMENTO, EMPLEADO WHERE PROYECTO.NRODEPTO = DEPARTAMENTO.NRODEPTO AND DEPARTAMENTO.NROGERENTE = EMPLEADO.NROEMPLEADO AND APELLIDO = ‘Pérez’) UNION (SELECT DISTINCT NROPROYECTO FROM TRABAJA_EN, EMPLEADO WHERE TRABAJA_EN. NROEMPLEADO = EMPLEADO.NROEMPLEADO AND APELLIDO = ‘Pérez’); 30
  • 31. Comparaciones, ordenación Comparación cadena de caracteres: operador  LIKE, cadenas parciales %: sustituye un número arbitrareo de caracteres y _ sustituye a un solo caracter. Recupere todos los empleados cuya dirección sea  Talcahuano. SELECT NOMBRE, APELLIDO FROM EMPLEADO WHERE DIRECCION LIKE ‘%Talcahuano’; 31
  • 32. Comparaciones, ordenación Aritmética en Consultas: Los operadores suma(+), resta(-),  multiplicación (*) y división (/) se pueden aplicar a valores numéricos o atributos con dominios númericos. Muestre los salarios resultantes si cada empleado que trabaja en el  proyecto ‘Producto X’ recibe un aumento del 10%. SELECT NOMBRE, APELLIDO, 1.1*SALARIO FROM EMPLEADO, TRABAJA_EN, PROYECTO WHERE TRABAJA_EN. NROEMPLEADO = EMPLEADO.NROEMPLEADO AND TRABAJA_EN.NROPROYECTO = PROYECTO.NROPROYECTO AND NOMBREPROYECTO = ‘Producto X’; 32
  • 33. Comparaciones, ordenación En el caso de tipos de datos de cadena, se  puede usar el operador concatenación(//) en una consulta para anexar un valor de cadena a otro. En el caso de tipos de datos fecha, tiempo,  los operadores incluyen el incremento (+) o disminución (-), en un intervalo compatible con el tipo de una fecha, o tiempo. 33
  • 34. Comparaciones, ordenación Operador BETWEEN  Recupere todos los empleados del  departamento 5 cuyo salario esté entre 30000 y 40000 dólares SELECT * FROM EMPLEADO WHERE (SALARIO BETWEEN 30000 AND 40000) AND NRODEPTO= 5; 34
  • 35. Comparaciones, ordenación Cláusula ORDER BY  Obtenga una lista de los empleados y de los proyectos en los que  trabajan, ordenados por departamento, y dentro de cada departamento, alfabéticamente por apellido y nombre SELECT NOMBREDEPTO, APELLIDO, NOMBRE, NOMBREPROYECTO FROM DEPARTAMENTO, EMPLEADO, TRABAJA_EN, PROYECTO WHERE DEPARTAMENTO.NRODEPTO = EMPLEADO.NRODEPTO AND EMPLEADO.NROEMPLEADO = TRABAJA_EN.NROEMPLEADO AND TRABAJA_EN.NRO.PROY = PROYECTO.NROPROY ORDER BY NOMBREDEPTO, APELLIDO, NOMBRE; 35
  • 36. Comparaciones, ordenación El orden por omisión es ascendente. Se usa  la palabra DESC para ordenar en forma descendente. ORDER BY NOMBREDEPTO DESC, APELLIDO ASC, NOMBRE ASC 36
  • 37. CONSULTAS COMPLEJAS Estas consultas requieren valores de la BD  para usarlos después en una condición de comparación. Consultas anidadas: bloques select-from-  where dentro de la cláusula where de otra consulta. A esta última consulta se le llama consulta externa 37
  • 38. Consultas Complejas SELECT DISTINCT NROPROY  FROM PROYECTO  WHERE NROPROY IN ( SELECT NROPROY  FROM PROYECTO, EMPLEADO WHERE PROYECTO.NRODEPTO=DEPTO. NRODEPTO AND NRO NROGERENTE = NROSUPERIOR AND APELLIDO =‘Pérez’) OR NROPROY IN (SELECT NROPROY FROM TRABAJA_EN, EMPLEADO WHERE EMPLEADO.NROEMP = TRABAJA_EN.NROEMP AND APELLIDO = ‘Pérez’); 38
  • 39. Consultas Complejas La primera consulta anidada selecciona los números de  proyectos en que un Pérez participa como jefe. La segunda consulta anidada selecciona los números de  proyectos en que un Pérez participa como trabajador. La consulta externa selecciona una tupla PROYECTO si el  valor de NROPROY de esa tupla está en el resultado de cualquiera de las dos consultas anidadas. El operador de comparación IN compara el valor v con un  conjunto (o multiconjunto) de valores V y evalúa a TRUE para comprobar si v es uno de los elementos de V 39
  • 40. Consultas anidadas correlacionadas Siempre que una condición en la cláusula  WHERE de una consulta anidada hace referencia a un atributo de una relación declarada en la consulta externa, se dice que las dos consultas están correlacionadas. La consulta anidada se evalúa una sola vez  para cada tupla (o combinación de tuplas) en la consulta externa 40
  • 41. Consultas anidadas correlacionadas Recupere el nombre de cada empleado que tenga  un familiar dependiente con el mismo nombre de pila y sexo que el empleado. SELECT E.NOMBRE, E.APELLIDO FROM EMPLEADO AS E, DEPENDIENTE AS D WHERE E.NROEMPLEADO =D.NROEMPLEADO AND E.SEXO =D.SEXO AND E.NOMBRE =D.NOMBREDEP; 41
  • 42. Función EXISTS EXISTS sirve para comprobar si el resultado de  una consulta anidada correlacionada es o no vacío. SELECT E.NOMBRE, E.APELLIDO FROM EMPLEADO AS E WHERE EXISTS (SELECT * FROM DEPENDIENTE WHERE E.NROEMP = DEPENDIENTE.NROEMP AND SEXO = E.SEXO AND E.NOMBRE =NOMBREDEPENDIENTE); 42
  • 43. Función EXISTS Recupere los nombres de empleados que  no tienen familiares dependientes SELECT NOMBRE, APELLIDO FROM EMPLEADO WHERE NOT EXISTS (SELECT * FROM DEPENDIENTE WHERE EMPLEADO.NROEMPLEADO = DEPENDIENTE.NROEMPLEADO); 43
  • 44. Conjuntos explícitos y NULL Recupere el número de empleado de todos los que trabajan  en los proyectos 1, 2 o 3. SELECT DISTINCT NROEMPLEADO FROM EMPLEADO WHERE NROPROY IN (1,2,3);  Recupere los nombres de todos los empleados que no tienen supervisores SELECT NOMBRE, APELLIDO FROM EMPLEADO WHERE NROSUPERVISOR IS NULL; 44
  • 45. Funciones agregadas y agrupación Funciones COUNT (cuenta numero de  tuplas), SUM, MAX, MIN, AVG Halle la suma de los salarios de todos los  empleados, el salario máximo, el mínimo y el salario medio. SELECT SUM(SALARIO), MAX(SALARIO), MIN(SALARIO), AVG(SALARIO) FROM EMPLEADO; 45
  • 46. Funciones agregadas y agrupación Recupere el total de empleados de la empresa  SELECT COUNT(*) FROM EMPLEADO;  Recupere el número de empleados del departamento de Investigación. SELECT COUNT(*) FROM EMPLEADO, DEPARTAMENTO WHERE DEPTO.NRODEPTO = EMPLEADO.NRODEPTO AND NOMBREDEPTO =‘Investigación’; 46
  • 47. Funciones agregadas y agrupación Contar valores de atributos en vez de tuplas.  SELECT COUNT(DISTINCT SALARO) FROM EMPLEADO; 47
  • 48. Agrupación A veces es necesario aplicar funciones agregadas  a subgrupos de tuplas de una relación, por ejemplo conocer el salario medio de los empleados de cada departamento, o el número de empleados que trabajan en que cada proyecto. En estos casos se necesita agrupar las tuplas que  tienen el mismo valor para ciertos atributos, que se llaman atributos de agrupación y aplicar la función de manera independiente a cada uno de esos grupos. SQL tiene la cláusula GROUP BY  48
  • 49. Agrupación Recupere el número de depto y el número  de empleados de cada departamento y su salario medio. SELECT NRODEPTO, COUNT(*), AVG (SALARIO) FROM EMPLEADO GROUP BY NRODEPTO; 49
  • 50. Agrupación De cada proyecto, recupere su número, nombre y  el número de empleados que trabajan en él SELECT NROPROY, NOMBREPROY, COUNT(*) FROM PROYECTO, TRABAJA_EN WHERE PROYECTO.NROPROY = TRABAJA_EN.NROPROY GROUP BY NROPROY, NOMBREPROY; 50
  • 51. Agrupación A veces se requiere recuperar valores agrupados  cuando se cumplan ciertas condiciones. Por ejemplo, la consulta anterior, pero para aquellos proyectos que tengan más de dos empleados. Se ocupa la cláusula HAVING, que puede aparecer  con la cláusula GROUP BY. HAVING especifica una condición en términos del  grupo de tuplas asociado a cada valor de los atributos de agrupación. Sólo lo grupos que satisfagan la condición entrarán en el resultado de la consulta. 51
  • 52. Agrupación SELECT NROPROY, NOMBREPROY, COUNT(*) FROM PROYECTO, TRABAJA_EN WHERE PROYECTO.NROPROY = TRABAJA_EN.NROPROY GROUP BY NROPROY, NOMBREPROY HAVING COUNT(*) >2; 52
  • 53. Especificación de Restricciones Generales CREATE ASSERTION RESTRIC_SALARIO  CHECK (NOT EXISTS (SELECT * FROM EMPLEADO E, EMPLEADO M, DEPARTAMENTO D WHERE E. SALARI > M. SALARIO AND E.ND = D.NUMEROD AND D.NSS_JEFE = M.NSS)) Se puede usar el CHECK en la creación de  dominios. 53
  • 54. ASSERTION/CHECK Especifica cuando se viola una restricción  general, lo que implica el aborto de una actualización. 54
  • 55. TRIGGERS Son disparadores de acciones ante eventos.  Esto posibilita no que se aborte una actualización, sino que se avise o que realice una acción determinada. Esto último relacionado al concepto de bases de datos activas. 55
  • 56. TRIGGER: Ejemplo R1: CREATE TRIGGER SALTOTAL1  AFTER INSERT ON EMPLEADO FOR EACH ROW WHEN (NEW.ND IS NOT NULL) UPDATE DEPARTAMENTO SET SAL_TOTAL = SAL_TOTAL + NEW.SALARIO WHERE ND = NEW.ND; 56
  • 57. TRIGGER: Sintaxis <disparador>::= CREATE TRIGGER <nombre de disparador>  (AFTER| BEFORE) <eventos de disparador> ON <nombre tabla> [FOR EACH ROW] [WHEN <condicion>] <acciones del disparador> <eventos del disparador> ::= <evento del disparador> {OR <evento  del disparador> <evento del disparador> ::= INSERT|DELETE|UPDATE [OF  <nombre de columna> {, <nombre de columna>}] <acciones del disparador> ::= <bloque PL/SQL>  57