Está en la página 1de 19

Funciones y

Subconsultas
Índice

1 2 3
Objetivos Contenido de Clase Conclusiones
Objetivos
Objetivo General

Bienvenido.
Se busca que el estudiante conozca que es una base de datos desde una perspectiva más “física” y que se comience a familiarizar con algunos
conceptos de SQL.
También, el propósito de esta presentación es que conozca que es SQL Server como gestor de bases de datos y lo que un Reporting Analyst
tiene como alcance hacer sobre estas bases.

Objetivos Específicos

• Conocer que es SQL


• Que es Transact – SQL
• Conocer a SQL Server 2016
• Poder usar Select-From-Where
Contenido de Clase
Funciones

SQL Server tiene definidas varias funciones que pueden usarse para resolver algunas tareas simples ya definidas.

Varias de estas tareas se resumen en un conjunto de funciones matemáticas y de texto.

Acá veremos solo algunas de esas funciones que pueden ser de utilidad, pero el gestor permite usa otras funciones adicionales.

Dentro de ellas tenemos:


• Funciones de texto
• Funciones matemáticas
• Funciones de Fechas
Funciones de texto

SUBSTRING(cadena,inicio,longitud) SELECT SUBSTRING('Buenas tardes',8,6);


Devuelve una parte de la cadena especificada como primer argumento, empezando
desde la posición especificada por el segundo argumento y de tantos caracteres de --================--
longitud como indica el tercer argumento. retorna "tardes"

STR(numero,longitud,cantidad decimales) SELECT STR(123.456, 5, 3);


Convierte números a caracteres; el primer parámetro indica el valor numérico a
convertir, el segundo la longitud del resultado (debe ser mayor o igual a la parte
entera del número más el signo si lo tuviese) y el tercero, la cantidad de decimales. El --================--
segundo y tercer argumento son opcionales y deben ser positivos retorna '123.4';
STUFF(cadena1,inicio,cantidad,cadena2)
SELECT STUFF('abcde',3,2,'opqrs');
Inserta la cadena enviada como cuarto argumento, en la posición indicada en el segundo
argumento, reemplazando la cantidad de caracteres indicada por el tercer argumento en --================--
la cadena que es primer parámetro. retorna "abopqrse"
Es decir, coloca en la posición 2 la cadena "opqrs" y reemplaza 2 caracteres de la primera
cadena.

LEN(cadena) SELECT LEN('Hola');


Retorna la longitud de la cadena enviada como argumento. "len" viene de length, que
significa longitud. --================--
retorna '4';

SELECT CHAR(65);
CHAR(x)
Retorna un carácter en código ASCII del entero enviado como argumento. --================--
retorna “A"

LEFT(cadena, longitud) SELECT LEFT('buenos dias',8);

Retorna la cantidad (longitud) de caracteres de la cadena comenzando desde la izquierda, --================--


primer carácter. retorna 'buenos d';
RIGHT(cadena, longitud) SELECT RIGHT('buenos dias',8);
Retorna la cantidad (longitud) de caracteres de la cadena comenzando desde
la derecha, último caracter. --================--
retorna “nos dias"

LOWER(cadena) SELECT LOWER('HOLA ESTUDIAnte');


Retornan la cadena con todos los caracteres en minúsculas. lower significa
reducir en inglés. --================--
retorna 'hola estudiante';

SELECT
REPLACE(cadena,cadenareemplazo,cadenareemplazar) REPLACE('xxx.teleperformance.com','x','w’);
Retorna la cadena con todas las ocurrencias de la sub cadena reemplazo por
la sub cadena a reemplazar. --================--
retorna “www.teleperformance.com"

UPPER(cadena) SELECT UPPER('HOLA ESTUDIAnte');

Retornan la cadena con todos los caracteres en mayúsculas. --================--


retorna 'HOLA ESTUDIANTE';
Funciones Matemáticas
Las funciones matemáticas realizan operaciones con expresiones numéricas y retornan un resultado, operan con tipos de datos numéricos.

SELECT ABS(-20);
ABS(x)
Retorna el valor absoluto del argumento "x". --================--
retorna 20

SELECT CEILING(12.34);
CEILING(x)
Redondea hacia arriba el argumento "x". --================--
retorna 13;

SELECT FLOOR(12.34);
FLOOR(x)
Redondea hacia abajo el argumento "x". --================--
retorna 12

SELECT 10%3;
% (operador módulo) retorna 1.
SELECT 10%2;
Devuelve el resto (lo que sobra) de una división.
retorna 0.
Funciones de Fechas

SELECT GETDATE();
GETDATE ()
En SQL Server (Transact-SQL), la función GETDATE devuelve la fecha --================--
y hora actuales. retorna ‘2021-02-11 18:17:28.160’(Fecha y
hora del día)

SELECT DATEPART(year, ‘2021/04/28');


DATEPART(intervalo,fecha) Retorna 2014
En SQL Server (Transact-SQL), la función DATEPART devuelve una
parte específica de una fecha determinada, como un valor entero. SELECT DATEPART(month, ‘2021/04/28');
Retorna 4

SELECT DATEPART(day, ‘2021/04/28');


Result: 28
DATEADD(intervalo, número, fecha) SELECT DATEADD(year, 1, ‘2021/04/28’);
Retorna: ‘2022-04-28 00:00:00.000’
En SQL Server (Transact-SQL), la función DATEADD devuelve una
fecha después de la cual se ha agregado un cierto intervalo de fecha SELECT DATEADD(month, 1, ‘2021/04/28');
/ hora.
Retorna ‘2021-05-28 00:00:00.000'

SELECT DATEDIFF(year, ‘2021/04/28',


‘2021/04/28');
Retorna: 2
DATEDIFF( interval, date1, date2 )
SELECT DATEDIFF(month, ‘2021/01/01',
En SQL Server (Transact-SQL), la función DATEDIFF devuelve la ‘2021/04/28');
diferencia entre dos valores de fecha, según el intervalo Result: 3
especificado.
SELECT DATEDIFF(day, ‘2021/01/01',
‘2021/04/28');
Result: 117
Sub Consultas

¿Qué es una subconsulta en SQL Server?


En SQL Server, una subconsulta es una consulta dentro de una consulta. Puede crear subconsultas dentro de sus declaraciones SQL. Estas
subconsultas pueden residir en la cláusula WHERE, la cláusula FROM o la cláusula SELECT.

Nota
En SQL Server (Transact-SQL), una subconsulta también se denomina CONSULTA INTERNA o SELECCIÓN INTERNA.
En SQL Server (Transact-SQL), la consulta principal que contiene la subconsulta también se denomina CONSULTA EXTERIOR o SELECCIÓN
EXTERIOR.
Sub Consultas - Clausula WHERE

SELECT p.product_id, p.product_name


La mayoría de las veces, la subconsulta se encontrará en la cláusula FROM products p
WHERE. Estas subconsultas también se denominan subconsultas WHERE p.product_id IN
anidadas. Por ejemplo: (SELECT inv.product_id
FROM inventory inv
WHERE inv.quantity > 10);

(SELECT inv.product_id
La parte de la subconsulta de la instrucción SELECT anterior es: FROM inventory inv
WHERE inv.quantity > 10);

Esta subconsulta le permite encontrar todos los valores product_id de la tabla de inventario que tienen una cantidad mayor que 10. La
subconsulta se usa para filtrar los resultados de la consulta principal usando la condición IN.
Sub Consultas - Clausula FROM

SELECT suppliers.supplier_name, subquery1.total_amt


FROM suppliers,
También se puede encontrar una subconsulta en la cláusula (SELECT supplier_id, SUM(orders.amount) AS total_amt
FROM. Se denominan vistas en línea. Por ejemplo: FROM orders
GROUP BY supplier_id) subquery1
WHERE subquery1.supplier_id = suppliers.supplier_id;

(SELECT supplier_id, SUM(orders.amount) AS total_amt


En este ejemplo, hemos creado una subconsulta en la cláusula
FROM de la siguiente manera: FROM orders
GROUP BY supplier_id) subquery1

A esta subconsulta se le ha asignado un alias con el nombre subconsulta1. Este será el nombre utilizado para hacer referencia a esta
subconsulta o cualquiera de sus campos.
Sub Consultas - Clausula SELECT

SELECT e1.last_name, e1.first_name,


También se puede encontrar una subconsulta en la cláusula SELECT. Por lo
(SELECT MAX(salary)
general, se utilizan cuando desea recuperar un cálculo utilizando una función
agregada como la función SUM, COUNT, MIN o MAX, pero no desea que la FROM employees e2
función agregada se aplique a la consulta principal. Por ejemplo: WHERE e1.employee_id = e2.employee_id) subquery2
FROM employees e1;

(SELECT MAX(salary)
En este ejemplo, hemos creado una subconsulta en la cláusula SELECT de la
siguiente manera: FROM employees e2
WHERE e1.employee_id = e2.employee_id) subquery2

La subconsulta tiene un alias con el nombre subconsulta2. Este será el nombre utilizado para hacer referencia a esta subconsulta o cualquiera de
sus campos.
El truco para colocar una subconsulta en la cláusula select es que la subconsulta debe devolver un solo valor. Esta es la razón por la que una
función agregada como la función SUM, COUNT, MIN o MAX se usa comúnmente en la subconsulta.
Conclusiones
• Las funciones son códigos definidos que permiten resolver
tareas simples (y usualmente repetitivas).
• SQL Server contiene varias funciones ya definidas, se deben
consultar cuales son las funciones que se ofrecen según la
versión de SQL Server.
• El uso de estas funciones simplifica los códigos y permiten hacer
desarrollos más completos.
• Se pueden definir funciones propias (pero quedan para ser
realizados por los Jr. Developer).
¡Gracias!

También podría gustarte