9. SQL.doc

Embed Size (px)

Citation preview

  • 8/18/2019 9. SQL.doc

    1/9

  • 8/18/2019 9. SQL.doc

    2/9

  • 8/18/2019 9. SQL.doc

    3/9

    en la consulta deben ser únicos. Por ejemplo, varios empleados listados en la

    tabla Empleados pueden tener el mismo apellido. Si dos registros contienen

    López en el campo Apellido, la siguiente instrucción SQL devuelve un único

    registro:

     SELECT DISTINCT Apellido FROM Empleados;

    Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos

    campos indicados en la cláusula SELECT posean un contenido diferente.

    DISTINCTROW

    Devuelve los registros diferentes de una tabla; a diferencia del predicado anterior

    que sólo se fijaba en el contenido de los campos seleccionados, éste lo hace en el

    contenido del registro completo independientemente de los campos indicados en

    la cláusula SELECT.

     SELECT DISTINCTROW Apellido FROM Empleados;

    Si la tabla empleados contiene dos registros: Antonio López y Marta López el

    ejemplo del predicado DISTINCT devuelve un único registro con el valor López en

    el campo Apellido ya que busca no duplicados en dicho campo. Este último

    ejemplo devuelve dos registros con el valor López en el apellido ya que se buscan

    no duplicados en el registro completo.

    LA CLAÚSULA ORDER BY

    Los registros devueltos por una consulta estarán en el mismo orden en que se

    encontraron en la tabla. SQL puede ordenar los resultados de una consulta

    mediante la cláusula ORDER BY seguida de una lista de especificaciones de la

    ordenación separadas por comas. También se puede establecer si el orden será

    ascendente o descendente mediante las palabras ASC y DESC. Si no especifica

    ninguna opción, se asumirá un orden ascendente en la clasificación.

    Ejemplo Visualizar los campos Apellidos, Nombres de los alumnos ordenados

    primero por el apellido y luego por el nombre.

    SELECT A_Paterno, A_Materno, Nombres

    Facultad de Ingeniería Industrial, Sistemas e Informática Ing. Ana Doris M. Barrera Loza

  • 8/18/2019 9. SQL.doc

    4/9

    FROM Alumnos

    ORDER BY A_Paterno, A_Materno, Nombres

    Ejemplo Visualizar todos los campos ordenados por Edad desde el mayor al

    menor.

    SELECT *

    FROM Alumnos

    ORDER BY Edad DESC

    LA CLAÚSULA W!ERE

    La cláusula WHERE se utiliza de dos formas:

    • Para indica limitar los registros que recupera, en función de los criterios

    indicados.

    • Para vincular dos o más tablas dentro de una consulta.

    Si sólo se desea seleccionar parte de las filas de una tabla se emplea la cláusula

     WHERE seguida de una condición de búsqueda que especifica las filas que se

    desean recuperar.

    Ejemplo" Si deseamos ver la lista de alumnos con apellido GonzalesSELECT A_Paterno, A_Materno, Nombres

    FROM Alumnos

     WHERE A_Paterno = ‘Gonzales’

     También se puede establecer varias condiciones WHERE mediante los operadores

     AND , OR y NOT.

     Visualizar la lista de alumnos de la escuela de Sistemas y a la vez se

    llamen Juan

    SELECT A_Paterno, A_Materno, Nombres, Escuela

    FROM Alumnos

     WHERE Escuela = ‘Sistemas’ AND Nombres = ‘Juan’

     Visualizar los datos de los alumnos que viven de Industrial o que se

    apellidan Caldas

    SELECT *

    FROM Alumnos

     WHERE Escuela = ‘Industrial’ OR A_Paterno = ‘Caldas’

    Facultad de Ingeniería Industrial, Sistemas e Informática Ing. Ana Doris M. Barrera Loza

  • 8/18/2019 9. SQL.doc

    5/9

     Visualizar los datos de los alumnos que no sean de la escuela de

    Sistemas.

    SELECT * FROM Alumnos

     WHERE NOT Escuela = ‘Sistemas’

    Ope#$%o#e" e& Cl'"l$" W!ERE

    Para construir una cláusula WHERE puede utilizar los siguientes operadores:

    Operador Función

    < Menor que

    Mayor que

    >= Mayor o igual que

    = Igual a No igual a

    BETWEEN (ENTRE) Dentro de un rango de valores

    LIKE (COMO) Coincide con un modelo

    IN (EN) Contenido en una lista de valores

    Ejemplo Visualizar la lista de alumnos menores de 23 añosSELECT A_Paterno, A_Materno, Nombres, Edad

    FROM Alumnos

     WHERE Edad < 23

    El Operador BETWEENEste operador devuelve todos los valores de registros que estén entre los límites

    especificados. Implica el uso de tres expresiones SQL. La primera expresión

    define el valor a comprobar, la segunda y tercera expresión definen los extremos

    superior e inferior del rango a comprobar. Los tipos de datos de las tres

    expresiones deben ser comparables.

    Ejemplo Visualizar el código, Apellidos, Nombres, Edad de los alumnos que

    tengan entre 18 y 23 años

    SELECT Codigo, A_Paterno, A_Materno, Nombres, Edad

    FROM Alumnos

     WHERE Edad BETWEEN 18 AND 23

    El Operador IN

    Se utiliza para recuperar registros que coinciden con una lista de valores.

    Ejemplo Visualizar código, Apellidos, Nombres, escuela y ciclo de los alumnos

    del quinto y octavo ciclo.

    Facultad de Ingeniería Industrial, Sistemas e Informática Ing. Ana Doris M. Barrera Loza

  • 8/18/2019 9. SQL.doc

    6/9

    SELECT Codigo, A_Paterno, A_Materno, Nombres, Escuela, Ciclo

    FROM Alumnos

     WHERE Ciclo IN (‘V’, ‘VIII’)

    El Operador LIKE

    Comprueba si el valor de dato de una columna se ajusta a un patrón

    especificado. El patrón es una cadena que puede incluir uno o más caracteres

    comodines.

    El comodín _ reemplaza a un carácter. (? En otros lenguajes)

    El comodín % reemplaza a cero o más caracteres. (* en otros lenguajes)

    Ejemplo Visualizar los campos Apellidos, Nombres de los alumnos cuyo nombre

    tenga la letra a en el segundo lugar.

    SELECT A_Paterno, A_Materno, Nombres

    FROM Alumnos

     WHERE Nombres LIKE ‘?a%’

    Ejemplo Visualizar los datos de los alumnos cuyo código tenga 3 dígitos yempiece con 1.

    SELECT * FROM Alumnos

     WHERE Codigo LIKE ‘1__’

    Ejemplo Visualizar los datos de los alumnos cuyo apellido paterno comience con

    las letras de la C a la F.

    SELECT * FROM Alumnos

     WHERE A_Paterno LIKE ‘[C-F]%’

    FUNCIONES AGREGADAS DE SQL

    Los estándares de SQL definen un pequeño conjunto de funciones que deberán

    encontrarse en todos los sistemas que acaten las normas de SQL.

    SQL proporciona las funciones que se muestran a continuación:

    Funciones Descripción

     AVG() Calcula el valor promedio de una columna

    COUNT() Cuenta el número de valores en una columna.

    SUM() Calcula la sumatoria total de una columna

    MAX() Encuentra el mayor valor en una columna.

    Facultad de Ingeniería Industrial, Sistemas e Informática Ing. Ana Doris M. Barrera Loza

  • 8/18/2019 9. SQL.doc

    7/9

    MIN() Encuentra el valor más pequeño en una columna

    Nota:Como habrá notado SQL asigna nombres de columnas a las vistas. Hay

    ocasiones en que tales nombres podrían no ser los más adecuados. En este caso

    se utiliza la cláusula AS para asignarles un nombre más adecuado.

    Ejemplo Escribir una instrucción SQL que nos muestre la cantidad de alumnos,

    la edad promedio, la mayor y menor edad.

    SELECT COUNT(Codigo) AS CantAlumnos,

     AVG (Edad) AS PromedioEdad,

     MAX(Edad) AS [Mayor Edad],

     MIN(Edad) AS [Menor Edad]

    FROM Alumnos

    Ejemplo Escribir una sentencia SQL que nos muestre la edad promedio de los

    alumnos, cuya escuela sea Informática.

    SELECT AVG (Edad) AS [Edad Promedio]

    FROM Alumnos

     WHERE Escuela =’Informática’

    Ejemplo Escribir una sentencia SQL que nos muestre la edad mínima de los

    alumnos del primer ciclo

    SELECT MIN (Edad) AS [Edad Mínima]

    FROM Alumnos

     WHERE Ciclo =’I’

    LA CLAÚSULA TOP

    Se utiliza para mostrar sólo unos cuantos registros de la parte superior o inferior

    de un conjunto de registros grandes. Se utiliza con una instrucción de

    ordenación para limitar el número de registros del conjunto de resultados.

    Ejemplo Visualizar los datos de los 3 alumnos con mayor edad.

    SELECT TOP 3 *

    FROM Alumnos

    ORDER BY Edad DESC

    Po#e&*$je Spe#+o# PERCENT

    Facultad de Ingeniería Industrial, Sistemas e Informática Ing. Ana Doris M. Barrera Loza

  • 8/18/2019 9. SQL.doc

    8/9

    Permite escribir consultas que devuelvan un porcentaje de los registros

    superiores de una tabla.

    Ejemplo Visualizar el 10% de alumnos de mayor edad.SELECT TOP 10 PERCENT *

    FROM Alumnos

    ORDER BY (Edad) DESC

    LA CLAÚSULA GROUP BY

    La cláusula GROUP BY es una consulta agrupada, ya que agrupa los datos de

    las tablas fuente y procede una única fila sumaria por cada grupo de filas. Las

    columnas indicadas en la cláusula GROUP BY se denomina columnas de

    agrupación de la consulta, ya que ellas son las que determinan cómo se dividen

    las filas en grupos.

    Ejemplo Escribir una sentencia SQL que nos muestre el promedio de edades por

    Escuela

    SELECT Escuela, AVG (Edad) AS PromedioEdad

    FROM Alumnos

    GROUP BY Escuela

    LA CLAÚSULA !A,ING

    La cláusula HAVING puede ser utilizada para seleccionar y rechazar grupo de

    filas. El formato de la cláusula HAVING es análogo al de la cláusula WHERE,

    consistiendo en la palabra clave HAVING seguida de una condición de búsqueda.

    Ejemplo Escribir una sentencia SQL que nos muestre el promedio de edad porescuela y además que dicho promedio sea mayor a 18

    SELECT Escuela, AVG (Edad)

    FROM Alumnos

    GROUP BY Escuela

    HAVING AVG (Edad)>30

    Facultad de Ingeniería Industrial, Sistemas e Informática Ing. Ana Doris M. Barrera Loza

  • 8/18/2019 9. SQL.doc

    9/9

    SQL CON UNA TABLA

    Crear la tabla Trabajadores con los campos Cod_Trab, Paterno, Materno, Nombres, Cargo,

    Salario, Ciudad, Sexo.

    Seleccionar todos los datos de los trabajadores cuya ciudad comience con la letra C

    select *

    from  Trabajadores

    !ere  Ciudad "#$% &C*&

    Seleccionar apellidos, salario y cargo para los empleados 'ue ganen mas de ()) y 'ue la

    ciudad de procedencia sea "ima, #ca y Piura

    select paterno, materno, salario, cargo

    from  Trabajadores!ere  salario ())

    and ciudad #N +"ima, #ca, Piura-

    Seleccionar los trabajadores de sexo masculino.

    select *

    from  Trabajadores

    !ere  Sexo /Masculino

    Seleccionar C0digo, 1pellidos y Nombres de los trabajadores ordenados descendentemente

     por el c0digo.

    select Cod_Trab, paterno, materno, nombres

    from  Trabajadores

    order by  Cod_Trab 2%SC

    Seleccionar el promedio de salario de trabajadores por ciudad de procedencia.

    select ciudad, a3g+salario-

    from  Trabajadores

    group by  ciudad

    4isuali5ar los apellidos del trabajador y sus nombres en un solo campo

    select paterno 6 / / 6 materno 6 /, / 6 nombres

    from  Trabajadores

    Facultad de Ingeniería Industrial, Sistemas e Informática Ing. Ana Doris M. Barrera Loza