LA CLASULA SELECT
En el ncleo de cualquier consulta de recuperacin de datos se encuentra la
clusula SELECT. Indica al motor de base de datos que campos debe recuperar,
los cuales van separados por una coma.
Una forma comn de la clusula SELECT es:
SELECT *
Esta clusula devuelve todos los campos encontrados en la fuente de registros
especificada. SQL permite utilizar el * en lugar de
tabla cuando solo se necesitan dos. Por ello es recomendable especificar que
campos se desea recuperar.
Ejemplo: Recuperar el contenido de los Apellidos y Nombres almacenados en una
tabla.
SELECT [A_Paterno], [A_Materno], [Nombres]
Se encierra los nombres de campos entre corchetes porque pueden tener espacios
incrustados u otros caracteres no deseados. Tambin puede ser:
SELECT ApPaterno, ApMaterno, Nombres
La clusula SELECT no est completa sin la clusula FROM.
LA CLASULA FROM
La clusula FROM indica la fuente de datos que utilizar la consulta para
recuperar los registros; esta fuente de datos puede ser una tabla u otra consulta
almacenada.
La clusula FROM funciona con la clusula SELECT.
Ejemplo: Recuperar todos los registros de una tabla Datos, utilice la siguiente
instruccin SQL:
SELECT *
FROM Alumnos
CAMPOS CALCULADOS
SQL puede incluir campos calculados cuyos valores se calcular a partir de los
valores de datos almacenados. Para solicitar un campo calculado, se especifica
una expresin SQL en la lista de seleccin. Las expresiones SQL pueden contener
sumas, restas, multiplicaciones y divisiones.
Ejemplo: Si tenemos el precio de venta (Pventa)
DISTINCT
Omite los registros que contienen datos duplicados en los campos seleccionados.
Para que los valores de cada campo listado en la instruccin SELECT se incluyan
Facultad de Ingeniera Industrial, Sistemas e Informtica
DISTINCTROW
Devuelve los registros diferentes de una tabla; a diferencia del predicado anterior
que slo 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 clusula SELECT.
SELECT DISTINCTROW Apellido FROM Empleados;
Si la tabla empleados contiene dos registros: Antonio Lpez y Marta Lpez el
ejemplo del predicado DISTINCT devuelve un nico registro con el valor Lpez en
el campo Apellido ya que busca no duplicados en dicho campo. Este ltimo
ejemplo devuelve dos registros con el valor Lpez en el apellido ya que se buscan
no duplicados en el registro completo.
LA CLASULA ORDER BY
Los registros devueltos por una consulta estarn en el mismo orden en que se
encontraron en la tabla. SQL puede ordenar los resultados de una consulta
mediante la clusula ORDER BY seguida de una lista de especificaciones de la
ordenacin separadas por comas. Tambin se puede establecer si el orden ser
ascendente o descendente mediante las palabras ASC y DESC. Si no especifica
ninguna opcin, se asumir un orden ascendente en la clasificacin.
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 Ingeniera Industrial, Sistemas e Informtica
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 CLASULA WHERE
La clusula WHERE se utiliza de dos formas:
Para indica limitar los registros que recupera, en funcin de los criterios
indicados.
Si slo se desea seleccionar parte de las filas de una tabla se emplea la clusula
WHERE seguida de una condicin de bsqueda que especifica las filas que se
desean recuperar.
Ejemplos: Si deseamos ver la lista de alumnos con apellido Gonzales
SELECT A_Paterno, A_Materno, Nombres
FROM Alumnos
WHERE A_Paterno = Gonzales
Tambin 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
Funcin
Menor que
Menor o igual que
Mayor que
Mayor o igual que
Igual a
No igual a
Dentro de un rango de valores
Coincide con un modelo
Contenido en una lista de valores
El Operador LIKE
Comprueba si el valor de dato de una columna se ajusta a un patrn
especificado. El patrn es una cadena que puede incluir uno o ms caracteres
comodines.
El comodn _ reemplaza a un carcter. (? En otros lenguajes)
El comodn % reemplaza a cero o ms 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 cdigo tenga 3 dgitos y
empiece 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]%
Descripcin
AVG()
COUNT()
SUM()
MAX()
MIN()
Nota: Como habr notado SQL asigna nombres de columnas a las vistas. Hay
ocasiones en que tales nombres podran no ser los ms adecuados. En este caso
se utiliza la clusula AS para asignarles un nombre ms adecuado.
Ejemplo: Escribir una instruccin 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 Informtica.
SELECT AVG (Edad) AS [Edad Promedio]
FROM Alumnos
WHERE Escuela =Informtica
Ejemplo: Escribir una sentencia SQL que nos muestre la edad mnima de los
alumnos del primer ciclo
SELECT MIN (Edad) AS [Edad Mnima]
FROM Alumnos
WHERE Ciclo =I
LA CLASULA TOP
Se utiliza para mostrar slo unos cuantos registros de la parte superior o inferior
de un conjunto de registros grandes. Se utiliza con una instruccin de
ordenacin para limitar el nmero de registros del conjunto de resultados.
LA CLASULA GROUP BY
La clusula 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 clusula GROUP BY se denomina columnas de
agrupacin de la consulta, ya que ellas son las que determinan cmo 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 CLASULA HAVING
La clusula HAVING puede ser utilizada para seleccionar y rechazar grupo de
filas. El formato de la clusula HAVING es anlogo al de la clusula WHERE,
consistiendo en la palabra clave HAVING seguida de una condicin de bsqueda.
Ejemplo: Escribir una sentencia SQL que nos muestre el promedio de edad por
escuela y adems que dicho promedio sea mayor a 18
SELECT Escuela, AVG (Edad)
FROM Alumnos
GROUP BY Escuela
HAVING AVG (Edad)>30