Está en la página 1de 18

Módulo 2

Introducción a T-SQL Consulta


Contenido:
Módulo Descripción general 1.2
Lección 1: Introducción a T-SQL 2.2
Lección 2: Entendimiento Establece 02.12
Lección 3: Entender la lógica de predicados 2-14
Lección 4: Entender el orden lógico de las operaciones en sentencias SELECT 2-16
Laboratorio: Introducción a T-SQL Consulta 2-20
Revisión del módulo y comida para llevar 2-23
Módulo de Información general
Transact-SQL, o T-SQL, es el idioma en el que escribirá consultas de Microsoft SQL Server 2014.
En
este módulo, usted aprenderá que T-SQL tiene muchos elementos en común con otros
lenguajes de programación,
tales como comandos, variables, funciones y operadores. Usted también aprenderá que T-SQL
contiene algunos
elementos únicos que pueden requerir un ajuste si su fondo incluye experiencia con procesal
idiomas. Para aprovechar al máximo de su esfuerzo en escribir consultas T-SQL, también
aprenderá el proceso por el
que SQL Server evalúa sus consultas. Entender el orden lógico de las operaciones de SELECT
declaraciones serán vitales para aprender a escribir consultas eficaces.
Objetivos
Después de completar este módulo, el alumno será capaz de describir:
 Los elementos de T-SQL y su papel en las consultas de escritura.
 El uso de juegos en SQL Server.
 El uso de la lógica de predicados en SQL Server.
 El orden lógico de las operaciones en las sentencias SELECT.

2-2 Introducción a T-SQL Consulta


Lección 1
Presentación de T-SQL
En esta lección, aprenderá el papel de T-SQL por escrito instrucciones SELECT. Usted aprenderá
acerca de muchos de
los elementos del lenguaje T-SQL y cuáles serán útiles para escribir consultas.
Objetivos de la lección
Después de completar esta lección, el alumno será capaz de:
 Describir la implementación de Microsoft del lenguaje SQL estándar.
 Clasificar sentencias SQL en sus dialectos.
 Identificar los elementos de T-SQL, incluyendo predicados, operadores, expresiones y
comentarios.
Acerca de T-SQL
T-SQL es la implementación de Microsoft del
estándar de la industria Structured Query Language.
Originalmente desarrollado para apoyar el nuevo relacional
modelo de datos en el International Business Machines
(IBM) a principios de 1970, SQL ha sido ampliamente
adoptada en la industria. SQL convirtió en un estándar de
el American National Standards Institute (ANSI)
y la Organización Internacional para las
Normalización (ISO) en la década de 1980.
El estándar ANSI ha pasado por varias
revisiones, incluyendo SQL-89 y SQL-92, cuya
especificaciones están bien soportados total o parcialmente
por T-SQL. SQL Server 2014 también implementa características de normas posteriores, como
ANSI SQL-2008.
Microsoft, como muchos vendedores, también ha extendido el lenguaje para incluir
características específicas de SQL Server y
funciones.
Además de la implementación de Microsoft como T-SQL en SQL Server, Oracle tiene PL / SQL,
IBM tiene SQL PL, y
Sybase mantiene su propia operación de T-SQL.
Un concepto importante de entender cuando se trabaja con T-SQL es que es un basado en
conjuntos y declarativa
idioma, no un procedimiento. Cuando se escribe una consulta para recuperar datos de SQL
Server, usted describe
los datos que desea mostrar, que no se lo digas SQL Server exactamente cómo recuperarlo. En
lugar de proporcionar una
Lista procesal de los pasos a seguir, usted proporciona los atributos de los datos que usted
busca.
Por ejemplo, si desea recuperar una lista de clientes que se encuentran en Portland, un
método de procedimiento
podría tener este aspecto:
Método Procesal
Abrir un cursor para consumir filas, uno a la vez.
Obtener el primer registro del cursor.
Examine primera fila.
Si la ciudad es Portland, devuelva la fila.
Mover a la siguiente fila.
Si la ciudad es Portland, devuelva la fila.
Fetch el siguiente registro.
(Repita hasta que se alcance final de la tabla).
MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO
Consulta Microsoft® SQL Server® 3.2
Su código de procedimiento no sólo debe contener la lógica para seleccionar los datos que se
ajuste a sus necesidades, pero
También debe determinar y ejecutar una trayectoria de buen rendimiento a través de él.
Nota: Este curso menciona cursores para efectos comparativos, pero no proporciona
formación sobre la escritura de código con ellos.
Ir a los libros en pantalla (BOL) para las definiciones y las preocupaciones con respecto al uso
de los cursores:
Cursores
http://go.microsoft.com/fwlink/?LinkID=402710
Con un lenguaje declarativo como T-SQL, se le proporcionará los atributos y valores que
describen el conjunto
desea recuperar.
Por ejemplo, consulte el siguiente pseudo-código:
Declarativa Idioma
Mostrar todos los clientes cuyos ciudad es Portland.
Con T-SQL, el motor de base de datos SQL Server 2014 determinará la ruta óptima para
acceder a los datos y
devolver un conjunto a juego. Su papel es el de aprender a escribir código T-SQL eficiente y
precisa para que pueda adecuadamente
describir el conjunto que desea recuperar.
Si usted tiene experiencia en otros entornos de programación, la adopción de un nuevo modo
de pensar puede presentar un
reto. Este curso ha sido diseñado para ayudar a salvar la brecha entre procedimiento y en base
set-
declarativa de T-SQL.
Nota: Los conjuntos se discutirán más adelante en este módulo.
Categorías de instrucciones T-SQL
Instrucciones T-SQL se pueden organizar en varias
categorías:
 Data Manipulation Language, o DML, es el
conjunto de instrucciones T-SQL que se centra en
consultar y modificar datos. Esto incluye
SELECT, el enfoque principal de este curso, como
así como las declaraciones de modificación como
INSERT, UPDATE y DELETE. Aprenderás
declaraciones sobre SELECT largo de este
curso.
Definición  Datos Idioma o DDL, es el conjunto
de instrucciones T-SQL que maneja la
definición y ciclo de vida de los objetos de base de datos, como tablas, vistas y procedimientos.
Esto incluye
declaraciones como CREATE, ALTER y DROP.
 lenguaje de control de datos, o DCL, es el conjunto de instrucciones T-SQL se utiliza para
gestionar los permisos de seguridad
para los usuarios y objetos. DCL incluye declaraciones como GRANT, REVOKE y DENY.
MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO
2.4 Introducción a T-SQL Consulta
Nota: Los comandos DCL están más allá del alcance de este curso. Para obtener más
información acerca de
SQL Server 2014 de seguridad, incluyendo DCL, consulte 20462C Microsoft Curso Oficial:
Administrar un
Base de datos Microsoft SQL Server.
Información adicional sobre DML, DDL, y los comandos DCL se puede encontrar en los libros en
línea en:
Transact-SQL (Motor de base de datos)
http://go.microsoft.com/fwlink/?LinkID=402711
T-SQL Elementos del lenguaje
Como muchos lenguajes de programación, T-SQL
contiene elementos que va a utilizar en las consultas. usted
utilizará predicados para filtrar filas, los operadores
realizar comparaciones, funciones y expresiones a
manipular datos o recuperar la información del sistema,
y los comentarios para documentar el código. si tu
tenga que ir más allá de escribir sentencias SELECT a
crear procedimientos almacenados, triggers, y otra
objetos, se pueden utilizar elementos tales como declaraciones de control-offlow, las variables
para almacenar temporalmente
valores y separadores de lotes. Los próximos
temas de esta lección le dará a conocer a muchos de
estos elementos.
Nota: El propósito de esta lección es introducir muchos elementos del lenguaje T-SQL,
que será presentado aquí en un alto nivel conceptual. Módulos posteriores en este curso
proporcionar explicaciones más detalladas.
T-SQL Elementos Idioma: predicados y operadores
El lenguaje T-SQL proporciona elementos para
especificar y evaluar expresiones lógicas. En
Sentencias SELECT, puede utilizar expresiones lógicas
para definir filtros para WHERE y HAVING.
Va a escribir estas expresiones utilizando predicados
y operadores.
Los predicados con el apoyo de T-SQL incluyen la
siguiendo:
 EN, se utiliza para determinar si un valor
coincide con cualquier valor en una lista o subconsulta.
 ENTRE, usada para especificar un rango de valores.
 LIKE, utilizado para que coincida con los personajes contra un patrón.

MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO


Los operadores incluyen varias categorías comunes:
 Comparación de las pruebas de igualdad y desigualdad:!!!!!! =, <,>,> =, <=, =,>, <(Tenga en
cuenta que>, <= y son
no estándar ISO. Es una buena práctica utilizar opciones estándar cuando existen).
 Lógico, para probar la validez de una condición: AND, OR, NOT
 Aritmética, para realizar operaciones matemáticas: +, -, *, /,% (módulo)
 concatenación, por la combinación de cadenas de caracteres: +
 Asignación, para el establecimiento de un valor: =
Al igual que con otros ambientes matemáticos, los operadores están sujetos a las normas que
rigen la precedencia. los
siguiente tabla se describe el orden en que se evalúan los operadores T-SQL:
Orden de Operadores de evaluación
1 () Los paréntesis
2 *, /,% (Multiplicar, Dividir, Modulo)
3 +, - (Agregar / Positiva / Concatenate, Restar / Negativo)
4 =, <,>,> =, <=,! =,>, <(Comparación)
5 NO
6Y
7 EN MEDIO, EN, COMO, OR
8 = (Asignación)
Información sobre otras categorías de operadores, incluyendo bit a bit, unario, y la asignación
de su alcance, puede ser
que se encuentra en los libros en línea en:
Operadores (Transact-SQL)
http://go.microsoft.com/fwlink/?LinkID=402714
T-SQL Elementos del lenguaje: Funciones
SQL Server 2014 ofrece una amplia variedad de
funciones disponibles para sus consultas T-SQL. Ellos
gama de funciones escalares como SYSDATETIME,
que devuelven un solo valor consecuencia, a otros que
operar en y devolver conjuntos enteros, tales como la
funciones de ventanas que conocerán más adelante en
este curso.
Al igual que con los operadores, funciones de SQL Server pueden ser
organizados en categorías.

MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO


6.2 Introducción a T-SQL Consulta
Estas son algunas de las categorías comunes de escalar (valor individual) las funciones
disponibles para usted para escribir consultas:
 Funciones de cadena
o SUBSTRING, IZQUIERDA, DERECHA, LEN, DATALENGTH
O REEMPLAZAR, replique
o superior, inferior, RTRIM, LTRIM
 Funciones de fecha y hora
o GETDATE, SYSDATETIME, GETUTCDATE
o DATEADD, DATEDIFF
o AÑO, MES, DÍA
 Las funciones de agregación
o SUM, MIN, MAX, AVG
o contar, COUNTBIG
 Funciones matemáticas
o RAND, REDONDO, asistida, ABS
o techo, suelo
Nota: El propósito de esta lección es introducir muchos elementos del lenguaje T-SQL,
que será presentado aquí en un alto nivel conceptual. Módulos posteriores en este curso
proporcionar explicaciones más detalladas.
Información adicional sobre estas funciones, con el código de ejemplo, se puede encontrar en
los libros en línea en:
Funciones incorporadas (Transact-SQL)
http://go.microsoft.com/fwlink/?LinkID=402712
T-SQL Elementos del lenguaje: Variables
Como muchos lenguajes de programación, T-SQL
proporciona un medio de almacenar temporalmente un valor de
un tipo de datos específico. Sin embargo, a diferencia de otros
entornos de programación, todo creado por el usuario
las variables son locales al lote de T-SQL que creó
ellos, y son visibles sólo a ese lote. Hay
no hay variables globales o públicos disponibles para SQL
Los usuarios del servidor.
Para crear una variable local en T-SQL, debe
proporcionar un nombre, tipo de datos, y el valor inicial. los
nombre debe comenzar con una única @ (arroba) símbolo, y
el tipo de datos debe ser o userdefined y se almacena en la base de datos de su código se
ejecutará contra el proporcionado por el sistema.
MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO
Consulta Microsoft® SQL Server® 2.7
Nota: es posible encontrar referencias en la literatura de SQL Server, sitios web, etc., a los
llamados
"Variables del sistema", cuyo nombre es un doble@@, como@@ERROR. Es más preciso para
referirse a
estos como las funciones del sistema, ya que los usuarios no pueden asignar un valor a los
mismos. Este curso
diferenciar las variables de usuario prefijadas con una sola @ de las funciones del sistema con
el prefijo@@.
Si la variable no se ha inicializado en el instrucción DECLARE, que se creará con un valor de
NULL y usted
Posteriormente, puede asignar un valor a la sentencia SET. SQL Server 2008 introduce la
capacidad de
nombrar e inicializar una variable en el mismo comunicado.
El ejemplo siguiente crea una variable entera local llamado MiVar y le asigna un valor inicial de
30:
Variable entera
DECLARARMyVar int = 30;
El ejemplo siguiente crea una variable de fecha local llamado MiFecha y por separado le asigna
un valor inicial
de 15 de febrero 2012:
Fecha variable
DECLARAR la fechaMyDate;
SETMyDate = '20120215';
Usted aprenderá más sobre los tipos de datos, incluyendo las fechas, y acerca de las variables
T-SQL, más adelante en este curso.
Si se necesita almacenamiento persistente o la visibilidad global para un valor, considerar la
creación de una tabla en una base de datos para
ese propósito. SQL Server proporciona tanto la sesión temporal y el almacenamiento
permanente en bases de datos. Para más
información sobre las tablas y objetos temporales, vaya a:
Tipos de tablas especiales
http://go.microsoft.com/fwlink/?LinkID=402715
T-SQL Elementos del lenguaje: Expresiones
T-SQL proporciona el uso de combinaciones de
identificadores, símbolos y operadores que son
evaluado por SQL Server para devolver un único resultado.
Estas combinaciones se conocen como expresiones,
proporcionar una herramienta útil y poderosa para su
consultas. En declaraciones SELECT, puede utilizar
expresiones:
 En la cláusula SELECT para operar en y / o
manipular columnas.
 Como expresiones CASE para reemplazar los valores
que coincide con una expresión lógica con otro
valor.
 En la cláusula WHERE para construir predicados para filtrar filas.
 Como expresiones de tabla para crear conjuntos temporales utilizados para su posterior
procesamiento.
MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO
2.8 Introducción a T-SQL Consulta
Nota: El propósito de esta lección es introducir muchos elementos del lenguaje T-SQL,
que será presentado aquí en un alto nivel conceptual. Módulos posteriores en este curso
proporcionar explicaciones más detalladas.
Expresiones pueden basarse en una función escalar (valor individual), en un valor constante, o
en variables. Múltiple
expresiones se pueden unir utilizando operadores si tienen el mismo tipo de datos o si el tipo
de datos puede ser convertido de una precedencia menor a una prioridad más alta (por
ejemplo, int al dinero).
El siguiente ejemplo de una expresión opera en una columna para añadir un número entero a
los resultados del año
función en una columna de fecha y hora:
Expresión
AÑO SELECT (FechaPedido) AS currentyear, AÑO (FechaPedido) + 1 AS nextYear
DESDE Sales.Orders;
Nota: El ejemplo anterior utiliza técnicas de T-SQL, como los alias de columna y fecha
funciones, que se tratarán más adelante en este curso.
T-SQL Elementos del lenguaje: Control de flujo, errores y Transacciones
Mientras que T-SQL es ante todo un lenguaje de recuperación de datos
y no un lenguaje de procedimientos, que es compatible con una
conjunto limitado de declaraciones que proporcionan alguna
el control de flujo durante la ejecución.
Algunos de los de uso común de control de flujo
declaraciones incluyen:
 SI. . . ELSE, para proporcionar el control de ramificación
sobre la base de una prueba lógica.
 MIENTRAS, para repetir una declaración o un bloque de
declaraciones, mientras que una condición es verdadera.
 BEGIN. . . FIN, para definir la extensión de un
bloque de instrucciones T-SQL.
 TRY. . . CATCH, para la definición de la estructura de gestión de excepciones (manejo de
errores).
 BEGIN TRANSACTION, para marcar un bloque de instrucciones como parte de una
transacción explícita. Terminó por
COMMIT TRANSACTION o ROLLBACK TRANSACTION.
Nota: Los operadores de control-de-flujo no se utilizan en consultas independientes. Si su
función principal es
como escritor informe, por ejemplo, es poco probable que usted tendrá que utilizarlos. Sin
embargo, si su
responsabilidades incluyen la creación de objetos, tales como procedimientos almacenados y
disparadores, se encuentra
estos elementos de utilidad.
T-SQL Elementos del lenguaje: Comentarios
T-SQL proporciona dos mecanismos para documentar
código o instrucciones al motor de base de ignorar
ciertas declaraciones. El método que utilice lo hará
típicamente dependerá del número de líneas de código
que desea ignorado:
 Para las líneas individuales, o muy pocas líneas de código, el uso
el - (doble guión) que precede al texto para ser
marcado como un comentario. Cualquier texto que sigue al
guiones serán ignorados por SQL Server.
 Para bloques de código más largos, encierre el texto
entre / * y * / caracteres. Cualquier código
entre los caracteres serán ignoradas por SQL
Servidor.
El siguiente ejemplo utiliza el método - (doble guión) para marcar los comentarios:
- Toda esta línea de texto se ignorará.
DECLARARMyVar int = 30; --only se tendrá en cuenta el siguiente texto los guiones.
El siguiente ejemplo utiliza el / * comentario de bloque * / método para marcar comentarios:
*/
Este es el texto del comentario que se hizo caso omiso.
*/
Muchas herramientas de edición de consulta, como SSMS o SQLCMD, tendrán un código de
colores comentado texto en un color diferente
que el código T-SQL circundante. En SSMS, utilice las herramientas, cuadro de diálogo
Opciones para personalizar los colores y
fuentes en el editor de scripts T-SQL.
T-SQL Elementos del lenguaje: Separadores de lotes
Herramientas de cliente de SQL Server, como SSMS, enviar
comandos para el motor de base de datos en conjuntos llamados
lotes. Si está ejecutando manualmente el código, tales
como en un editor de consultas, puede elegir si desea
enviar todo el texto en una secuencia de comandos como un lote. Puedes
También optar por insertar separadores entre cierta
secciones de código.
La especificación de un separador de lotes se maneja
por su herramienta de cliente. Por ejemplo, la palabra clave GO
es el separador de lotes por defecto en SSMS. Puedes
cambiar esto para la consulta actual en Query | consulta
Opciones o globalmente en Herramientas | Opciones | consulta
Ejecución.
Para la mayoría de los propósitos de consulta simples, no se utilizan separadores de lotes, ya
que estará presentando una sola consulta en
un momento. Sin embargo, cuando lo que necesita para crear y manipular objetos, puede que
tenga que separar declaraciones
en lotes distintos. Por ejemplo, una sentencia CREATE VIEW no puede ser incluido en el mismo
lote que
otras declaraciones.
MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO
10.2 Introducción a T-SQL Consulta
El siguiente es un ejemplo de una sentencia CREATE TABLE y CREATE VIEW en el mismo lote:
Código que requiere varios lotes
CREATE TABLE t1 (col1 int);
CREATE VIEW v1 como SELECT * FROM t1;
El ejemplo anterior devuelve el siguiente error:
Msj 111, nivel 15, estado 1, línea 2
"CREATE VIEW" debe ser la primera instrucción de un lote de consultas.
Tenga en cuenta que las variables declaradas por el usuario se consideran local para el lote en
el que se declaran. Si una
variable se declara en un lote y referenciado en otro, el segundo lote fallaría.
Por ejemplo, las siguientes afirmaciones envían juntos como un solo trabajo por lotes
correctamente:
Variable Local
DECLARARcust int = 5;
Custid SELECT, companyname, ContactName
DESDE Sales.Customers
DONDE custid =custid;
Sin embargo, si se inserta un separador de lotes entre la declaración de variables y la consulta
en la que el
se utiliza la variable, se produciría un error.
El siguiente ejemplo separa la declaración de variables de su uso en una consulta:
Variable Separados por lotes
DECLARARcust int = 5;
IR
Custid SELECT, companyname, ContactName
DESDE Sales.Customers
DONDE custid =custid;
El ejemplo anterior devuelve el siguiente error:
Msj 137, nivel 15, estado 2, línea 3
Debe declarar el escalar "custid" variable.
Nota: Las variables se tratarán con mayor profundidad más adelante en este curso.

Demostración: T-SQL Elementos del lenguaje


En esta demostración, verá cómo:
 Elementos del lenguaje Uso de T-SQL.
Tenga en cuenta que algunos elementos serán cubiertos con mayor profundidad en los
módulos posteriores.
Pasos de demostración
Utilice T-SQL Elementos del lenguaje
1. Asegúrese de que las máquinas virtuales 20461C-MIA-CC y 20461C-MIA-SQL se ejecutan
tanto, y luego
iniciar sesión en 20461C-MIA-SQL como AdventureWorks \ Estudiante con la contraseña Pa $$
w0rd.
2. Ejecute D: \ Demofiles \ Mod02 \ Setup.cmd como administrador.
3. Inicie SQL Server Management Studio y conéctese a la instancia de motor de base de MIA-
SQL.
4. Abra la solución Demo.ssmssln en la carpeta D: \ Demofiles \ Mod02 \ demo.
5. En el menú Ver, haga clic en el Explorador de soluciones.
6. Abra la 11 - archivo de script A.sql demostración.
7. Siga las instrucciones contenidas en los comentarios del archivo de comandos.
8. Mantenga abierta para la próxima manifestación SQL Server Management Studio.

Lección 2
Entender Juegos
El propósito de esta lección es introducir los conceptos de la teoría de conjuntos, uno de los
matemáticos
bases de datos relacionales, y para ayudar a aplicar a la forma de pensar acerca de la consulta
SQL
Servidor.
Objetivos de la lección
Después de completar esta lección, el alumno será capaz de:
 Describir el rol de juegos en una base de datos relacional.
 Comprender el impacto de lances sobre sus consultas T-SQL.
 Describir los atributos de los conjuntos que pueden requerir un tratamiento especial en sus
consultas.
Teoría de conjuntos y SQL Server
La teoría de conjuntos es uno de los matemáticos
fundamentos del modelo relacional y también lo es
fundamental para trabajar con SQL Server 2014.
Mientras que usted puede ser capaz de hacer la escritura progreso
consultas en T-SQL sin una apreciación de conjuntos,
puede llegar a tener dificultades para expresar
algunos de ellos en una sola, con buen desempeño
declaración.
Esta lección será el escenario para que usted comience
"pensando en sets" y comprender su naturaleza.
A su vez, esto hará que sea más fácil para usted para:
 Aprovechar declaraciones basadas configuración en TSQL.
 Entender por qué usted todavía tiene que resolver su salida de la consulta.
 Entender por qué un enfoque declarativo basado en conjuntos, en lugar de un
procedimiento, funciona mejor con SQL
Servidor 2014.
Para nuestros propósitos, sin ahondar en las matemáticas que apoyan la teoría de conjuntos,
podemos definir un conjunto como
"una colección de objetos definidos, distintos considerados en su conjunto." En términos
aplicados a bases de datos SQL Server,
podemos pensar en un conjunto como una sola unidad (como una mesa) que contiene cero o
más miembros de la misma
escribe. Por ejemplo, una tabla de clientes representa un conjunto, especialmente el conjunto
de todos los clientes. También verá
que los resultados de una sentencia SELECT también forman un conjunto, lo que tendrá
consecuencias importantes cuando
aprender sobre subconsultas y expresiones de tabla, por ejemplo.
A medida que aprenda más sobre ciertas instrucciones de consulta T-SQL, será importante
pensar de todo el conjunto,
en lugar de miembros individuales, en todo momento. Esto equipar mejor a escribir código
basado configuración, en lugar de
pensar una fila a la vez. Trabajar con conjuntos requiere pensar en términos de operaciones
que se producen "todos a la
una vez que "en lugar de a uno por vez. Esto puede requerir un ajuste para usted,
dependiendo de sus antecedentes.
Después de "colección", el próximo período crítico en nuestra definición es "distinta", o único.
Todos los miembros de un conjunto mosto
ser único. En SQL Server, la singularidad se implementa normalmente mediante las teclas,
como una columna de clave principal.
Sin embargo, una vez que comience a trabajar con subconjuntos de datos, es importante tener
en cuenta cómo puede
abordar de forma única cada miembro de un conjunto.
MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO
Consulta Microsoft® SQL Server® 2-13
Esto nos lleva de nuevo a la consideración del conjunto como un "todo". Tomó nota de autor
lenguaje SQL Joe Celko
sugiere añadir mentalmente la frase "Conjunto de todo ..." delante de los nombres de objetos
de SQL que representan conjuntos
("conjunto de todos los clientes", por ejemplo). Esto le ayudará a recordar que te estás
dirigiendo una colección de
elementos cuando se escriben código T-SQL, no sólo un elemento a la vez.
Una consideración importante es lo que se omite de la teoría de conjuntos - cualquier requisito
relativo a la
orden de los elementos de un conjunto. En resumen, no hay un orden predefinido en un set.
Los elementos pueden ser abordados (y
recuperado) en cualquier orden. Aplicado a sus consultas, esto significa que si usted necesita
devolver resultados en un determinado
fin, debe utilizar la cláusula ORDER BY en sus sentencias SELECT. Usted aprenderá más sobre
ORDEN
POR adelante en este curso.
Lectura adicional: Más información sobre la teoría de conjuntos y su aplicación a SQL Server
consultas se pueden encontrar en el capítulo 1 de la Itzik Ben-Gan Dentro de Microsoft® SQL
Server® 2008: T-SQL
Consulta (Microsoft Press, 2009) y en el capítulo 2 de la Itzik Ben-Gan Microsoft SQL Server
2008: TSQL Fundamentos (Microsoft Press, 2008). Para obtener más información sobre el uso
de "Conjunto de todo ..." ver
Pensamiento de Joe Celko en Sets (Morgan Kaufman, 2008).
Establecer Teoría Aplicada a consultas de SQL Server
Teniendo en cuenta el fundamento basado en conjuntos de bases de datos,
hay algunas consideraciones y
recomendaciones a tener en cuenta al escribir
consultas eficientes T-SQL:
 Ley sobre todo el conjunto a la vez. Esto se traduce en
consultar toda la tabla a la vez, en lugar de
a base de cursor o el procesamiento iterativo.
 Utilice procesamiento declarativa, basada en la configuración. Dile a SQL
Servidor lo desea recuperar mediante la descripción
sus atributos, no mediante la navegación a su posición.
 Asegúrese de que usted se está dirigiendo a través de elementos
sus identificadores únicos, tales como llaves, cuando sea posible. Por ejemplo, escriba ÚNETE
cláusulas referencia
claves únicas en un lado de la relación.
 Proporcione a sus propias instrucciones de clasificación debido a los conjuntos de resultados
no están garantizados para ser devuelto en cualquier
orden.

MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO


14.2 Introducción a T-SQL Consulta
Lección 3
La comprensión de la lógica de predicados
Junto con la teoría de conjuntos, la lógica de predicados es otro fundamento matemático para
la base de datos relacional
modelo, y con ella, SQL Server 2014. A diferencia de la teoría de conjuntos, es probable que
tenga una buena cantidad de experiencia
con la lógica de predicados, ni siquiera si ha utilizado el término para describirlo. Esta lección
introducirá
predicar la lógica y examinar su aplicación a la consulta de SQL Server.
Objetivos de la lección
Después de completar esta lección, el alumno será capaz de:
 Describir el papel de la lógica de predicados en una base de datos relacional.
 Comprender el uso de la lógica de predicados en sus consultas T-SQL.
Predicado Lógica y SQL Server
En teoría, la lógica de predicados es un marco para
expresando pruebas lógicas que devuelven verdadero o falso. LA
predicado es una propiedad o expresión que es verdadero o
falso. Usted puede haber oído esta referido como un
Expresión booleana.
Tomado por sí mismos, predicados hacen
comparaciones y expresar los resultados como verdadero o
falso. Sin embargo, en T-SQL, predicados no resisten
solo. Por lo general, se incrustan en un comunicado
que hace algo con el resultado verdadero o falso,
tales como una cláusula WHERE para filtrar filas, una CASO
la expresión para que coincida con un valor, o incluso una columna
restricción que rige el rango de valores aceptables para esa columna en la definición de una
tabla.
Hay una omisión importante en la definición formal de un predicado-cómo manejar
desconocida, o
valores faltantes. Si una base de datos está configurado para que no se permiten los valores
perdidos (a través de restricciones, o
valor predeterminado asignaciones), entonces tal vez esto no es una omisión importante. En la
mayor parte del mundo real
ambientes, sin embargo, tendrán que dar cuenta de los valores que faltan o desconocidas,
requiriéndole para ampliar
su comprensión de los predicados de dos resultados posibles (verdadero o falso) a tres
verdadero, falso, o
desconocido.
El uso de valores NULL como marca para los datos que faltan se discutirá en el siguiente tema,
así como más tarde en
este curso.
MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO
Consulta Microsoft® SQL Server® 02.15
Predicado Lógica Aplicada a consultas de SQL Server
Como usted ha estado aprendiendo, la capacidad de utilizar
predicados expresar comparaciones en términos de verdad,
falsa o desconocida es vital para la escritura eficaz
consultas en SQL Server. Aunque hemos estado
discutir por separado, predicados no lo hacen
independiente, sintácticamente hablando. Vas a
típicamente utilizar predicados en cualquiera de las siguientes
roles dentro de sus consultas:
 Filtrado de datos (en WHERE y HAVING
cláusulas).
 Proporcionar lógica condicional para CASE
expresiones.
 Unir tablas (en el filtro ON).
 Definición de subconsultas (en EXISTE pruebas, por ejemplo).
Además, predicados tienen usos fuera de los comandos SELECT, como en restricciones CHECK
a los valores límite
permitido en una columna, y en control-de-flujo de elementos, como una instrucción IF.
En matemáticas, sólo tenemos que considerar los valores que están presentes, por lo que los
predicados pueden resultar sólo en ciertas o
valores falsos (conocidos en la lógica de predicados como la ley del tercero excluido). En las
bases de datos, sin embargo, se quiere
probablemente tiene que dar cuenta de valores perdidos, y la interacción de T-SQL predicados
con valores perdidos
resultados en un desconocido. Asegúrese de que ha representado para los tres posibles
resultados-verdaderas, falsas, o
desconocido, cuando usted está diseñando su lógica consulta. Usted aprenderá cómo usar
lógica trivalente en
DONDE cláusulas más adelante en este curso.
Nota: El propósito de esta lección es introducir muchos elementos del lenguaje T-SQL,
que será presentado aquí en un alto nivel conceptual. Módulos posteriores en este curso
proporcionar explicaciones más detalladas.

MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO


16.2 Introducción a T-SQL Consulta
Lección 4
Comprender el orden lógico de las operaciones en SELECT
Declaraciones
T-SQL es inusual como un lenguaje de programación en un aspecto clave. El orden en que se
escribe un comunicado
no es necesariamente aquel en el que el motor de base de datos evaluará y procesarla.
Motores de base de datos puede
optimizar su ejecución de una consulta, siempre y cuando la exactitud del resultado (según lo
determinado por la lógica
orden) se mantiene. Como resultado, a menos que se aprende el orden lógico de operaciones,
puede encontrar tanto
obstáculos conceptuales y prácticos para escribir sus consultas. Esta lección introducirá los
elementos de un
Instrucción SELECT, delinear el orden en que se evalúan los elementos, y luego aplicar esta
comprensión de un enfoque práctico para escribir consultas.
Objetivos de la lección
Después de completar esta lección, el alumno será capaz de:
 Describir los elementos de una sentencia SELECT.
 Comprender el orden en que las cláusulas de una instrucción SELECT se evalúan.
 Aplicar su comprensión del orden lógico de operaciones para escribir sentencias SELECT.
Elementos de una instrucción SELECT
Para lograr nuestro objetivo de entender el
orden lógico de operaciones, tenemos que mirar a un
Instrucción SELECT en su conjunto, incluyendo un número
elementos de opcionales. Sin embargo, esta lección no es
diseñado para proporcionar información detallada sobre
estos elementos. Cada parte de una instrucción SELECT
se discutirá en módulos posteriores.
La comprensión de los detalles de una cláusula WHERE, por
ejemplo, no es necesario con el fin de entender su
colocar en la secuencia de los acontecimientos.
Una instrucción SELECT se compone de obligatorio y
elementos opcionales. En sentido estricto, SQL Server
sólo requiere una cláusula SELECT para ejecutar sin errores. Una cláusula SELECT sin cláusula
FROM
opera como si estuviera seleccionando de una tabla imaginaria que contiene una fila. Usted
verá esto
comportamiento más adelante en este curso al probar las variables. Sin embargo, desde una
cláusula SELECT sin DE
cláusula no puede recuperar datos de una tabla, vamos a tratar independiente SELECT
cláusulas como un caso especial que es
no directamente relacionados con esta lección. Vamos a examinar los elementos, su papel de
alto nivel en una sentencia SELECT,
y el orden en el que se evalúan por SQL Server.
No todos los elementos estarán presentes en cada consulta SELECT. Sin embargo, cuando un
elemento está presente, lo hará
siempre ser evaluados en el mismo orden con respecto a los demás presentes. Por ejemplo,
una DONDE
cláusula siempre se evalúa después de la cláusula FROM y antes de una cláusula GROUP BY, si
existe.
Vamos a pasar a discutir el orden de estas operaciones en el siguiente tema.
Nota: A los efectos de esta lección, los elementos opcionales adicionales tales como DISTINCT,
OVER, y TOP se omiten. Ellos serán introducidos y su orden discuten en módulos posteriores.
MCT USAR SOLAMENTE. ESTUDIANTE USO PROHIBIDO
Consulta Microsoft® SQL Server® 2-17
Procesamiento de Consultas Lógico
El orden en el que se escribe una sentencia SELECT es
no es que en el que el motor de base de datos SQL Server
evalúa y procesa la declaración.
Considere la siguiente consulta:
Procesamiento de Consultas Lógico
USO TSQL;
Empid SELECT, AÑO (FechaPedido) AS orderyear
DESDE Sales.Orders
DONDE custid = 71
GROUP BY empid, AÑO (FechaPedido)
TENER COUNT (*)> 1
ORDER BY empid, orderyear;
Antes de examinar el orden de tiempo de ejecución de las operaciones, vamos a examinar
brevemente lo que hace la consulta, aunque
detalles sobre muchas cláusulas tendrán que esperar hasta que el módulo correspondiente. La
primera línea se asegura de que estamos
conectado a la base de datos correcta para la consulta. Esta línea no ha sido sometido por su
orden en tiempo de ejecución.
Si es necesario, tenemos que esta se complete antes de ejecuta la principal consulta SELECT:
Cambiar conexión
USO TSQL; - Contexto de conexión a base de datos de cambio de la muestra.
La siguiente línea es el comienzo de la instrucción SELECT como lo escribimos, pero como
veremos, no va a ser la primera línea
evaluado.
La cláusula SELECT devuelve la columna empid y extrae sólo el año a partir de la columna
OrderDate:
Inicio de SELECT
Empid SELECT, AÑO (FechaPedido) AS orderyear
La cláusula FROM identifica qué tabla es la fuente de las filas de la consulta:
Cláusula FROM
DESDE Sales.Orders
La cláusula WHERE filtra las filas de la tabla Sales.Orders, manteniendo sólo aquellos que
satisfacen la
predicado:
Dónde cláusula
DONDE custid = 71
El GRUPO POR cláusula grupos juntos las filas restantes por empid, y luego por el año de la
orden:
Cláusula GROUP BY
GROUP BY empid, AÑO (FechaPedido)
Más tarde

predicado.

lista.
Tenga en cuenta que

Esta voluntad

predicado.

En esta demostración, verá cómo:

También podría gustarte