SQL Introducción
Enviado por er.alvarez • 2 de Mayo de 2014 • 5.652 Palabras (23 Páginas) • 216 Visitas
Introducción al SQL
Selección
________________________________________
La recuperación de los datos en el lenguaje SQL se realiza mediante la sentencia SELECT, seleccionar. Esta sentencia permite indicar al SGBD la información que se quiere recuperar. Esta es la sentencia SQL, con diferencia, más habitual. La sentencia SELECT consta de cuatro partes básicas:
• La cláusula SELECT seguida de la descripción de lo que se desea ver, los nombres de las columnas a seleccionar. Esta parte es obligatoria.
• La cláusula FROM seguida de la especificación de las tablas de las que se han de obtener los datos. Esta parte es obligatoria.
• La cláusula WHERE seguida por un criterio de selección, una condición. Esta parte es opcional.
• La cláusula ORDER BY seguida por el criterio de ordenación. Esta parte es opcional.
Una primera aproximación a la sintaxis de la sentencia SELECT puede mostrarnos la siguiente expresión:
SELECT {* | {columna,}+}
FROM {tabla,}+
[WHERE condición]
[ORDER BY {expresiónColumna [ASC | DESC],}+];
Como una primera utilización de la sentencia SELECT podemos utilizarla para ver todas las tablas que tenemos en la base de datos.
SQL> select table_name from user_tables;
TABLE_NAME
------------------------------
DEP
EMP
Un breve análisis de la sentencia anterior nos permite observar que hemos consultado sobre la columna llamada table_name almacenada en la tabla user_tables, que es la tabla que guarda la información sobre todas las tablas de cada usuario.
Selección de Columnas
Las columnas a seleccionar se enumeran sin más en la cláusula SELECT. Si se desea seleccionar todas las columnas de una tabla se puede hacer enumerando a todas las columnas o colocando un asterisco, *, en su lugar.
Cuando se consulta una base de datos, los nombres de las columnas se usan como cabeceras de presentación. Si éste resulta demasiado largo, corto o críptico, puede cambiarse con la misma sentencia SQL de consulta, creando un alias de columna.
SQL> select nombre "Departamento", loc "Está en" from dep;
Departamento Esta en
--------------- ----------
Administracion Valladolid
I+D Boecillo
Produccion Cigales
Cláusula FROM
La cláusula FROM define las tablas de las que se van a seleccionar las columnas.
Se puede añadir al nombre de las tablas el usuario propietario de las mismas de la forma usuario.tabla. De esta manera podemos distinguir entre las tablas de un usuario y otro. Oracle siempre considera como prefijo el nombre del propietario de las tablas, aunque no se lo indiquemos. De esta forma dos o más usuarios pueden tener tablas que se llamen igual sin que surjan conflictos. Si quisiéramos acceder a las filas de la tabla dep del usuario jperez, (ademas de tener privilegios de lectura sobre esa tabla) deberíamos escribir la siguiente sentencia SQL:
SQL> select * from jperez.dep;
También se puede asociar un alias a las tablas para abreviar los nombres de las tablas. Un ejemplo se puede ver en la sentencia SQL siguiente:
SQL> select d.nombre from dep d;
Cláusula WHERE
Hasta ahora hemos visto como puede utilizarse la sentencia SELECT para recuperar todas las columnas o un subconjunto de ellas de una tabla. Pero este efecto afecta a todas las filas de la tabla, a menos que especifiquemos algo más en la cláusula WHERE. Es aquí donde debemos proponer la condición que han de cumplir todas las filas para salir en el resultado de la consulta. La complejidad del criterio de búsqueda es prácticamente ilimitada, y en él se pueden conjugar operadores de diversos tipos con funciones de columnas, componiendo expresiones más o menos complejas.
Operadores de Comparación
Operador Operación Ejemplo
= Igualdad select * from emp where cod_dep = 100;
!=, <>, ^= Desigualdad select * from emp where cod_dep != 100;
< Menor que select * from emp where cod_dep < 200;
> Mayor que select * from emp where cod_dep > 200;
<= Menor o igual que select * from emp where cod_dep <= 200;
>= Mayor o igual que select * from emp where cod_dep >= 200;
in Igual a cualquiera de los miembros entre paréntesis select * from emp where cod_dep in (100, 300);
not in Distinto a cualquiera de los miembros entre paréntesis select * from emp where cod_dep not in (200);
between Contenido en el rango select * from emp where cod_emp between 100 and 199;
not between Fuera del rango select * from emp where cod_emp not between 100 and 199;
like '_abc%' Contiene la cadena 'abc' a partir del segundo carácter y luego cualquier cadena de caracteres select * from emp where nombre like 'Ma%';
Operadores de Aritméticos
Operador Operación Ejemplo
+ Suma select nombre, salario+comision from emp where oficio='VENDEDOR';
- Resta select nombre from emp where sysdate-fecha_alta > 365;
* Producto select nombre, salario*12 from emp;
/ División select nombre, salario/31 from emp;
Operadores de Cadenas de Caracteres
Operador Operación Ejemplo
|| Concatenación select nombre||oficio from emp;
Cláusula ORDER BY
Se utiliza para especificar el criterio de ordenación de la respuesta a la consulta. Por defecto la ordenación es ascendente, aunque se puede especificar un orden descendente. La ordenación se puede establecer sobre el contenido de columnas o sobre expresiones con columnas. A continuación se puede ver un ejemplo de uso de la cláusula ORDER BY en la que quiere obtener un listado de los empleados ordenado de manera descendente por su salario y en caso de igualdad de salario, ordenado ascendentemente por su nombre.
SQL> select nombre, salario from emp order by salario desc, nombre;
NOMBRE SALARIO
---------- ----------
Cano 450000
Perez 350000
Roncal 350000
Yuste 350000
Recio 300000
Sastre 300000
Martin 235000
Garcia 225000
Garcia 210000
Mateo 200000
Santana 200000
Rueda 175000
Lopez 150000
Sanz 150000
14 rows selected.
Cláusula
...