Vous êtes sur la page 1sur 23

Módulo 2

Introducción a Consultas T-SQL

Paco Márquez Urbina


pmarquez@sistemasunica.edu.pe
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 2017

• 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 OrderID, YEAR(orderdate) AS orderyear


FROM Orders
WHERE CustomerID ='VINET'
GROUP BY OrderID, YEAR(orderdate)
HAVING YEAR(orderdate) > 1996
ORDER BY OrderID , orderyear;