sábado, 7 de abril de 2012

AS en SQL

Volvamos a usar el ejemplo del post anterior.
Select * from Personas tb where tb.nombre in ('Pepe', 'Pedro')

Sin haber avisado hemos usado un alias en una de sus formas.

Con un alias podemos renombrar una columna o una tabla para crear sql más simples. Normalmente se utilizan para reducir el texto de la columna o tabla de tal forma que es más sencillo leer la sentencia completa.

Los alias suelen ser normalmente textos muy cortos, por ejemplo si la columna se llama Personas_Juridicas, se le podría llamar al alias "pj" y evitar tener que escribir todo el texto de: Personas_Juridicas
Sintaxis:
SELECT 'nombre_columna'(s) FROM 'tabla' AS 'alias'  -- Con esta sentencia añadiriamos un alias a una tablas
SELECT
'nombre_columna' AS 'alias' FROM 'tabla' -- Con esta sentencia añadiriamos un alias a una columna

En SQL Oracle al menos, no es totalmente necesario utilizar el "AS". Se puede evitar escribirlo y igualmente se nos ejecutaría la SQL. 
Select * from Personas tb where tb.nombre in ('Pepe', 'Pedro')

Ejemplo:
La tabla lo llamaremos "Personas"

nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32

Buscaremos todas las columnas, de aquellas personas que se llamen Pepe y tengan menos de 20 años, usando alias en columnas y tablas
Select tb.nombre as Col1, tb.apellido Col2, tb.edad Col3 from Personas tb where tb.nombre in ('Pepe') and tb.edad < 20

El resultado de ejecutar la sql anterior es:
Col1 Col2 Col3
Pepe Cuenca 18

Sin los aliases no podriamos dar nombre a las columnas del resultado. Y deberiamos de haber usar el nombre completo de la tabla en la parte de condiciones (where)

IN en SQL


Sigamos con el ejemplo del post anterior: Select * from 'tabla' tb where tb.nombre = 'Pepe'

Añademosles una condición tras el where, en este caso la condición "IN".

Select * from 'tabla' tb where tb.nombre in ('Pepe', 'Pedro')

Con esto conseguimos buscar toda aquella información de aquellos que tienen nombre Pepe o Pedro. En el post anterior solamente buscábamos la información de Pepe.


El equivalente a esta condición sería Select * from 'tabla' tb where tb.nombre ='Pepe' or tb.nombre= 'Pedro'
 
Sintaxis:
SELECT 'nombre_columnas(s)'
FROM 'tabla'
WHERE 'nombre_columna' IN (valor1,valor2,...)

Ejemplo:
La tabla lo llamaremos "Personas"

nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32

Buscaremos todas las columnas de aquellas personas que se llamen Pepe y Pedro.
Select * from Personas tb where tb.nombre in ('Pepe', 'Pedro')

El resultado de ejecutar la sql anterior es:
nombre apellido edad
Pepe Cuenca 18
Pedro Rodriguez 32

Sql para buscar datos de una base de datos


SQL puede servirnos para obtener los datos de una base de datos, sin por ejemplo no tener que buscar usando la aplicación como puede ser oracle e-business suite.

Esta opción es más a nivel de programador, técnico etc. No es una opción que pueda usarse por cualquiera de los usuarios de la herramienta Oracle E-Business Suite.

En el siguiente apartado nos centraremos en la estructura que tiene que tener una sql sin adentrarnos aún en los casos específicos.

Antes de comenzar a ejecutar una sentencia sql, es necesario saber su estructura base, como la siguiente:

Select * from 'tabla' tb where tb.nombre = 'Pepe'
Queremos sacar todos los datos de la 'tabla', pero siempre y cuando el nombre sea 'Pepe'

1.- La parte de Select * -- Se usa para decirle que columna de la tabla queremos visualizar. Si se pone un * (asterisco), la sentencia nos mostrará todas las columnas de la tabla.

2.- from 'tabla' -- La posterior búsqueda y la obtención de las columnas a visualizar del punto 1, saldrán de esta tabla de base de datos (donde se encuentran los datos que nos interesan). from 'tabla' tb -- El tb que he puesto detrás de la tabla es el alias, en este caso con una sola tabla no es necesario pero mas adelante cuando enlacemos varias tablas verán su significado.


3.- where -- es donde ponemos la condición (tb.nombre = 'Pepe' ). La sentencia pudiera estar sin condición (where) , en tal caso nos sacaría la información de la 'tabla' en su totalidad.

En los siguientes post nos adentraremos más en condiciones más complicadas.