Anda di halaman 1dari 9

LENGUAJE DE CONSULTAS ESTRUCTURADO (SQL)

El Lenguaje de Consultas Estructurado o Lenguaje de Estructuras de Consultas


(SQL; Structured Query Language) es un poderoso lenguaje estndar para la
manipulacin de bases de datos. Nos permite organizar, gestionar y recuperar
datos de una tabla de base de datos, establecer correspondencia entre datos
relacionados de varias tablas y manipular la estructura de las bases de datos.
Normalmente se utiliza para crear consultas que extraen datos de las bases de
datos, aunque muchas instrucciones SQL realizan otras funciones en las bases
de datos, por ejemplo, crear tablas y campos.
Las instrucciones SQL se dividen en dos categoras:

Instrucciones DML (Data Manipulation Languague, Lenguaje de Manipulacin


de Datos) diseadas para recuperar registros de las bases de datos.

Instrucciones DDL (Data Definition Languague, Lenguaje de Definicin de


Datos) que permiten utilizar las consultas SQL para crear componentes de la
base de datos, por ejemplo, tablas, campos e ndices.

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

la lista de seleccin como

abreviatura de todas las columnas. Este tipo de orden es prctico, ya que no es


necesario conocer los nombres de los campos de una tabla para recuperarlos.
Sin embargo puede resultar poco eficaz recuperar todas las columnas de una

Facultad de Ingeniera Industrial, Sistemas e Informtica

Ing. Ana Doris M. Barrera Loza

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)

y el precio de costo (Pcosto),

queremos saber la ganancia por producto


SELECT NombreProd, Pventa Pcosto
FROM Productos

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

Ing. Ana Doris M. Barrera Loza

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


tabla Empleados pueden tener el mismo apellido. Si dos registros contienen
Lpez en el campo Apellido, la siguiente instruccin SQL devuelve un nico
registro:
SELECT DISTINCT Apellido FROM Empleados;
Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos
campos indicados en la clusula SELECT posean un contenido diferente.

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

Ing. Ana Doris M. Barrera Loza

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.

Para vincular dos o ms tablas dentro de una consulta.

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

Facultad de Ingeniera Industrial, Sistemas e Informtica

Ing. Ana Doris M. Barrera Loza

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


Sistemas.
SELECT * FROM Alumnos
WHERE NOT Escuela = Sistemas

Operadores en Clusulas WHERE


Para construir una clusula WHERE puede utilizar los siguientes operadores:
Operador
<
<=
>
>=
=
<>
BETWEEN (ENTRE)
LIKE (COMO)
IN (EN)

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

Ejemplo: Visualizar la lista de alumnos menores de 23 aos


SELECT A_Paterno, A_Materno, Nombres, Edad
FROM Alumnos
WHERE Edad < 23
El Operador BETWEEN
Este operador devuelve todos los valores de registros que estn entre los lmites
especificados. Implica el uso de tres expresiones SQL. La primera expresin
define el valor a comprobar, la segunda y tercera expresin definen los extremos
superior e inferior del rango a comprobar. Los tipos de datos de las tres
expresiones deben ser comparables.
Ejemplo: Visualizar el cdigo, Apellidos, Nombres, Edad de los alumnos que
tengan entre 18 y 23 aos
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 cdigo, Apellidos, Nombres, escuela y ciclo de los alumnos
del quinto y octavo ciclo.
Facultad de Ingeniera Industrial, Sistemas e Informtica

Ing. Ana Doris M. Barrera Loza

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 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]%

FUNCIONES AGREGADAS DE SQL


Los estndares de SQL definen un pequeo conjunto de funciones que debern
encontrarse en todos los sistemas que acaten las normas de SQL.
SQL proporciona las funciones que se muestran a continuacin:
Funciones

Descripcin

AVG()

Calcula el valor promedio de una columna

COUNT()

Cuenta el nmero de valores en una columna.

SUM()

Calcula la sumatoria total de una columna

MAX()

Encuentra el mayor valor en una columna.

Facultad de Ingeniera Industrial, Sistemas e Informtica

Ing. Ana Doris M. Barrera Loza

MIN()

Encuentra el valor ms pequeo en una columna

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.

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


SELECT TOP 3 *
FROM Alumnos
ORDER BY Edad DESC

Porcentaje Superior: PERCENT

Facultad de Ingeniera Industrial, Sistemas e Informtica

Ing. Ana Doris M. Barrera Loza

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 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

Facultad de Ingeniera Industrial, Sistemas e Informtica

Ing. Ana Doris M. Barrera Loza

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
where Ciudad LIKE 'C*'
Seleccionar apellidos, salario y cargo para los empleados que ganen mas de 100 y que la
ciudad de procedencia sea Lima, Ica y Piura
select paterno, materno, salario, cargo
from Trabajadores
where salario > 100
and ciudad IN ("Lima", "Ica", "Piura")
Seleccionar los trabajadores de sexo masculino.
select *
from Trabajadores
where Sexo = Masculino"
Seleccionar Cdigo, Apellidos y Nombres de los trabajadores ordenados descendentemente
por el cdigo.
select Cod_Trab, paterno, materno, nombres
from Trabajadores
order by Cod_Trab DESC
Seleccionar el promedio de salario de trabajadores por ciudad de procedencia.
select ciudad, avg(salario)
from Trabajadores
group by ciudad
Visualizar los apellidos del trabajador y sus nombres en un solo campo
select paterno + + materno + , + nombres
from Trabajadores

Facultad de Ingeniera Industrial, Sistemas e Informtica

Ing. Ana Doris M. Barrera Loza

Anda mungkin juga menyukai