Claudio Angulo S. ADMI273-ADMI274
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 1/26
Claudio Angulo S.
ADMI273-ADMI274
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 2/26
¿Qué es SQL?
• Lenguaje de consultaestructurado (SQL: Structured
Query Languague) .• Es un lenguaje de base de
datos normalizado.• Utilizado para consultar,modificar o eliminar datos en
una Base de Datos.
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 3/26
Componentes
• Comandos
• Claúsulas
• Operadores
• Funciones
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 4/26
Comandos• Existen 2 tipos:
– DLL (definición de datos): Permiten crear ydefinir nuevas bases de datos, campos eíndices.
• CREATE
• DROP
• ALTER
– DML (manipulación de datos): Permiten generarconsultas para ordenar, filtrar y extraer datos.
• SELECT
• INSERT
• UPDATE
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 5/26
Cláusulas
• FROM
• WHERE
• GROUP BY
• HAVING
• ORDER BY
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 6/26
Operadores
• Lógicos: –AND
–OR –NOT
• Comparación: <, >, <>, <=,>=
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 7/26
Funciones
• COUNT
• SUM
• MAX
• MIN
• AVG
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 8/26
Consulta básica
SELECT A
FROM B
Donde A son los datos querequiero (columnas) y Bes de donde obtengo
esos datos.
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 9/26
Ejemplo
SELECT nombre, apellidos,edad
FROM estudiantes
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 10/26
WHERE• A veces NO se necesitan obtener
datos tan generales, y es cuando seaplican filtros, con la clausula
WHERE.
SELECT A
FROM B
WHERE C
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 11/26
Ejemplo
SELECT nombres, apellidos,edad
FROM estudiantesWHERE edad > 21
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 12/26
Alias• Los alias son un nombre de
asignación que se le dan a los
recursos, en este caso lastablas.
• Luego se pueden llamar a sus
atributos desde ese alias,continuados con un punto(“.”) .
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 13/26
Ejemplo
SELECT c.nombres, f.nombresFROM campus c, funcionarios f
WHERE c.id_campus =f.id_campus
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 14/26
Alias 2• Es posible dar un alias (nombre)
al titulo de las columnas de unatabla, que no es el mismo que
posee en la Base de Datos.• Ejemplo sin Alias:
Select l.titulo, l.agno
From libros lTITULO AGNO
Matemáticas 2007
Lenguaje y Comunicaciones 1998
Cs. Biológicas 2003
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 15/26
Ejemplo con Alias
TITULO AÑO
Matemáticas 2007
Lenguaje y Comunicaciones 1998
Cs. Biológicas 2003
Select l.titulo, l.agno As AÑO
From libros l
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 16/26
GROUP BYLa cláusula GROUP BY se usa paragenerar valores de agregado paracada fila del conjunto de resultados.
Cuando se usan sin una cláusulaGROUP BY, las funciones deagregado sólo devuelven un valor de
agregado para una instrucciónSELECT.
Ejemplo:
SELECT nombre_columna1, nombre_columna2
FROM nombre_tabla
GROUP BY nombre_columna1
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 17/26
GROUP BY: Ejemplo
nombre_tienda
ventas fecha
Valdivia 1500 05-jan-2010
Temuco 250 07-jan-2010
Valdivia 300 08-jan-2010
Osorno 700 08-jan-2010
tienda_info
CONSULTASELECT nombre_tienda,SUM(ventas)FROM tienda_infoGROUP BY nombre_tienda
RESULTADOValdivia1800Temuco250
Osorno700
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 18/26
HAVINGEspecifica una condición debúsqueda para un grupo o agregado.HAVING sólo se puede utilizar con la
instrucción SELECT. Normalmente,HAVING se utiliza en una cláusulaGROUP BY. Cuando no se utiliza
GROUP BY, HAVING se comportacomo una cláusula WHERE.Ejemplo:
SELECT nombre_columna1, SUM(nombre_columna2)
FROM nombre_tabla
[ GROUP BY nombre_columna1 ]
HAVING (condición de función aritmética)
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 19/26
HAVING: Ejemplo
nombre_tienda
ventas fecha
Valdivia 1500 05-jan-2010
Temuco 250 07-jan-2010
Valdivia 300 08-jan-2010
Osorno 700 08-jan-2010
tienda_info
CONSULTASELECT nombre_tienda,SUM(ventas)FROM tienda_infoGROUP BY nombre_tiendaHAVING SUM(ventas) >1500
RESULTADOValdivia
1800
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 20/26
ORDER BYEspecifica el orden utilizado en lascolumnas devueltas en unainstrucción SELECT. La cláusula
ORDER BY no es válida en vistas,funciones insertadas, tablasderivadas ni subconsultas.Ejemplo:
SELECT nombre_columna1, nombre_columna2
FROM nombre_tabla
[ WHERE condicion]
ORDER BY nombre_columna1 [ ASC, DESC ]
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 21/26
ORDER BY: Ejemplo
nombre_tienda
ventas fecha
Valdivia 1500 05-jan-2010
Temuco 250 07-jan-2010
Valdivia 300 08-jan-2010
Osorno 700 08-jan-2010
tienda_info
CONSULTASELECT nombre_tienda,ventas, fechaFROM tienda_infoORDER BY ventas DESC
RESULTADOValdivia 1500 05- jan-2010Osorno 700 08- jan-2010Valdivia 300 08-
jan-2010
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 22/26
OPERADORES LOGICOS(AND-OR)
C1 C2 C1 ANDC2
V V V
V F FF V F
F F F
C1 C2 C1 OR C2
V V VV F V
F V V
F F F
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 23/26
OPERADORES
LOGICOS: Ejemplo ANDnombre_tienda
ventas fecha
Valdivia 1500 05-jan-2010
Temuco 250 07-jan-2010
Valdivia 300 08-jan-2010
Osorno 700 08-jan-2010
tienda_info
CONSULTASELECT *
FROM tienda_infoWHERE ventas > 500AND nombre_tienda =‘Valdivia’
RESULTADO
Valdivia 1500 05- jan-2010
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 24/26
OPERADORES
LOGICOS: Ejemplo ORnombre_tienda
ventas fecha
Valdivia 1500 05-jan-2010
Temuco 250 07-jan-2010
Valdivia 300 08-jan-2010
Osorno 700 08-jan-2010
tienda_info
CONSULTASELECT *
FROM tienda_infoWHERE ventas > 500OR nombre_tienda =‘Valdivia’
RESULTADO
Valdivia 1500 05- jan-2010Valdivia 300 08- jan-2010Osorno 700 08-
jan-2010
5/17/2018 Lab5_SQL - slidepdf.com
http://slidepdf.com/reader/full/lab5sql 25/26
Modelo de Datos
Para este laboratorio usaremos laBase de Datos Biblioteca desarrollado
en la clase anterior.
Para ello use la imagen que seencuentra en siveduc,“Biblioteca.png” y cargue el archivo“Biblioteca.sql” en PLSQL como seenseño en la clase anterior.