Vous êtes sur la page 1sur 19

TUTORIAL SQL SERVER

Tipos de datos

Funciones de Divisin con decimales


La salida para la primera lnea es 2

La salida para la segunda lnea es 2.5

Valores unicode
El primer select solo mostrara la letra A porque no le indicamos que lea datos Unicode
El segundo select permite Unicode al anteponerle la letra N(imprimir todos los caracteres)

Funciones de fecha y hora

Nota#1: Obtenemos la edad de los empleados


Nota#2: CAST(GETDATE()) AS DATE) -> Obtenemos la fecha sin la hora

Funciones de Cadenas de Caracteres

Observamos que solo algunas ciudades tienen region

Null sustituido con


espacio

Nota#1: Con substring obtenemos (abc)

Nota#1: Con Right obtenemos los ltimos 3 (cde)


Nota#1: Con Left los primeros tres (abc)
Nota#1: Con Charindex cuenta cuando ocurrir el primer espacio en la palabra (En este caso
en la posicin 6)

Nota#1: Con PATINDEX buscara el primer nmeros entre 0 y 9 que se encuentren en la palabra
(en este caso posicin 5)
Nota#1: Con LEN obtenemos el largo de la cadena
Nota#1: Con DATALENGTH obtenemos el largo de la cadena pero en byte (con la n decimos que
son Unicode y cada Unicode pesa 2 byte)

Nota#1: Con
caso /1/2/3/)
Nota#1: Con
Nota#1: Con
Nota#1: Con

REPLACE me reemplaza el primer argumento por el segundo argumento (en este


REPLICATE multiplica 10 veces la cadena de caracteres (0*0*0.)
STUFF reemplaza la coma(el primer valor) por espacios
UPPER pasa la cadena a maysculas

Nota#1: Con LOWER a minscula


Nota#1: Con LTRIM recorta la cadena del lado derecho
Nota#1: Con RTRIM recorta la cadena del lado izquierdo

Nota#1: Con RTRIM Y LTRIM podemos recortas los espacios de ambos lados
Nota#1: Con FORMAT une el primer argumento dentro del segundo(0000001759)

Clausula case

Tenemos lo siguiente

Nota#1: Tomamos la columna contry para realizar la busquedad y donde encuentre lo que
buscamos le decimos que debe de hacer en la nueva columna que Creamos (continent)

Nota#1: Las edades mayores a 1975 se creara una nueva columna indicando que es mayor de
40

Clausula where

Los distintos a wa o los que son nulos

Filtrar Datos caracteres

NOTA#1: Si se quiere hacer una bsqueda a partir del segundo carcter se coloca un
guion, pero si se quiere indicar que haga una bsqueda con un carcter que no sea letra
se coloca primero ! (este caso buscara donde encuentre el primer _)

Filtrar fechas
Nota#1: No recomendable hacer este filtro con funciones lo mejor sera:

TOP y OFFSET-FETCH(14/33)

NOTA#1: Si se toman solo los primeros 3 registros y hay dos elementos que son iguales (empate)

Si queremos un porcentaje de elementos

NOTA#2: Seleccionar filas al azar

NOTA#3 OFFSET NO toma las primeras 50 filas y con FETCH tomara los prximos 25 registros

NOTA#4 Solo tome las primeras 25 filas

NOTA#4: Se desplazara 50 filas y tomaras los siguientes registros

INNER JOIN, OUTER JOIN, CROSS JOIN (15/33)


NOTA: La tabla Nums -> contena los nmeros de uno hasta 100,000
De una misma tabla la dividi en dos y obtuvo otra que indica que el dia uno contiene tres
periodos(maana-tarde-noche)

Todos los valores de la tabla izquierda

SUBCONSULTAS (16/33)

NOTA: Con la incorporacin del IN le decimos que la subconsulta traer muchos


resultados

NOTA: En este caso la subconsulta hace referencia a una tabla fuera de la subconsulta
por lo que hacemos la igualacin al final con la funcin del inner join

Ejecucin de una orden de compra en la fecha establecida

Con INNER JOIN

NEGANDO UNA SUBCONSULTA

EXPRESIONES DE TABLAS (17/33)

Tipos de expresiones de tablas


1.
2.
3.
4.

Tablas derivadas
Expresiones de tablas comunes (CTE)
Vistas
Funciones de valores de tablas insertados

NOTA#1: La (1) y (2) solo son visibles solo para la expresin que las define la (3) y (4) se guardan
como objetos
NOTA#2: El ROW_NUMBER() -> Calcular enteros nicos desde uno en adelante
- Por cada categora va identificar cada producto, adems se creara un contador as Rownum que
llevara la cuenta de la cantidad de elementos pertenecientes a esa categora Al iniciar una
nueva categora reiniciara a contar desde uno.

Tabla derivada
- Casi la misma consulta anterior Solo que se quiere dos filas de cada categoria

CTE (Mejor para el anidamiento de tablas)

CTE Recursivos

Funciones de valores de tabla insertados


- Se crea una vista

- Se hace el llamado de la vista

Creamos funciones

Realizamos el llamado de la funcin

Curso de SQL Server - APPLY (18/33)


Con CROSS APPLY
1. Recordemos esta consulta (devuleve los primeros dos primeras filas para el proveedor 1)

2. Qu pasa si queremos que esto suceda para todo los proveedores

- La parte seleccionada es la parte derecha donde dicha lgica se le aplicara a cada una de las
filas de la tabla izquierda (proveedores)
- Le estamos indicando que queremos dos productos para cada uno

Con OUTER APPLY (A diferencia del anterior este si las filas de la tabla derecha tienen
valores nulos de igual manera realizara el cruce con la fila derecha y devolver la fila
completa)

Curso de SQL Server - UNION, INTERSECT y


EXCEPT(19/33)
1. Une las dos tablas pero sin duplicados

2. Une las dos tablas pero con duplicados

3. Intersecta las tablas solo en las filas en las que las Pais, ciudad, regin tengan un
empleado y un cliente (no retorma filas iguales)

4. Devuelve lo que est en la primer consulta y no est en la segunda(no existen cliente pero
si empleados)

GROUP BY y HAVING (20/33)

NOTA#1: conocer el numero de transportistas el ao de entrega y la cantidad de ordenes


HAVING

Curso de SQL Server - GROUPING SETS, CUBE y


ROLLUP (21/33)

Curso de SQL Server - PIVOT y UNPIVOT (22/33)


Pivot
- Creamos una tabla PivotData (expresin de tabla)
- traspasa de un estado de fila a uno de columnas
- En toda consulta de pivoteo hay tres elementos:
1. Elemento de agrupamiento custid[Clientes] - (que queremos ver como
filas)
2. Elemento de Difusin Shipperid [Transportista] - (Que queremos ver
como columna)
3. Elemento de agregacin freight[carga] Intercepcin entre columna y fila
- [1], [2], [3] son los tres elementos
- Quiero los clientes que se intercepte con un determinado transportista y
saber cunto de la carga ha entregado.
- En el ejemplo cuando el cliente es uno (fila) y el transportista es uno
(columna) encontramos que la suma de todas las cargas de ese transportista
con ese cliente es el valor que aparece

Unpivot
- Primero debe de existir un objeto pivoteado, por lo que se procedera a
su creacion primero

Ahora procedemos a despivotear

Curso de SQL Server - Funciones Ventana (23/33)


- Funciones ventana reconocida porque llevan la clausula over

El cliente nmero 1 con numero de orden 10643 tiene un valor de 814.50


que equivale a un 19.06% del total del valor del cliente numero 1 y con un
porcentajeTotal de 0.06 del total de todas las ordenes de todos los clientes

Curso de SQL Server - Marcos de Ventana o


funciones
deslizantes(24/33)
- Va acumulando los valores de las ordenes anteriores para un determinado cliente en este caso el
cliente 1 en donde se ira acumulando el valor en la ltima columna
- Vamos observando el cambio atreves del tiempo

Para poder manipular esta seleccin utilizamos una expresin de tabla


- Seleccione todas las filas que sean menor a 1000

Curso de SQL Server - Funciones de Rnking (25/33)

Vous aimerez peut-être aussi