jueves, 19 de agosto de 2010

1Z0-051 - Oracle Database 11g: SQL Fundamentals I (I)

No tengo muy claro que esto pueda servir de ayuda a alguien, es información muy básica, pero ahí va:

Los dos primeros objetivos del examen 1Z0-051 son sencillos:
  • Describir las capacidades de una sentencia SELECT
  • Ejecutar sentencias SELECT básicas
Las sentencias SELECT sirven para recuperar la información almacenada en una base de datos relacional, concretamente en unos objetos llamados tablas. La estructura de estos objectos se basa en el Modelo Relacional, por lo que para consultarlos será necesario que tengamos conceptos del Álgebra Relacional. Ésta la parte más teórica, y aunque voy a intentar centrarme en la práctica (recordemos que el objetivo es el examen), hay tres capacidades de las sentencias SELECT que necesitamos tener claras:
  • Proyección (Projection), restricción por atributos (columnas).
  • Selección (Selection), restricción por tuplas o registros.
  • Unión (Joining), interacción de una tabla con el resto.
Fácil ¿no?

Lo primero será conocer que tablas hay y cual es su estructura. La lista de tablas de las que es propietario el usuario con el que nos hemos conectado podemos obtenerla así:

SQL> select table_name from USER_TABLES;

Para consultar su estructura utilizaremos la sentencia "DESCRIBE":

SQL> describe ;

Esta información sobre las tablas y su estructura son los "Metadatos" y Oracle los almacena en el Diccionario de Datos. Aunque Oracle no distingue entre mayúsculas y minúsculas (excepto en literales) los metadatos suelen estar en mayúsculas.

Por último, hay cuatro puntos básicos sobre las sentencias SELECT a tratar:

Sintaxis
  • Hay que intentar no utilizar palabras reservadas para los objectos (lo típico).
  • Un alias es una alternativa para referencias columnas o expresiones (sobretodo expresiones).
  • Podemos utilizar la clausula DISTINCT para eliminar los duplicados del resultado de una sentencia SELECT (útil sobretodo cuando combinamos columnas).
  • Especial atención a las consultas ciegas (blind queries), tienen la forma "SELECT * FROM " y en función del tamaño de la tabla, podemos provocar un grave problema de rendimiento.
Reglas Básicas
  • Oracle no distingue entre mayúsculas y minúsculas, a menos que utilicemos comillas dobles para los alias o nombre de columnas.
  • Para terminar las sentencias se debe utilizar un terminador, suele ser un punto y coma. Aunque en scripts se suele utilizar el intro y la barra (forward slash '/').
  • Se recomienda escribir las sentencias en varias lineas, mas que nada por "higiene"...
Expresiones y Operadores
  • Sobre aritmética, que voy a contar...
  • Es útil utilizar alias para expresiones, si queremos utilizar varias palabras o conservar las mayúsculas, será necesario utilizar comillas dobles. Por legibilidad podemos utilizar la clausula AS para separar la expresión del alias, pero es opcional.
  • Para trabajar con expresiones literales (no basados en tablas), utilizaremos la pseudo-tabla DUAL.
  • Los literales suele ir entre comillas simples, si queremos utilizar las comillas simples dentro del literal tenemos dos opciones: a) utilizar dos comillas simples para "escapar" el símbolo, b) o utilizar un operador alternativo de la forma: SELECT q'X'mi 'ejemplo' de comillasX'.
Nulos
  • Cuando hablamos de nulos nos referimos a la ausencia de datos.
  • Se pueden marcar ciertas columnas como NOT NULL, para que Oracle no permita que contengan nulos.
  • Cualquier cálculo aritmético con un nulo, da como resultado otro nulo.
  • Oracle permite nulos en campos con claves foráneas, pero no permite nulos en campos con claves primarias.
Seguro que ha sido aburrido, de ahí la imagen... =)

Imagen: SQL Humor

1 comentario:

Anónimo dijo...

te puedo hacer una consulta, sabes si el workshop de la vercion 11g donde se puede conseguir en español?

saludos

hiphopapocalypshit@hotmail.com

muy bueno el blog