Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SQL bsico
Un lenguaje de bases de datos deber pertenecer
al menos a uno de los siguientes grupos
SQL (Structured Query Language) est compuesto por:
Lenguaje de definicin de datos (DDL). Se
Comandos (verbos) que indican la accin a realizar.SELECT,
usa para la definicin de dominios, tablas, UPDATE, INSERT, CREATE,
vistas y restricciones de integridad. Clusulas que especifican condiciones para definir los datos
Lenguaje de manipulacin de datos (DML). que queremos seleccionar.FROM WHERE ORDER BY, GROUP
Se utiliza para realizar consultas, insertar, BY,
borrar o modificar registros o tuplas. Operadores de comparacin y lgicos.AND, OR, < =,
Funciones de agregado: se usan dentro de una clusula
Lenguaje de control de datos (DCL). Gestiona SELECT en grupos de registros para devolver un nico valor que
privilegios, autorizaciones, usuarios y permisos. se aplica a un grupo de registros (AVG, COUNT, SUM, MAX,
MIN).
En una sentencia SQL se usan conjuntamente todos estos
componentes
1
15/12/2011
En la condicin se especifican
Donde expre_colum puede ser una columna de una operadores lgicos y/o de
tabla, una constante, una expresin aritmtica, una
funcin o varias funciones anidadas.
comparacin:
FROM WHERE
2
15/12/2011
ORDER BY ORDER BY
[ORDER BY expre_columna [DESC I ASC] [,
As mismo, es posible anidar los criterios. El
expre_columna [DESC I ASC] .. . ]
situado ms a la izquierda ser el principal.
Especifica el criterio de clasificacin del resultado
Ejemplo:
de la consulta. ASC especifica ordenacin
ascendente, y DESC, descendente. SQL> SELECT * FROM alumnos ORDER BY
curso desc, nom_alum;
Puede contener expresiones con valores de
columnas; por ejemplo:
SQL> SELECT * FROM alumnos (ordena por CURSO descendente y por
NOM_ALUM ascendente).
ORDER BY nota/5;
3
15/12/2011
ALL|DISTINCT
ALL
Recupera todas las filas, aunque algunas
estn repetidas. Es la opcin por omisin.
DISTINCT
Slo recupera las filas que son distintas. Por
ejemplo, consultamos los departamentos
(colum-na DEPT_NO) de la tabla EMPLE.
4
15/12/2011
5
15/12/2011
6
15/12/2011
NOMBRE_ALUMNO
---------------------------
Benito Martn, Luis
7
15/12/2011
Nota Ejemplo
Hemos de tener en cuenta que las Obtener aquellos apellidos que tengan una 'R' en
maysculas y minsculas son la segunda posicin:
significativas: 'm' no es lo mismo que SQL> SELECT apellido FROM emple
'M' y que las constantes alfanumricas WHERE apellido LIKE '_R%;
deben encerrarse siempre entre
comillas simples. APELLIDO
----------
ARROYO
8
15/12/2011
9
15/12/2011
IN Ejemplo
El operador IN nos permite comprobar si una Consultar los apellidos de la tabla EMPLE
expresin pertenece o no (NOT) a un conjunto de cuyo nmero de departamento sea 10 30:
valores, haciendo posible la realizacin de
comparaciones mltiples; su formato es:
SQL> SELECT apellido FROM emple
<expresin> [NOT] IN (lista de valores separados
WHERE dept_no IN (10,30);
por comas).
Ejemplo Ejemplo
Consultar los apellidos de la tabla EMPLE cuyo Consultar los apellidos de la tabla EMPLE
nmero de departamento no sea ni 10 ni 30: cuyo oficio sea 'VENDEDOR', 'ANALISTA' o
'EMPLEADO':
SQL> SELECT apellido FROM emple
WHERE dept_no NOT IN(10,30); SQL> SELECT apellido FROM emple
WHERE oficio IN
('VENDEDOR','ANALISTA','EMPLEADO');
10
15/12/2011
Ejemplo BETWEEN
Consultar los apellidos de la tabla EMPLE Este operador comprueba si un valor est
cuyo oficio no sea ni 'VENDEDOR' ni comprendido o no dentro de un rango de
'ANALISTA' ni 'EMPLEADO': valores, desde un valor inicial a un valor final.
[NOT] BETWEEN valor_ini AND valor_fin
SQL> SELECT apellido FROM emple
WHERE oficio NOT IN
('VENDEDOR','ANALISTA','EMPLEADO');
Ejemplo Ejemplo
A partir de la tabla EMPLE, obtener el apellido y el A partir de la tabla EMPLE, obtener el apellido y el
salario de los empleados cuyo SALARIO est salario de los empleados cuyo SALARIO no est
comprendido entre 150000 y 200000: comprendido entre 150000 y 200000
SQL> SELECT apellido, salario FROM emple SQL> SELECT apellido, salario FROM emple
WHERE salario BETWEEN 150000 AND 200000;
WHERE salario NOT BETWEEN 150000 AND
200000;
11
15/12/2011
Un error relativamente frecuente consiste en utilizar Para unir dos o ms cadenas se utiliza el
expresiones del tipo:
operador de concatenacin ||
1000 <= SALARIO <= 2000
Este tipo de expresiones es ilegal y provocar un error
ya que al evaluar la primera parte de la expresin se Ej.: 'buenos' || 'das' dara como resultado
sustituir por un valor lgico de tipo true/false y este 'buenosdias'
resultado no puede compararse con un valor
numrico. La expresin correcta sera:
SALARIO BETWEEN 1000 AND 2000 En Access para concatenar cadenas se utiliza
O bien: el signo +, no reconoce ||
SALARIO >= 1000 AND SALARIO <= 2000
12