Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tenga en cuenta que podemos especificar los nombres de columna en cualquier orden - el orden
no tiene por qu ser el mismo que el de la tabla-; sin embargo los valores debern ser registrados
en el orden especificado para las columnas.
No especificar el nombre de columna en la declaracin INSERT INTO
Si dejamos fuera los nombres de columna en la instruccin INSERT INTO, tendremos que
asegurarnos de que los datos se insertan en el mismo orden de las columnas de la tabla. Por
ejemplo:
INSERT INTO Vendedor
VALUES (11, Mario Gonzales, Sur,13/09/2015)
Insertando valores slo en algunas columnas
En los ejemplos anteriores, insertamos un valor para cada columna de la tabla. A veces, podemos
decidir insertar valores slo en algunas de las columnas y dejar el resto de las columnas en blanco.
Para esos casos, simplemente debemos especificar las columnas que queremos insertar valores
en en nuestra declaracin de SQL, como en el siguiente ejemplo:
Zona_venta Fecha_ing
10
Luis Salas
12
Rosa Garca
15-09-2015
En este caso, el valor para la columna de la Zona_venta en la segunda fila es NULL. NULL
significa que no existen datos.
4. Insertar datos de modo tal que los datos de nmeros telefnicos, estn relacionados con
las personas, asumiendo que una persona puede tener uno o ms telfonos.
Tabla Datos_Venta
Nombre_Columna
Nombre_Almacen
ID_Producto
Ventas
Fecha_inf
Tipo Datos
char(50)
Integer
Float
Datetime
Ejercicios
Asumimos que la tabla Datos_Venta definido arriba contiene los siguientes datos:
Nombre_Almacen ID_Producto Ventas Fecha_inf
Trujillo
101
50
Feb-22-2015
Cusco
120
35
Feb-22-2015
Arequipa
101
40
Feb-22-2015
Chiclayo
80
60
Feb-22-2015
Arequipa
120
20
Feb-22-2015
Chiclayo
101
30
Feb-22-2015
Trujillo
120
35
Feb-23-2015
Cusco
80
25
Feb-23-2015
Trujillo
101
30
Feb-23-2015
Cusco
120
40
Feb-23-2015
Arequipa
101
40
Feb-23-2015
Chiclayo
80
50
Feb-23-2015
4
1) Cul de las siguientes sentencias SQL son vlidas? (Puede haber ms de una respuesta)
a) INSERT INTO Informacion_Almacen SELECT * FROM Datos_Venta WHERE Fecha_inf =
'Feb-22-2015';
b) INSERT INTO Informacion_Almacen SELECT Nombre_Almacen, Ventas, Fecha_inf
FROM Datos_Venta WHERE Fecha_inf = 'Feb-22-2015';
c) INSERT INTO Informacion_Almacen(Ventas, Fecha_inf, Nombre_Almacen) SELECT
SUM(Ventas), Fecha_inf, Nombre_Almacen FROM Datos_Venta WHERE Fecha_inf = 'Feb22-2015';
d) INSERT INTO Informacion_Almacen(Nombre_Almacen, Ventas, Fecha_inf) SELECT
Nombre_Almacen, Ventas, Fecha_inf FROM Datos_Venta WHERE ID_Producto
BETWEEN 80 AND 100;
2) Que datos son insertados en la tabla Informacion_Almacen por la siguiente instruccin
SQL ?
INSERT INTO Informacion_Almacen SELECT Nombre_Almacen, SUM(Ventas), Fecha_inf
FROM Datos_Venta WHERE ID_Producto < 101 GROUP BY Nombre_Almacen, Fecha_inf;
3) Escribir una sentencia SQL que permita recuperar todos los datos de ventas de la
tabla Datos_Venta y almacenar los datos de las ventas totales por da en la
tabla Informacion_Almacen. Cuntas filas sern insertadas?
UPDATE
Una vez que los datos estn en la tabal, podemos tener necesidad de modificar y/o actualizar
dichos datos. Para realizar estas operaciones, podemos usar el comando UPDATE.
La sintaxis para UPDATE es:
UPDATE "nombre_tabla"
SET "columna_1" = [nuevo valor]
WHERE "condicion";
Por ejemplo, supongamos que tenemos la tabla datos_venta, mostrado en la seccin anterior:
Y queremos que and we notice that the sales for Los Angeles on Jan-08-1999 is actually $500
instead of $300, and that particular entry needs to be updated. To do so, we use the following
SQL query:
UPDATE "nombre_tabla"
SET "columna_1" = [nuevo valor]
WHERE "condicion";
En este caso, slo hay una fila que satisface la condicin en la clusula WHERE. Si hay varias filas
que satisfacen la condicin, todos ellos sern modificados. Si no se especifica una clusula
WHERE, se modificarn todas las filas.
DELETE FROM
A veces es posible que deseemos utilizar una consulta para eliminar registros de una tabla.
Para ello, podemos utilizar el comando DELETE FROM. La sintaxis para esto es:
DELETE FROM "nombre_tabla"
WHERE "condicion";
Veamos un ejemplo, utilizando la tabla Informacion_Almacen, y decidimos no mantener ningn
tipo de informacin en esta tabla sobre el almacen de Trujillo. Para lograr esto, escribimos el
siguiente cdigo SQL:
DELETE FROM Informacion_Almacen
WHERE Nombre_Almacen=Trujillo;
En este ejemplo, los criterios que utilizamos para determinar qu filas eliminar es simple.
Tambin podemos usar una condicin ms compleja. A continuacin se muestra un ejemplo
donde se utiliza una subconsulta como condicin. Supongamos que tenemos las dos tablas
siguientes:
Tabla: Producto
Nombre_producto U_medida Precio Stock
Arroz Campero
Aceite Friol
Leche Gloria
Atn Grated
Mermelada A-1
Yogurt Batido Gloria
Lecha Gloria
120
85
75
Unidad 6.50
99
Kilo 9.60
65
Litro 4.90
89
Caja x 24 70
57
Ejercicios
Asumir que tenemos una tabla llamada Usuarios con las siguientes columnas:
Tabla: Usuarios
Nombre Columna
Nombre
Apellido
Fecha_Nac
Genero
Fecha_Creacion
Cual(es) de las siguientes instrucciones SQL es incorrect0?
a) SELECT * FROM Usuarios;
b) SELECT Nombre, Genero, Apellido FROM Usuarios;
c) SELECT Nombre, Apellido Usuarios;
d) SELECT All FROM Usuarios;
2. (Verdadero o Falso) En SQL, el orden de las columnas en un instruccin SELECT debe ser el
mismo que el orden de las columnas en la tabla subyacente. Por ejemplo, en la
tabla Usuarios, debe seleccionar Nombre antes de Apellido.
3. (Verdadero o Falso) Las siguientes instrucciones SQL son equivalentes:
a) Select * From Usuarios;
b) SELECT * FROM Usuarios;
1.
CLAUSULA DISTINCT
La palabra clave SELECT nos permite recuperar toda la informacin de una columna (o
columnas) en una tabla. Esto, por supuesto, necesariamente significa que habr redundancias.
Qu pasa si slo queremos seleccionar cada elemento distinto? Esto es fcil de lograr en SQL.
Todo lo que necesitamos hacer es agregar DISTINCT despus de SELECT.
La sintaxis es la siguiente:
Lazo
Jan-05-1960
Apr-05-2015
Richard Bravo
Jan-07-1975
Apr-05-2015
Gorky
Santos
Oct-08-1983
Apr-09-2015
Jaime
Gonzales Sep-20-1969
Apr-09-2015
Cecilia
Bernal
Apr-15-2015
Nov-20-1979
10
CLAUSULA WHERE
Podemos utilizar la clusula WHERE para filtrar el conjunto de resultados sobre la base de ciertas
condiciones. La sintaxis para utilizar WHERE en la sentencia SELECT es el siguiente:
SELECT <nombre_columna>
FROM <nombre_tabla>
WHERE <condicion>
"Condicin" puede incluir una nica clusula de comparacin (llamada condicin simple) o
mltiples clusulas de comparacin las cuales se combinan utilizando operadores AND u OR
(condicin compuesta).
120
85
75
199
Kilo 9.60
65
Litro 4.90
120
Caja x 24 70
57
SELECT Nombre_Producto
FROM Producto
WHERE Precio>=100;
Lazo
Jan-05-1960
Apr-05-2015
Richard Bravo
Jan-07-1975
Apr-05-2015
Gorky
Santos
Oct-08-1983
Apr-09-2015
Jaime
Gonzales Sep-20-1969
Apr-09-2015
Cecilia
Bernal
Apr-15-2015
Nov-20-1979
Cual de las siguientes sentencias SQL es vlido? (Puede haber ms de una respuesta)
a) SELECT * FROM Usuarios WHERE Genero = 'M';
b) SELECT * WHERE Genero = 'M' FROM Usuarios;
c) SELECT Genero= 'M' FROM Usuarios;
d) SELECT Genero FROM Usuarios WHERE Apellido = 'Bernal';
2. Cul es el resultado de la siguiente consulta?
SELECT * FROM Usuario WHERE Fecha_Creacion = 'Apr-09-2015';
3. (True or False) La condicin utilizada en la clusula WHERE debe incluir una columna
que forma parte de la clusula SELECT.
Cual de las siguientes sentencias SQL es vlido? (Puede haber ms de una respuesta)
1.
12
OPERADOR IN
En SQL, hay dos usos de la palabra clave IN, y se relaciona con la clusula WHERE. Cuando se
utiliza en este contexto, sabemos exactamente el valor de los valores devueltos que queremos
ver por lo menos una de las columnas. La sintaxis para utilizar la palabra clave IN es la siguiente:
SELECT <nombre_columna>
FROM <nombre_tabla>
WHERE <nombre_columna> IN (valor1, valor2, ) ;
El nmero de valores en el parntesis puede ser uno o ms, cada uno con valores separados por
comas. Los valores pueden ser numricos o caracteres. Si slo hay un valor dentro de los
parntesis, esto es equivalente a :
WHERE <nombre_columna> = valor1
Por ejemplo, es posible que desee seleccionar todos los registros de Leche Gloria y Aceite Friol
en la Tabla Producto:
SELECT *
FROM Producto
WHERE Nombre IN (Leche Gloria, Aceite Friol);
13
Ejercicios
Para estos ejercicios, usaremos la tabla Usuarios.
1. Cual de las siguientes sentencias SQL es vlido? (Puede haber ms de una respuesta)
a) SELECT Genero FROM Usuarios IN ('M');
b) SELECT * FROM Usuarios HAVING Genero IN ('M','F');
c) SELECT First_Name, Last_Name FROM Usuarios WHERE Genero IN ('M','F');
d) SELECT DISTINCT First_Name, Last_Name WHERE Genero IN ('M','F');
2. Cuantos registros sern devueltos por la siguiente consulta?
SELECT * FROM Usuarios WHERE Fecha_Creacion IN ('Apr-05-2015','Apr-15-2015');
3. Cuantos registros sern devueltos por la siguiente consulta?
SELET * FROM Usuarios WHERE Genero IN ('M') AND Fecha_Creacion = 'Apr-15-2015');
OPERADOR BETWEEN
El operador BETWEEN se utiliza para seleccionar un rango. La sintaxis para el operador
BETWEEN es el siguiente:
SELECT <nombre_columna>
FROM <nombre_tabla>
WHERE <nombre_columna> BETWEEN valor1 AND valor2 ;
Esto seleccionar todas las filas cuya columna tiene un valor entre 'valor1' y 'valor2'.
Por ejemplo, es posible que desee seleccionar una vista de toda la informacin de ventas de 6 de
enero de 2015 y 30 de junio de 2015, de la siguiente tabla:
Table: Informacion_Almacen
Nombre_Almacen Ventas Fecha_Inf
Lima
3500
Ene-10-2015
Cusco
1250
Mar-07-2015
Arequipa
2300
Jun-08-2015
Lima
1700
Ago-08-2015
Chiclayo
1900
Sep-15-2015
14
Tecleamos:
SELECT *
FROM Informacion_Almacen
WHERE Fecha_Inf BETWEEN (Ene-06-2015 AND Jun-30-2015);
Tengamos en cuenta que la fecha puede ser almacenada en diferentes formatos, por lo que se
deber considerar a la hora de realizar la consulta.
Resultado?....
BETWEEN es un operador inclusivo, lo que significa que 'valor1' y 'valor2' se incluyen en el
resultado. Si queremos excluir 'valor1' y 'valor2' pero incluimos todo, tenemos que cambiar la
consulta a :
SELECT <nombre_columna>
FROM <nombre_tabla>
WHERE nombre_columna> valor1 AND nombre_columna<valor2 ;
SELECT *
FROM Informacion_Almacen
WHERE Ventas NOT BETWEEN 1000 AND 2000);
Tambin podemos usar el operador BETWEEN para excluir un rango de valores al aadir NOT
delante de BETWEEN. En el ejemplo anterior, si queremos mostrar todas las filas donde la
columna Ventas no es entre 1000 y 2000, utilizaremos el siguiente SQL:
Ejercicios:
Para estos ejercicios, asumiremos tener una tabla llamada Ventas_Vendedor con los siguientes
datos:
Tabla: Ventas_Vendedor
Nombre Apellido Fecha_Nac Genero Fecha_Ingreso Total_Ventas
Sofia
Lazo
Jan-05-1960 F
Apr-05-2015
500
Richard Bernal
Jan-07-1975 M
Apr-05-2015
200
Jaime
Santos
Oct-08-1983 M
Apr-09-2015
350
Carlos
Huaman Sep-20-1969 M
Apr-09-2015
80
Julia
Willman Nov-20-1979 F
Apr-15-2015
210
1. Cual de las siguientes sentencias SQL es vlido? (Puede haber ms de una respuesta)
a) SELECT * FROM Ventas_Vendedor WHERE Total_Ventas BETWEEN 200 OR 300;
b) SELECT * FROM Ventas_Vendedor WHERE Total_Ventas IS BETWEEN 200 OR 300;
15
USO DE COMODIN
Hay situaciones en los que queremos hacer coincidir una cadena patrn. Para ello, tendremos
que emplear el concepto de comodn. En SQL, hay dos comodines:
1. % (Signo de porcentaje) representa cero, uno o ms caracteres.
2. _ (Guin bajo) representa exactamente un carcter.
Los comodines se utilizan con la palabra clave LIKE en SQL.
A continuacin se presentan algunos ejemplos de uso de comodines:
'A_Z': Todo cadena que comienza con "A", otro caracter, y al final con la 'Z'. Por ejemplo, 'ABZ'
y 'A8Z' , ambos satisfacen la condicin, mientras que 'AKKZ' no (porque hay dos caracteres
entre A y Z en lugar de uno).
'ABC%': Todas las cadenas que comienzan con 'ABC'. Por ejemplo, 'ABCD' y 'ABCABC', ambos
satisfacen la condicin.
'% XYZ': Todas las cadenas que terminan con "XYZ". Por ejemplo, 'WXYZ' y 'ZZXYZ'
satisfaceran la condicin.
'% AN%': Todas las cadenas que contienen el patrn 'AN' en cualquier lugar. Por ejemplo, 'LOS
ANGELES' y 'SAN FRANCISCO', ambos satisfacen la condicin.
'_AN%': Todas las cadenas que contienen un carcter, luego 'AN', seguida de cualquier otra cosa.
Por ejemplo, "SAN FRANCISCO" satisface la condicin, mientras que 'LOS ANGELES' no
cumplira la condicin.
16
LIKE
LIKE es otra palabra clave que se utiliza en la clusula WHERE. Bsicamente, LIKE permite
hacer una bsqueda basada en un patrn en lugar de especificar exactamente lo que se desea
(como en IN) o especificar un rango de valores (como en BETWEEN).
La sintaxis es la siguiente:
SELECT <nombre_columna>
FROM <nombre_tabla>
WHERE <nombre_columna> LIKE [Patron] ;
[PATRON] frecuentemente consiste de comodines. A continuacin se usan ejemplos para ver
cmo se utiliza el comodn junto a LIKE:
SELECT *
FROM Ventas_Vendedor
WHERE Nombre LIKE J%;
SELECT *
FROM Ventas_Vendedor
WHERE Apellido LIKE %a%;
Ejercicios:
Para estos ejercicios, asumiremos tener una tabla llamada Ventas_Vendedor consignado
anteriormente:
1) Cual de las siguientes sentencias SQL es vlido? (Puede haber ms de una respuesta)
a) SELECT Nombre, Last_Name FROM Ventas_Vendedor WHERE NombreLIKE 'A%'
Apellido LIKE 'W%';
b) SELECT Nombre, Apellido FROM Ventas_Vendedor WHERE NombreLIKE 'J%' AND
Apellido LIKE 'W%';
c) SELECT Nombre, Apellido FROM Ventas_Vendedor NombreLIKE 'J%' AND Apellido LIKE
'W%';
d) SELECT Nombre, Apellido FROM Ventas_Vendedor WHERE NombreLIKE 'J%', Apellido
LIKE 'W%';
2) Cuantos registros sern devueltos por la siguiente consulta? (Asumir que la base de datos
est configurado para ser case-insensitive)
SELECT * FROM Ventas_Vendedor WHERE Apellido LIKE '%l_e%';
17
3) Cuantos registros sern devueltos por la siguiente consulta? (Asumir que la base de datos
est configurado para ser case-insensitive)
SELECT * FROM Ventas_Vendedor WHERE NombreLIKE '%a%' OR Apellido LIKE '%e%';
ORDER BY
Hasta ahora, hemos visto cmo obtener datos de una tabla utilizando comandos SELECT y
WHERE. A menudo, sin embargo, tenemos necesidad de listar la salida en un orden
determinado. Esto podra ser en orden ascendente, en orden descendente, o podra ser sobre la
base de cualquier valor numrico o valor de texto. En tales casos, podemos usar la palabra clave
ORDER BY para lograr nuestro objetivo.
La sintaxis de una instruccin ORDER BY es el siguiente:
SELECT <nombre_columna>
FROM <nombre_tabla>
WHERE [condicion ]
ORDER BY nombre_columna [ASC, DESC] ;
El [ ] significa que la sentencia WHERE es opcional. Sin embargo, si existe una clusula WHERE,
se trata antes de la clusula ORDER BY. ASC significa que los resultados se muestran en orden
ascendente y DESC significa que los resultados sern mostrados en orden descendente. Si no se
especifica ninguno, el valor predeterminado es ASC.
Es posible ordenar por ms de una columna. En este caso, la clusula ORDER BY anterior se
convierte en:
ORDER BY nombre_columna1 [ASC, DESC], nombre_columna2 [ASC, DESC] ;
Suponiendo que elegimos orden ascendente para ambas columnas, la salida se ordenar en
orden ascendente de acuerdo con la columna 1. Si hay un empate en el valor de la columna 1, a
continuacin, ordenar en orden ascendente por la columna 2.
Por ejemplo, es posible que desee mostrar el contenido de la tabla Informacin_Almacen por
ventas, en orden descendente:
18
10
15
25
Podemos usar la siguiente consulta SQL para ordenar el resultado por ingresos (definido como
Precio * Unidades):
SELECT Producto_ID, Precio*Cantidad Venta
FROM Ventas_Producto
ORDER BY Precio * Cantidad DESC ;
Exercises
For these exercises, assume we have a table called User_Sales with the following data:
Table User_Sales
19
Total_Sales
Sophie
Lee
Jan-05-1960 F
Apr-05-2015
500
Richard
Brown
Jan-07-1975 M
Apr-05-2015
200
Jamal
Santo
Oct-08-1983 M
Apr-09-2015
350
Casey
Healy
Sep-20-1969 M
Apr-09-2015
80
Jill
Wilkes
Nov-20-1979 F
Apr-15-2015
210
1. Which of the following SQL statement is valid? (There can be more than one answer)
a) SELECT * FROM User_Sales ORDER BY Total_Sales;
b) SELECT * FROM User_Sales ORDER BY Last_Name DESC;
c) SELECT * FROM User_Sales ORDER BY First_Name WHERE Total_Sales > 100;
d) SELECT * FROM User_Sales ORDER BY Last_Name, First_Name;
2. Cul es el resultado de la siguiente consulta?
SELECT * FROM User_Sales WHERE Join_Date IN ('Apr-05-2015','Apr-15-2015') ORDER
BY Total_Sales;
3. Cul es el resultado de la siguiente consulta?
SELECT * FROM User_Sales ORDER BY Join_Date DESC, Total_Sales;
GROUP BY
La clusula GROUP BY se usa para generar valores de agregado para cada fila del conjunto de
resultados. Cuando se usan sin una clusula GROUP BY, las funciones de agregado(SUM, AVG,
COUNT, MAX, MIN) slo devuelven un valor de agregado para una instruccin SELECT.
Recuerdemos que se utiliza la palabra clave SUM para calcular las ventas totales para todas las
tiendas? Qu pasa si queremos calcular las ventas totales de cada tienda? Bueno, tenemos que
hacer dos cosas: En primer lugar, tenemos que asegurarnos de que seleccionamos el nombre de
la tienda, as como las ventas totales. En segundo lugar, tenemos que asegurarnos de que todas
las cifras de ventas se agrupan por las tiendas.
La sintaxis SQL correspondiente es:
SELECT nombre_columna1 SUM (nombre_columna2)
FROM nombre_tabla
GROUP BY nombre_columna1 ;
Ilustramos su uso con la tabla : Informacion_Almacen
20
Tabla: Informacion_Almacen
Nombre_Almacen Ventas Fecha_Inf
Lima
3500
Ene-10-2015
Cusco
1250
Mar-07-2015
Arequipa
2300
Jun-08-2015
Lima
1700
Ago-08-2015
Chiclayo
1900
Sep-15-2015
Queremos encontrar las ventas totales de cada tienda. Para ello, deberemos realizar la
consulta:
SELECT Nombre_Almacen SUM (Ventas)
FROM Informacion_Almacen
GROUP BY Nombre_Almacen ;
Un uso comn de la funcin GROUP BY est en manejo de un perodo de tiempo, que puede ser
meses, semanas, das, o incluso horas. Este tipo de consulta se combina a menudo con ORDER
BY palabra clave para proporcionar un resultado de la consulta que muestra una serie de tiempo.
21
Por ejemplo, para encontrar las ventas totales por da de la tabla Informacion_Almacen,
utilizamos el siguiente SQL:
SELECT fecha_inf SUM (Ventas)
FROM Informacion_Almacen
GROUP BY fecha_inf ;
Ejercicios
Para estos ejercicios, asumimos que tenemos una tabla llamada Ventas_Region con los
siguientes datos:
Tabla Ventas_Region
Region Ao Pedidos Total_Ventas
Oeste 2013 1560
325000
380000
148000
185000
Este
2013 1760
375000
Este
2014 2220
450000
Sur
2013 1790
388000
Sur
2014 1695
360000
HAVING
Otra cosa que con frecuencia se desea hacer, es limitar la salida sobre la base de la suma
correspondiente (o cualquier otra funcin de agregado). Por ejemplo, podramos querer ver
solamente las tiendas con ventas de ms de S/. 1.500. En lugar de utilizar la clusula WHERE en
22
la sentencia SQL, podemos utilizar la clusula HAVING, que est reservado para funciones de
agregado. La clusula HAVING se coloca generalmente cerca del final de la instruccin SQL, y
una declaracin de SQL con la clusula HAVING puede o no incluir la clusula GROUP BY.
La sintaxis para HAVING es:
SELECT ["nombre_columna1"], Funcion("nombre_columna2")
FROM "nombre_tabla"
[GROUP BY "nombre_columna1"]
HAVING (condicion de funcion aritmetica);
Nota: es posible seleccionar cero, una, o ms columnas, adems de la funcin de agregado. Si
seleccionamos la columna cero, no hay necesidad de la clusula GROUP BY.
En nuestro ejemplo, tabla Informacion_Almacen,
Tabla: Informacion_Almacen
Nombre_Almacen Ventas Fecha_Inf
Lima
3500
Ene-10-2015
Cusco
1250
Mar-07-2015
Arequipa
2300
Jun-08-2015
Lima
1700
Ago-08-2015
Chiclayo
1900
Sep-15-2015
23
Ejercicios
Para estos ejercicios, asumimos que tenemos una tabla llamada Ventas_Region con los
siguientes datos:
Tabla Ventas_Region
Region Ao Pedidos Total_Ventas
Oeste 2013 1560
325000
380000
148000
185000
Este
2013 1760
375000
Este
2014 2220
450000
Sur
2013 1790
388000
Sur
2014 1695
360000
ALIAS
A continuacin centraremos nuestra atencin en el uso de alias. Hay dos tipos de alias que se
utilizan con mayor frecuencia: alias de columna y alias de tabla.
a) Alias de columna para ayudar a la organizacin de la salida. En el ejemplo anterior, cada vez
que vemos las ventas totales, que est catalogado como SUM (Ventas). Si bien esto es
comprensible, podemos imaginar casos en que la cabecera de la columna puede ser
complicado (sobre todo si se trata de varias operaciones aritmticas). El uso de un alias de
columna sera muy util para que la salida sea mucho ms legible.
24
b) El segundo tipo de alias es el alias de la tabla. Esto se logra al poner un alias directamente
despus del nombre de la tabla en la clusula FROM. Esto es conveniente cuando se desea
obtener informacin de dos tablas separadas (el trmino tcnico es "realizar join '). La
ventaja de utilizar un alias de tabla al hacer joins es evidente cuando hablamos de union.
Sintaxis, tanto para los alias de columna y de tabla:
SELECT "alias_table"."nombre_columna1" "alia_column"
FROM "nombre_tabla" "alias_tabla";
En pocas palabras, los dos tipos de alias se colocan directamente despus del elemento al que
se desea asignar el alias, separado por un espacio en blanco. De nuevo utilizamos nuestra tabla,
Infirmacion_Almacen. Utilizaremos el mismo ejemplo mostrado en la seccin de GroupBy,
excepto que hemos puesto tanto en el alias de columna y el alias de tabla:
SELECT A1.Nombre_Almacen Almacen SUM (A1.Ventas) Total Ventas
FROM Informacion_Almacen A1
GROUP BY A1.Nombre_Almacen ;
Tenga en cuenta la diferencia en el resultado: los ttulos de columna ahora son diferentes. Ese
es el resultado de usar el alias de columna. En lugar de la "Sum (Ventas)" un tanto crptica, ahora
tenemos "Total Ventas", que es mucho ms comprensible, como el encabezado de la columna.
La ventaja de usar un alias de tabla no es aparente en este ejemplo. Sin embargo, ellos se
pondrn de manifiesto cuando se realizenJoin(relaciones entre tablas o uniones).
AS
La palabra clave que se utiliza para asignar un alias a la columna o una tabla es AS. Se inserta
entre el nombre de la columna y el alias de columna o entre el nombre de la tabla y el alias de
tabla. La sintaxis para utilizar AS es el siguiente:
Hay una diferencia entre entre usar un alias sin AS y con AS en SQL? La respuesta es no, no hay
ninguna diferencia funcional, ya que ambas versiones lograrn exactamente lo mismo. El uso de
AS es simplemente una manera ms explcita de mencionar el alias.
FUNCIONES SQL
SQL implementa varias funciones aritmticas:
AVG: Promedio de una columna.
COUNT: Numero de registros.
MAX: Mayor valor de una columna.
MIN: Minimo valor de una columna.
SUM: Suma de la columna.
Adems de usar funciones, tambin es posible utilizar SQL para realizar tareas sencillas tales
como adicin (+) y resta (-). Para los datos de tipo carcter, hay tambin varias funciones de
cadenas disponibles, como la concatenacin, trim(recortar), y funciones de
Substring(subcadena).
La sintaxis para utilizar las funciones es:
SELECT "tipo_de_funcion" ("nombre_columna")
FROM "nombre_tabla";
Average
SQL utiliza la funcin AVG () para calcular el promedio de los datos de una columna. La sintaxis
para utilizar esta funcin es:
SELECT AVG ("nombre_columna")
FROM "nombre_tabla";
Por ejemplo, si queremos obtener el promedio de todas las ventas de la siguiente tabla:
Tabla Informacion_Almacen
Nombre_Almacen Ventas Fecha_inf
Lima
1500 Ene-05-2015
Cusco
250 Ene-07-2015
Lima
300 Ene-08-2015
Arequipa
700 Ene-08-2015
26
Count
Otra funcin aritmtica es COUNT. Esta funcin nos permite contar el nmero de filaa de una
determinada tabla. La sintaxis es:
SELECT COUNT ("nombre_columna")
FROM "nombre_tabla";
27
28