Sie sind auf Seite 1von 10

EL LENGUAJE S.Q.L.

Qu es S.Q.L.
Structured Query Language
Establecido como el lenguaje de base de datos relacional estndar.
Existen numerosos productos que soportan SQL, cada uno de ellos con pequeas

diferencias sin apenas importancia (p.ej. Oracle).

El SQL estndar es el publicado por ANSI e ISO.

Caractersticas de S.Q.L.
Lenguaje de definicin de datos (DDL)
o

Create, Alter, Drop.

Lenguaje de manipulacin de datos (DML)


o

Insert, Update, Delete.

Lenguaje de control de datos (DCL)


o

Grant, Revoke.

Control de transacciones
o

Commit, Rollback, Savepoint

Restricciones de integridad
o

Referencial, datos.

La sentencia SELECT

Sentencia Bsica

Ejemplos:
SELECT empno, ename
FROM emp;
SELECT *
FROM emp;

Etiquetas de Columnas por defecto


Justificacin de etiquetas y datos por defecto:
o

Izquierda

Derecha

fechas y caracteres
datos numricos

Etiquetas y datos, por defecto, se muestran en maysculas.


Posibilidad del uso de alias de columnas.

Alias de columna
Un alias de columna renombra un encabezamiento de columna.
til, especialmente, en clculos.
Sintaxis:
o

Sigue inmediatamente al nombre de la columna mediante la palabra


clave AS entre ellos.

Se requiere encerrar un alias entre comillas dobles si contiene espacios


en blanco, caracteres especiales o es case sensitive.

Uso de Alias de columna


SQL> SELECT ename AS nombre, sal AS salario, sal*12 AS Salario Anual

FROM emp;

Resultado:

Expresiones aritmticas
Operadores:
o

Suma (+)

Resta (-)

Multiplicacin (*)

Divisin (/)

Cualquier sentencia SQL


Precedencia de operadores: * / + Operadores misma prioridad se evalan de izq. a derecha.
Parntesis sobreescriben reglas de precedencia.

Valor NULL
NULL es un valor inaccesible, sin valor desconocido o inaplicable.
NULL no representa ni un cero ni un blanco.
Las expresiones aritmticas que contengan NULL se evalan a NULL (<> cero).

Operador de concatenacin
Representado por dos barras verticales: ||
Vincula columnas o cadenas de caracteres.
Crea una columna resultado que es una expresin de tipo carcter.
Ejemplo:

Filas duplicadas
Las consultas, por defecto, muestran todas las filas, incluyendo las duplicadas.
Las duplicadas se eliminan usando DISTINCT en la clusula SELECT:

Uso de la clusula WHERE


Establece un criterio de seleccin aplicable a la tabla de la que se quiere recuperar

datos.

Se especifica a continuacin de FROM.


La condicin de WHERE permite comparar columnas con otras columnas, valores,

literales, expresiones aritmticas o funciones.

Sintaxis de WHERE

Ejemplo:

Operadores de comparacin
Aplicables en las condiciones de la clusula WHERE:
o

= Igual que

> Mayor que

>= Mayor que o igual a

< Menor que

<= Menor que o igual a

<> Distinto

BETWEEN m AND n

IN(lista)

LIKE

IS NULL

Entre m y n (inclusive)

Se encuentra en la lista
Se ajusta a un patrn
Es valor nulo

Ejemplos de comparacin

SQL> SELECT ename, saL FROM emp


WHERE sal BETWEEN 1000 AND 1500;

SQL> SELECT empno, ename, sal, mgr FROM EMP


WHERE mgr IN (7902, 7566, 7788);

SQL> SELECT ename FROM emp


WHERE ename LIKE _A%;

Sintaxis de LIKE:

% representa cero o varios caracteres

_ representa un solo carcter

SQL> SELECT ename, mgr FROM emp


WHERE mgr IS NULL;

Operadores lgicos
AND devuelve TRUE si ambas condiciones son TRUE.
OR devuelve TRUE si alguna de las condiciones es TRUE.
NOT devuelve TRUE si la siguiente condicin es FALSE.

Ejemplos con operadores lgicos

SQL> SELECT empno, ename, job, sal FROM emp


WHERE sal >= 1100
AND job = CLERK;

SQL> SELECT empno, ename, job, sal FROM emp


WHERE sal >= 2000
OR job = MANAGER;

SQL> SELECT ename, job FROM emp


WHERE job NOT IN (CLERK, MANAGER, ANALYST);

Reglas de precedencia
Siempre es aconsejable, para facilitar la lectura de la sentencia SQL, utilizar

parntesis que fuercen la prioridad de los operadores lgicos.

Sin parntesis, el orden de evaluacin es:


o

1: Todos los operadores de comparacin

2: NOT

3: AND

4: OR

Recuperaciones ordenadas
Las filas recuperadas en la sentencia SELECT, si no se especifica nada, no tienen

ningn orden determinado.

Se pueden ordenar con la clusula ORDER BY siempre al final de una sentencia

SELECT.
o

ASC

DESC

Sintaxis de ORDER BY

Ejemplo:

Orden ascendente. Por defecto.


Orden descendente.

FUNCIONES DE GRUPO
Funciones de Grupo (I)
AVG ([DISTINCT | ALL] n)
o

Valor promedio de n.

COUNT ({* | [DISTINCT | ALL |] expr})


o

Cantidad de filas con expr no nulo. Con * se cuentan todas las filas
incluyendo duplicadas y valores nulos.

MAX ([DISTINCT | ALL] expr)


o

Valor mximo de expr.

MIN ([DISTINCT | ALL] expr)


o

Valor mnimo de expr., ignorando los valores nulos.

Funciones de Grupo (II)


STDDEV ([DISTINCT | ALL] n)
o

Desviacin estndar de n, ignorando los valores nulos.

SUM ([DISTINCT | ALL] n)


o

Suma los valores de n, ignorando los valores nulos.

VARIANCE ([DISTINCT | ALL] n)


o

Varianza de n, ignorando los valores nulos

Estas funciones no se pueden usar en la clusula WHERE.

Funciones de grupo y Nulos


Las funciones de grupo IGNORAN los valores nulos de las columnas.
Qu resultado obtendramos se calculamos la media de la comisin de los

empleados?

NVL y funciones de grupo


Esta media no es correcta porque se han ignorado las filas cuya comisin es nula.
Solucin: Uso de la funcin NVL para forzar a las funciones de grupo que admitan

los valores nulos.

Sintaxis de GROUP BY

Crea grupo de datos, por lo tanto se pueden usar funciones de grupo para devolver

informacin resumida para cada grupo.

Uso de GROUP BY (I)


Si se incluye una funcin de grupo en una clusula SELECT, no se puede seleccionar

resultados individuales a menos que la columna aparezca en la clusula GROUP


BY.

No se pueden usar alias en GROUP BY.


Por defecto, tras un GROUP BY, las filas se ordenan de forma ascendente
Ejemplo:

>SQL> SELECT deptno, AVG(sal) FROM emp GROUP BY deptno;

Uso de GROUP BY (II)


La columna referenciada por GROUP BY no es necesario seleccionarla.
Todas las columnas mencionadas en la SELECT que no son funciones de grupo,

tienen que estar en la clusula GROUP BY.

Se

pueden
formar
agrupaciones
sobre
mltiples
columnas:
>SQL> SELECT deptno, job, sum(sal) FROM emp GROUP BY deptno, job;

Clusula HAVING
Use la clusula HAVING para restringir grupos:
o

Los registros son agrupados

Se aplica la funcin de grupo

Los grupos que se corresponden con la clusula HAVING se visualizan


(condicin TRUE).

HAVING puede preceder a GROUP BY, pero se recomienda que se ponga en primer

lugar GROUP BY porque es ms lgico. (1 se calculan grupos y posteriormente

se calcula HAVING sobre esos gpos.).

Sintaxis de HAVING

Das könnte Ihnen auch gefallen