Upload
alexramirezlazaro
View
215
Download
0
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