S.Q.L.
AO 2011
Descripcin
Sistema manejador de bases de datos relacionales
Estructura de almacenamiento bsica de un RDBMS. Consiste en una o ms columnas y
cero o ms filas.
Combinacin de valores de columnas de una tabla.
Un tipo de datos en una tabla.
Se encuentra en la interseccin de una fila y una columna. Puede contener datos, si no los
tiene, se dice que es nulo.
Columna o conjunto de columnas que identifican unvocamente cada fila de una tabla. Debe
contener un valor. No admite valores nulos. Generalmente no se pueden modificar.
Descripcin
Unidad bsica de almacenamiento compuesta por filas y columnas.
Representa lgicamente subconjuntos de datos de una o ms tablas.
Genera valores de claves primarias.
Mejora la performance de algunas consultas. Campo por el que puede
accederse a la tabla
Comandos SQL
Tipo de
Comando
Recuperacin
de Datos
Comandos
Descripcin
SELECT
2 FROM
Alumnos;
Expresiones Aritmticas
Pueden crearse expresiones aritmticas sobre tipos de datos numricos y fechas.
Una expresin aritmtica puede contener nombres de columnas, valores numricos, constantes
y operadores aritmticos.
Pueden usarse los operadores aritmticos en cualquier sentencia de SQL excepto en la
clusula FROM.
Operadores
+
*
/
Descripcin
Suma
Resta
Multiplicacin
Divisin
Ejemplo:
SQL> SELECT Alumnos.Apellido, Alumnos.Promedio, Alumnos.Promedio / 12
2 FROM
Alumnos;
Precedencia de Operadores
Ejemplos:
La clusula ORDER BY
El orden de las filas recuperadas por una consulta es indefinido. La clusula ORDER BY se
puede usar para ordenar las filas.
SELECT expr
FROM
tabla
[ORDER BY
{columna, expr} [ASC | DESC] ] ;
Donde:
ORDER BY especifica e orden en el cual se muestran las filas recuperadas.
ASC
ordena las filas en orden ascendente. Este es el valor por defecto.
DESC
ordena las filas en orden descendente.
Ejemplo
SQL> SELECT Alumnos.Apellido, Alumnos.Domicilio, Alumnos.Localidad
2 FROM
Alumnos
3 ORDER BY Alumnos.Localidad;
Literal
Ejemplo
SQL> SELECT Alumnos.Apellido, Alumnos.Domicilio, Alumnos.Localidad
2 FROM
Alumnos
3 WHERE
Alumnos.Localidad = Lomas de Zamora;
Operadores de Comparacin
Operador
=
>
>=
<
<=
Significado
Igual a
Mayor que
Mayor o igual que
Menor que
Menor o igual que
BETWEEN...AND...
IS NULL
Operadores Lgicos
Operador
AND
OR
Significado
Si ambos componentes de la condicin son verdaderos, el
resultado tambin
Si algn componente de la condicin es verdadero, el resultado
tambin lo es
Operador BETWEEN
Selecciona las filas que se encuentran dentro de un rango de valores. El rango que se
especifica contiene un valor inferior y otro superior, debe especificarse primero el lmite inferior
del rango. Los valores especificados con el operador BETWEEN se incluyen.
Ejemplo
Seleccionar los alumnos cuyas notas estn entre 4 y 6 inclusive.
SQL> SELECT
Alumnos.Apellido, Alumnos.Nota
2 FROM
Alumnos
3 WHERE
Alumnos.Nota BETWEEN 4 AND 6;
Ejemplo 1
Mostrar el apellido, Domicilio, cdigo de carrera que cursa y materia Costos para todos los
que cursan la carrera 12.
SQL> SELECT Alumnos.Apellido, Alumnos.Domicilio, Alumnos.Codcarrera, Alumnos.Materia
2 FROM Alumnos
3 WHERE Alumnos.Codcarrera = 12
4 AND Alumnos.Materia = 'Costos' ;
Ejemplo 2
Mostrar el apellido, salario, nmero de departamento y cargo para todos los empleados que
son representantes de ventas o que trabajen en el departamento 31.
SQL> SELECT Empleados.Apellido, Empleados.Salario, Empleados.Nrodepto,
Empleados.Cargo
2 FROM Empleados
3 WHERE Empleados.Nrodepto = 31
4 OR Empleados.Cargo = 'Ventas';
Reglas de Precedencia
Pueden combinarse los operadores AND y OR en la misma expresin lgica. Los resultados de
todas las condiciones se combinan en el orden determinado por la precedencia de los
operadores conectores. Cuando los operadores tienen igual precedencia, se ejecutan de
izquierda a derecha.
Cada AND se ejecuta primero y luego cada OR. AND tiene prioridad ms alta que OR.
Cuando se usa negacin de expresiones, los operadores de comparacin tambin se evalan
primero.
Para modificar las reglas de precedencia usar parntesis, de ese modo, primero se evaluarn
las expresiones entre parntesis.
Cada vez que se presenten dudas acerca de qu operacin ser ejecutada primero al evaluar
una expresin, usar parntesis para clarificar la sentencia.
Orden de Evaluacin
Operador
1
Todos los Operadores de Comparacin
(=, <>, >, >=, <, <=, IN, LIKE, IS NULL, BETWEEN)
2
AND
3
OR
En los siguientes ejemplos se muestra cmo se modifica el orden de precedencia y,
consecuentemente, el resultado de la consulta, mediante el uso de parntesis.
Ejemplo 1
Mostrar el apellido, domicilio y cdigo de carrera para aquellos alumnos de la carrera 14 que
aprobaron 15 o ms, como as tambin todos los alumnos de la carrera 12.
SQL> SELECT Alumnos.Apellido, Alumnos.Domic, Alumnos.CodCarrera
2 FROM Alumnos
3 WHERE Alumnos.MaterAprob >= 15
4 AND Alumnos.CodCarrera = 14
5 OR Alumnos.CodCarrera = 12;
Ejemplo 2
Mostrar el apellido, domicilio y cdigo de carrera para aquellos alumnos de las carreras 12 o
14 y que hayan aprobado 15 materias o ms.
SQL> SELECT Alumnos.Apellido, Alumnos.Domic, Alumnos.CodCarrera
2 FROM Alumnos
3 WHERE Alumnos.MaterAprob >= 15
4 AND (Alumnos.CodCarrera = 14
5 OR Alumnos.CodCarrera = 12);
Ver que la nica diferencia en el cdigo es la inclusin de los parntesis que cambian el
sentido de la expresin
EXAMENES
Codalum
CodMater
MATERIAS
CodMater
Producto Cartesiano
Cuando se define una condicin para relacionar dos tablas que es invlida o se omite
completamente el campo que relaciona ambas tablas, se establece como resultado un
Producto Cartesiano, en el cual se muestran las combinaciones de todas las filas. Se combinan
todas las filas de la primer tabla con todas las filas de la segunda.
Ejemplo
La tabla Alumnos tiene 12 filas y la tabla Materias tiene 25, la combinacin de todas las filas de
Alumnos con todas las filas de Materias da 300 filas.
SQL> SELECT Alumnos.Apellido, Examenes NombreMater
2 FROM Alumnos, Examenes;
Esto se evita incluyendo en el FROM una condicin de vnculo apropiada:
SQL> SELECT Alumnos.Apellido, Examenes NombreMater
2 FROM Alumnos, Examenes; (Alumnos.Codalum = Examenes.Codalum)
Consulta Simple
Cuando se escribe una sentencia SELECT que combina tablas, es conveniente preceder el
nombre de la columna con el nombre de la tabla por claridad y para mejorar el acceso a la base
de datos.
Si el mismo nombre de columna aparece en ms de una tabla, es necesario prefijar la columna
con el nombre de la tabla correspondiente.
Para combinar tablas, se necesita como mnimo una cantidad de condiciones equivalentes a la
cantidad de tablas menos uno. Por lo tanto, para combinar cuatro tablas, se requerirn un
mnimo de tres condiciones. Esta regla no puede aplicarse si la tabla contiene una clave
primaria concatenada, en dicho caso, se requieren ms de una columna para identificar
unvocamente a cada fila.
Sintaxis
SELECT tabla.columna, tabla.columna, ...
FROM tabla1, tabla2; tabla1.columna1 = tabla2.columna2;
Donde:
tabla.columna
tabla1, tabla2
tabla1.columna1=tabla2.columna2
tablas.
Consulta Mltiple
Se denomina Consulta mltiple a la consulta que involucra dos o ms tablas cuya condicin de
vnculo es una igualdad.
La condicin de vnculo entre las tablas se especifica con la clusula FROM.
Frecuentemente, las columnas que componen la condicin de vnculo son claves primarias.
Ejemplo
Combinar las tablas de Alumnos y Exmenes para visualizar el nombre del Alumno, nmero de
legajo y cdigo de la materia rendida.
SQL> SELECT Alumnos.Nleg, Alumnos.Apellido, Materias.CodMater
2 FROM Alumnos, Materias; (Alumnos.Nleg = materias.Nleg);
Ahora cada Alumno tiene su cdigo de materias. Las filas de la tabla Alumnos se combinan con
las de la tabla Exmenes y se obtienen slo aquellas cuyos valores de nmero de legajo sean
iguales.
Ejemplo
Mostrar el apellido, el nmero de legajo del alumno y la nota del examen, para todos los
alumnos con notas mayores a 4.
SQL> SELECT Alumnos.Apellido, Examenes.Nota, Materias.Nommateria
2 FROM Alumnos, Examenes, Materias, (Alumnos.Nleg=materias.Nleg),
(examenes.Codmater = Materias. Codmater)
3 WHERE Nota>4;
Tambin podemos querer establecer una relacin en la cual ninguna columna de la primera
tabla se corresponde directamente con una columna de la segunda tabla.
La relacin se obtiene usando un operador distinto del igual (=).
Ejemplo
Crear una consulta para evaluar las notas de los alumnos. Estas notas deben estar entre
cualquier valor del par comprendido entre las notas 7 y 9.
SQL> SELECT Alumnos.Apellido, Examenes.Fchexamen, Examenes.Nota
2 FROM Alumnos.Nleg=Examenes.Nleg
3 WHERE Nota BETWEEN 7 AND 9;
SELECT Tabla1.Campo1, Tabla2.Campo1
FROM Tabla1, Tabla2, (Tabla1.Campo1 = Tabla2.Campo1)
WHERE ((Tabla1.Campo1)<> 4)
ORDER BY Tabla1.Campo1 Asc;