Módulo 2
Introducción a Consultas T-SQL
Temas
• Introducción T-SQL
• Entender los conjuntos de scripts o lotes de
instrucciones.
• Entender predicados logicos
• Entender el orden lógico de los operadores de la
instrucción
Lesson 1: Introducción T-SQL
• Acerca de T-SQL
• Categorías de instrucciones T-SQL
• Elementos del lenguaje T-SQL
• Elementos del lenguaje T-SQL: predicados y operadores
• Elementos del lenguaje T-SQL: Funciones
• Elementos del lenguaje T-SQL: Variables
• Elementos del lenguaje T-SQL: Expresiones
• Elementos del lenguaje T-SQL: control de flujo, errores y
transacciones
• Elementos del lenguaje T-SQL: Comentarios
• Elementos del lenguaje T-SQL: Separadores por lotes
• Demostración: Elementos del lenguaje T-SQL
Acerca de T-SQL
• Lenguaje de consulta estructurado (SQL)
• Desarrollado por IBM en 1970
• Adoptado como norma por los organismos de normas
ANSI y ISO
• Ampliamente utilizado en la industria
• PL / SQL, SQL Procedural Language, Transact-SQL
• La implementación de Microsoft es Transact-SQL
• Referido como T-SQL
• Lenguaje de consulta para SQL Server 2012
• SQL es declarativo, no procedural
• Describa lo que desea, no especifique los pasos
Categorías de instrucciones T-SQL
Data Manipulation Data Definition Data Control
Language (DML*) Language (DDL) Language (DCL)
• Declaraciones • Declaraciones • Declaraciones de
para consultar y para definiciones permisos de
modificar datos de objetos seguridad
• SELECT, INSERT, • CREATE, ALTER, • GRANT, REVOKE,
UPDATE, DELETE DROP DENY
* DML con SELECT es el foco de este curso
Elementos del lenguaje T-SQL
• Predicados y Operadores
• Funciones
• Variables
• Expresiones
• Separadores de lotes
• Control de flujo
• Comentarios
Elementos del lenguaje T-SQL: Predicados y
operadores
Predicados y
Elementos:
operadores:
Predicados IN, BETWEEN, LIKE
Operadores de =, >, <, >=, <=,
Comparación <>, !=, !>, !<
Operadores Lógicos AND, OR, NOT
Operadores Aritméticos +, -, *, /, %
Concatenación +
T-SQL impone la precedencia del
operador
Elementos del lenguaje T-SQL: Funciones
Funciones de Fecha y Funciones de
Funciones de Texto
Hora Agregado
• SUBSTRING • GETDATE • SUM
• LEFT, RIGHT • SYSTDATETIME • MIN
• LEN • GETUTCDATE • MAX
• DATALENGTH • DATEADD • AVG
• REPLACE • DATEDIFF • COUNT
• REPLICATE • YEAR
• UPPER, LOWER • MONTH
• RTRIM, LTRIM • DAY
Elementos del lenguaje T-SQL: variables
• Las variables locales en T-SQL almacenan
temporalmente un valor de un tipo de datos
específico
• El nombre comienza con el signo único @
• @@ reservado para las funciones del sistema
• Asignado un tipo de datos
• Debe declararse y usarse dentro del mismo lote
• A partir de SQL Server 2008 y posterior, puede
declarar e inicializar en la misma declaración
DECLARE @MyVar int = 30;
Elementos del lenguaje T-SQL: expresiones
• Combinación de identificadores, valores y
operadores evaluados para obtener un único
resultado
• Se puede usar en sentencias SELECT
• Cláusula SELECT
• Cláusula WHERE
• Puede ser una sola constante, función de un solo
valor o variable
• Se puede combinar si las expresiones tienen el
mismo tipo de datos
SELECT YEAR(orderdate) + 1 ...
SELECT qty * unitprice ...
Elementos del lenguaje T-SQL: control de flujo,
errores y transacciones
• Le permite controlar el flujo de ejecución dentro del
código, manejar errores y mantener transacciones
• Utilizado en objetos de código programático
•Procedimientos almacenados, desencadenantes, bloques de
instrucciones
Control de
Control de Flujo Manejo de Errores Transacciones
• IF...ELSE • TRY...CATCH • BEGIN TRANSACTION
• WHILE • COMMIT
• BREAK TRANSACTION
• CONTINUE • ROLLBACK
• BEGIN...END TRANSACTION
Elementos del lenguaje T-SQL: Comentarios
• Marca el código T-SQL como un comentario:
• Para un bloque, enciérralo entre / * y * / caracteres
/*
Este es un comentario
*/
• Para el texto en línea, preceda los comentarios con -
-- Esta línea de texto es ignorada
• Los editores de T-SQL como SSMS generalmente
codificarán los comentarios en color, como se muestra
arriba.
Elementos del lenguaje T-SQL: Separadores de
lotes
• Los lotes son conjuntos de comandos enviados a
SQL Server como una unidad
• Los lotes determinan el alcance variable, la
resolución del nombre
• Para separar las declaraciones en lotes, use un
separador:
• Las herramientas de SQL Server usan la palabra clave
GO
• GO no es un comando de SQL Server T-SQL
• Característica GO [Número] de veces fue agregada en
SQL Server 2005
Lección 2: Comprender los conjuntos
• Teoría de Conjuntos y SQL Server
• La teoría aplicada a consultas de SQL Server
Teoría de Conjuntos y SQL Server
• La teoría de conjuntos es una base matemática
para el modelo de base de datos relacional
• ¿Qué es un conjunto?
• Una colección de objetos distintos considerados como
un todo
• "Todos los clientes que viven en Portland"
Características del elemento
de conjunto Ejemplo
Elementos de un conjunto Cliente como miembro de
llamados miembros un conjunto de Clientes
Nombre del cliente,
Los elementos de un conjunto
apellido, fecha de
se describen por atributos
nacimiento
Los elementos deben ser
Customer ID
distintos o únicos
Teoría de conjuntos aplicada a las consultas de
SQL Server
Aplicación de la teoría Comentario
Actuar sobre todos los Consulta toda la tabla a la vez
elementos de un conjunto a
la vez
Use un proceso declarativo Dile al motor lo que quieres
basado en conjuntos recuperar
Evitar el procesamiento No le digas al motor cómo
basado en cursor recuperarlo. No proceses cada
resultado individualmente
Los elementos del conjunto Definir claves únicas en una tabla
deben ser únicos
Sin orden definido para Los artículos pueden ser devueltos
resultado conjunto en cualquier orden. Esto requiere
instrucciones de clasificación
explícitas si se desea una orden
Lección 3: Comprender la lógica de predicados
• Lógica de predicado y SQL Server
• Lógica de predicados aplicada a consultas de SQL
Server
Lógica de predicado y SQL Server
• La lógica de predicado es una base matemática
para el modelo de base de datos relacional
• En teoría, un predicado es una propiedad o
expresión que es verdadera o falsa
• El Predicado también se conoce como una
expresión booleana
Lógica de predicados aplicada a consultas de
SQL Server
• En SQL Server, un predicado es una
propiedad o expresión que se evalúa como
verdadera, falsa o desconocida (NULL)
Use el predicado
• Filtrar datos en consultas (cláusulas WHERE y HAVING)
• Proporcionar lógica condicional a expresiones CASE
• Unir tablas (filtro ENCENDIDO)
• Definición de subconsultas
• Aplicación de la integridad de los datos
(restricciones CHECK)
• Control de flujo (declaración IF)
Lección 4: Comprender el orden lógico de
operaciones en las sentencias SELECT
• Elementos de una declaración SELECT
• Procesamiento de consultas lógicas
• Aplicación del orden lógico de operaciones a la
escritura de sentencias SELECT
• Demostración: procesamiento de consultas lógicas
Elementos de una declaración SELECT
Elemento Expresión Rol
SELECT <select list> Define qué columnas
volver
FROM <table source> Define tabla (s) para
consultar
WHERE <search Filtra filas usando un
condition> predicado
GROUP BY <group by list> Organiza filas por grupos
HAVING <search Grupos de filtros que usan
condition> un predicado
ORDER BY <order by list> Ordena la salida
Procesamiento de consultas lógicas
• El orden en que se escribe una consulta no es el
orden en que SQL Server lo evalúa.
5: SELECT <lista de campos>
1: FROM <table de origen>
2: WHERE <condición del filtro>
3: GROUP BY <lista de campos por los que agrupar>
4: HAVING <condición del filtro>
6: ORDER BY <lista por la cual ordenar>
Aplicación del orden lógico de operaciones a la
escritura de sentencias SELECT
USE TSQL;
SELECT empid, YEAR(orderdate) AS orderyear
FROM [Link]
WHERE custid =71
GROUP BY empid, YEAR(orderdate)
HAVING COUNT(*) > 1
ORDER BY empid, orderyear;