ALIPSO.COM - Trabajos prácticos, monografías, apuntes, tesis, manuales, material educativo y mucho más.
 

Página de inicio | Agregar a Favoritos | Contactate con nosotros | Publicidad

Alipso.com
 

Monografías

Examenes

Enlaces

Publicar material o sitio

Foros

ABC del estudio

Diversión

  Buscar material sobre...
Todas las palabras Cualquier palabra Frase Exacta
El sitio en el que encontrás
todo el material que buscás.

   

Enlaces recomendados
   

Material relacionado
 

Material educativo de Alipso relacionado con LMD (Lenguaje Manipulacion Datos)

  • Fecundacion medica asistida.: Diagnostico preimplantatorio, Manipulacion de embriones, fertilización in Vitro, la FIV, · Inseminación Artificial, GIFT (Transferencia intratubaria de gametas), · ICSI, inyección intracitoplasmática de un espermatozoide. (Gracias GURU!!)
  • LMD (Lenguaje de Manipulación de Datos): Programación. Claúsula IN. Claúsula BETWEEN. Claúsula LIKE. Expresiones aritméticas. Funciones de columna.
  • Mejoras en el sistema de television.: Descripcion de las mejoras implementadas en el sistema de television clásico, desde sus comienzos, hasta el dia de hoy, nuevos servicios, servicio de television codificada, television estereofonica, television estereoscopica, MMDS, LMDS, teletexto.


  • Enlaces externos relacionados con LMD (Lenguaje Manipulacion Datos)
  • Comportamiento del Punto Vaso Gobernador 26 sobre el Sistema Nervioso Autonomo
  • Protejamonos contra los virus informaticos
  • Trabajo Practico de Genetica
  •  

    Publicidad
       

    Monografías
      LMD (Lenguaje de Manipulación de Datos)
    Programación. Claúsula IN. Claúsula BETWEEN. Claúsula LIKE. Expresiones aritméticas. Funciones de columna.

    Agregado: 31 de AGOSTO de 2003 (Por Michel Mosse) | Palabras: 8969 | Votar! | Sin Votos | Sin comentarios | Agregar Comentario
    Categoría: Apuntes y Monografías > Computación > Varios >

      Imprimir Recomendar a un amigo Recordarme el recurso Descargar como pdf

    BASES DE DATOS

    2º Cuatrimestre

                                                                                                   

    LMD (Lenguaje de Manipulación de Datos)

     

    SELECT

     

    SELECT [DISTINCT] <lista_columnas> | *

    FROM <lista_tablas>

    [WHERE <predicado>]

     

    EJ: Visualizar todos los vuelos que tengan como origen o destino Cáceres.

     

    SELECT *

    FROM VUELOS

    WHERE ORIGEN='CACERES'

    OR DESTINO='CACERES'

     

    EJ: Visualizar todos los vuelos que tengan como origen Madrid o Londres y como destino Londres o Madrid.

     

    SELECT *

    FROM VUELOS

    WHERE (ORIGEN='MADRID'

    AND DESTINO='LONDRES')

    OR (ORIGEN='LONDRES'

    AND DESTINO='MADRID')

     

    Claúsula IN

     

    Expresa la pertenencia del valor de una columna a un determinado conjunto de valores.

     

    EJ: Seleccionar aquellos vuelos que tengan como origen Madrid, Barcelona o Sevilla.

     

    SELECT *

    FROM VUELOS

    WHERE ORIGEN IN ('MADRID','BARCELONA','SEVILLA')

     

    ó también

     

    SELECT *

    FROM VUELOS

    WHERE ORIGEN='MADRID' OR ORIGEN='BARCELONA' OR ORIGEN='SEVILLA'

     

    EJ: Visualizar todos los vuelos existentes excepto aquellos que llegan a Londres o a Copenhague.

     

    SELECT *

    FROM VUELOS

    WHERE DESTINO NOT IN ('LONDRES','COPENHAGUE')

     

    Claúsula BETWEEN

     

    Sirve para establecer o expresar un rango de valores. Obedece a la siguiente sintaxis:

     

    <nombre_columna> BETWEEN valor1 AND valor2

     

    El rango será [valor1, valor2], extremos incluidos.


    EJ: Recuperar todos los vuelos que salgan entre las 6 y las 12 de la mañana.

     

    SELECT *

    FROM VUELOS

    WHERE HORA_SALIDA BETWEEN '06.00.00'

    AND '12.00.00'

     

    ó también

     

    SELECT *

    FROM VUELOS

    WHERE HORA_SALIDA >= '06.00.00'           

    AND HORA_SALIDA <= '12.00.00'

     

    EJ: En la columna NUM_VUELO representaré los vuelos con 6 caracteres. Los dos primeros caracteres indicarán la compañía a la que pertenece cada vuelo (IB®Iberia, BA®British Airways), los cuatro caracteres siguientes corresponderán al número de vuelo. Bajo estas condiciones recupérense todos los vuelos que no pertenecen a IBERIA.

     

    SELECT *

    FROM VUELOS

    WHERE NUM_VUELO NOT BETWEEN 'IB0000'

    AND 'IB9999'

     

    Claúsula LIKE

     

    Sirve para especificar, con la ayuda de metasímbolos, cadenas de caracteres que comparten ciertos caracteres en común. Los metasímbolos que serán utilizados son:

     

    % Equivale a una cadena de caracteres de longitud comprendida entre 0 y n.

    'AB%' AB, ABCDE, AB 497

     

    _ Equivale a un único carácter

    'A_B' A B, A4B, AJB

     

    EJ: Recuperar todos los vuelos pertenecientes a la compañía IBERIA.

     

    SELECT *

    FROM VUELOS

    WHERE NUM_VUELOS LIKE 'IB%'

     

    ó también

     

    SELECT *

    FROM VUELOS

    WHERE NUM_VUELOS LIKE 'IB_ _ _ _'

     

    Expresiones aritméticas

    +, -, *, /

    Pueden ser utilizadas tanto después de SELECT como después de WHERE. En el primer caso trabajarían sobre columnas y en el segundo sobre filas.

     

     

     

     

     

     

     

     

     


    EJ: Visualizar la longitud y la envergadura de todos los aviones, expresando las magnitudes en pies (en la base de datos está almacenado en metros, para pasar 1 metro a pies se ha de multiplicar por 3.28), y la velocidad de crucero en mph(está en Km/h, habrá que dividir por 1.6).

     

    SELECT LONGITUD*3.28, ENVERGADURA*3.28, VELO_CRUC/1.6

    FROM AVIONES

     

    ┌──┐ ┌──┐ ┌──┐

    Etiquetas ®            └──┘ └──┘ └──┘

      --------       --------      -------

      --------      --------      -------

                             --------      -------       ------

     

    En DB/2 de IBM las etiquetas toman los nombres de las columnas (col1, col2, col3)

    En SQL-SERVER las etiquetas quedarían así (LONGITUD*3.28, ENVERGADURA*3.28, VELO_CRUC/1.6)

     

    EJ: Relación entre la longitud y la envergadura de todos los aviones.

     

    SELECT LONGITUD/ENVERGADURA

    FROM AVIONES

     

    EJ: Seleccionar aquellos aviones cuya longitud supere a su envergadura en más de un 10%.

     

    SELECT *

    FROM AVIONES

    WHERE LONGITUD > ENVERGADURA*1.10

     

    Funciones de columna

     

    Son funciones que operan con todas las filas que cumplen la condición expuesta en la claúsula WHERE. Su resultado es un único valor. Sintaxis:

     

    1º) <f_columna> ([DISTINCT] <nombre_columna>)

    2º) <f_columna> (<expresión>), donde <expresión> es una expresión aritmética en la cual debe participar, al menos, una columna.

    3º) COUNT(*)

     

    Funciones

     

    <f_columna>:

     

    MIN: Calcula el valor mínimo de una columna.

    MAX: Calcula el valor máximo de una columna.

    AVG: Calcula la media aritmética de una columna.

    SUM: Calcula la suma de todos los campos de una columna.

    COUNT: Cuenta el nº de filas de una columna.

     

     

    A

     

    B

     

    3

     

    5

     

    2

     

    8

     

    3

     

    7

     

    4

     

    3

     

    COUNT(A)=COUNT(B)

    COUNT(A)=4, COUNT(B)=4

    El COUNT de dos columnas de una misma tabla es igual. COUNT(*) sirve para obtener el nº de filas.


    EJ: Seleccionar los valores mínimo y máximo de la columna que almacena las velocidades de crucero.

     

    SELECT MIN(VELO_CRUC), MAX(VELO_CRUC)

    FROM AVIONES

     

    EJ: Averiguar a que hora parte el primer vuelo hacia Madrid.

     

    SELECT MIN (HORA_SALIDA)

    FROM VUELOS

    WHERE DESTINO='MADRID'

     

    Regla que cumplen las funciones de columna

     

    La función de columna sólo podrá especificarse detrás de la particula SELECT o en la claúsula HAVING, pero nunca dentro de la claúsula WHERE.

     

    EJ: Se desea saber cuál es el vuelo que tiene la mínima hora de salida.

     

    SELECT *

    FROM VUELOS

    WHERE HORA_SALIDA=(SELECT MIN(HORA_SALIDA)

    FROM VUELOS)

     

    Claúsula GROUP BY-HAVING

     

    Sirve para dividir una tabla en grupos de filas que comparten características comunes. La sintaxis es:

     

    SELECT <lista_columnas>, <funciones_de_columna>

    FROM <lista_tablas>

    [WHERE <predicado>]

    [GROUP BY <lista_columnas>]

    [HAVING <predicado>]

     

    EJ: Efectúese una SELECT que visualice el mínimo valor de hora de salida para cada uno de los diferentes destinos.

     

    SELECT DISTINCT DESTINO

    FROM VUELOS

     

    SELECT MIN(HORA_SALIDA)

    FROM VUELOS

    WHERE DESTINO LIKE '%'

     

    A continuación se muestra un ejemplo de lo que no se debe hacer:

     

    SELECT MIN(HORA_SALIDA)

    FROM VUELOS

    WHERE DESTINO IN (SELECT DISTINCT DESTINO

    FROM VUELOS)

     

    Sentencia GROUP BY:

     

    SELECT DESTINO, MIN(HORA_SALIDA)

    FROM VUELOS

    GROUP BY DESTINO

     

     

     

     

     


    Tabla VUELOS ® Tabla auxiliar ®                  Tabla x 'MADRID'

                   WHERE           GROUP BY DESTINO          Tabla y 'BARCELONA'

                                                                     Tabla z 'SEVILLA'

                                                        <f_columna>

     

    GROUP BY crea una serie de subtablas compuestas por filas con el mismo valor para la columna de agrupamiento (en este ejemplo la columna DESTINO). Se aplicarán a continuación funciones de columna sobre cada subtabla de forma independiente.

     

    MADRID, x

    BARCELONA, y

    SEVILLA, z

     

    No se puede poner en GROUP BY un campo que no se haya incluido en la sentencia SELECT.

     

    EJ: Obtener el origen del vuelo para cada uno de los vuelos que tienen la mínima hora de salida para cada uno de los destinos.

     

     

     

     

    EJ: Obtener el número de vuelos que existen para cada uno de los orígenes.

     

    SELECT ORIGEN, COUNT(*)

    FROM VUELOS

    GROUP BY ORIGEN

     

    Claúsula HAVING

     

    Permite elegir aquellos grupos que se quieren visualizar.

     

    EJ: Visualizar los grupos que tienen para cada uno de los orígenes la mínima hora de salida siendo anterior a las 12 horas.

     

    SELECT ORIGEN, MIN(HORA_SALIDA)

    FROM VUELOS

    GROUP BY ORIGEN

    HAVING MIN(HORA_SALIDA) < '12.00'

     

    HAVING no interferirá en la agrupación por filas de GROUP BY.

     

    EJ: Se desea seleccionar la hora de salida más temprana para cada origen y destino.

     

    SELECT ORIGEN, DESTINO, MIN(HORA_SALIDA)

    FROM VUELOS

    GROUP BY ORIGEN, DESTINO

     

    EJ: Visualizar los orígenes que tengan más de dos vuelos.

     

    SELECT ORIGEN

    FROM VUELOS

    GROUP BY ORIGEN

    HAVING COUNT(*) > 2

     

     

     

     

     

     


    EJ: Visualizar los vuelos de IBERIA que tengan más de 150 plazas libres.

     

    SELECT NUM_VUELO, SUM(PLAZAS_LIBRES)

    FROM RESERVAS

    GROUP BY NUM_VUELO

    HAVING NUM_VUELO LIKE 'IB%'

    AND SUM(PLAZAS_LIBRES)>150

     

    ó también

     

    SELECT NUM_VUELO, SUM(PLAZAS_LIBRES)

    FROM RESREVAS

    WHERE NUM_VUELO LIKE 'IB%'

    GROUP BY NUM_VUELO

    HAVING NUM_VUELO 'IB%'

    AND SUM(PLAZAS_LIBRES)>150

     

    TRATAMIENTO DE NULOS

     

    Operaciones aritméticas

     

    Cualquier operación aritmética sobre un campo nulo nos devolverá como resultado un valor nulo.

    Tomemos como ejemplo la siguiente tabla:

     

     

    NULOS

     

     

    COL_A

     

    COL_B

     

    15

     

    10

     

    35

     

    35

     

    140

     

    NULL