16
LENGUAJE TRANSACT SQL INTEGRANTES: Vannesa Del Pilar Salazar Ugaz. Thalía Margarita Serrano Díaz. Universidad Politécnica Amazónica

Lenguaje transact sql

Embed Size (px)

Citation preview

Page 1: Lenguaje transact sql

LENGUAJE TRANSACT SQL

• INTEGRANTES: Vannesa Del Pilar Salazar Ugaz.

Thalía Margarita Serrano Díaz.

Universidad Politécnica Amazónica

Page 2: Lenguaje transact sql

Definición

Transact-SQL (T-SQL) es una extensión al SQL de Microsoft y Sybase. SQL, que frecuentemente se dice ser un Lenguaje de Búsquedas Estructurado (por sus siglas en inglés), es un lenguaje de cómputo estandarizado, desarrollado originalmente por IBM para realizar búsquedas, alterar y definir bases de datos relacionales utilizando sentencias declarativas. T-SQL expande el estándar de SQL para incluir programación procedural, variables locales, varias funciones de soporte para procesamiento de strings, procesamiento de fechas, matemáticas, etc, y cambios a las sentencias DELETE y UPDATE. Estas características adicionales hacen de T-SQL un lenguaje que cumple con las características de un autómata de Turing.

Page 3: Lenguaje transact sql

El Transact-SQL permite: Definir bloques de instrucciones SQL que se tratan como

unidades de ejecución. Realizar ejecuciones condicionales. Realizar ejecuciones iterativas o repetitivas. Garantizar el tratamiento modular con la declaración de

variables locales y el uso de procedimientos almacenados. Manipular tupla a tupla el resultado de una consulta.

Page 4: Lenguaje transact sql

Características generales del lenguaje Transact-SQL:El lenguaje SQL se creó con la finalidad de ser un lenguaje muy potente y a la vez muy fácil de utilizar, se ha conseguido en gran medida ya que con una sola frase (instrucción) podemos recuperar datos complejos (por ejemplo datos que se encuentran en varias tablas, combinándolos, calculando resúmenes), y utilizando un lenguaje muy cercano al lenguaje hablado (¡suponiendo que hablamos inglés, claro!).

Page 5: Lenguaje transact sql

Sin embargo no permite: Crear interfaces de usuario. Crear aplicaciones ejecutables, sino elementos que en

algún momento llegarán al servidor de datos y serán ejecutados.

Debido a estas restricciones se emplea generalmente para crear procedimientos almacenados, triggers y funciones de usuario. Puede ser utilizado como cualquier SQL como lenguaje embebido en aplicaciones desarrolladas en otros lenguajes de programación como Visual Basic, C, Java, etcétera.

Page 6: Lenguaje transact sql

Comando Descripción

CREATE Utilizado para crear nuevas tablas, stored procedures e índices

DROP Empleado para eliminar tablas, stored procedures e índices

ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos

Comandos DLL:

Comandos DDL (create, alter, y drop), DML (insert, update, delete y select), DCL (deny y grant), TCL (commit y rollback) CFL (begin, if, while, etc.)

Page 7: Lenguaje transact sql

Comandos DML:

Comando Descripción

SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado.

INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.

DELETE Utilizado para modificar los valores de los campos y registros especificados.

UPDATE Utilizado para eliminar registros de una tabla de una base de datos.

Page 8: Lenguaje transact sql

Comandos DCL:

Comando Descripción

GRANT Permite dar permisos a uno o varios usuarios o roles para realizar tareas determinadas.

REVOKE Permite eliminar permisos que previamente se han concedido con GRANT.

Page 9: Lenguaje transact sql

Comandos TCL:

Comando Descripción

COMMIT Guarda el trabajo realizadoROLLBACK Restaura la base de datos a la original,

hasta el último COMMIT

Comandos CFL:

Comando Descripción

BEGIN- END Puede ejecutar un conjunto de instrucciones TRANSACT SQL

IF…ELSE Evalúa una condición y determina el de flujo de código

TRY…CATCH Permite el control de errores

Page 10: Lenguaje transact sql

Ejemplos:A. Usar SELECT para recuperar filas y columnasEn el siguiente ejemplo se muestran tres fragmentos de código. En el primer ejemplo de código, se devuelven todas las filas (no se especifica la cláusula WHERE) y todas las columnas (con *) de la tabla Product de la base de datos

USE AdventureWorks2012;GOSELECT *FROM Production.ProductORDER BY Name ASC;-- Alternate way.USE AdventureWorks2012;GOSELECT p.*FROM Production.Product AS pORDER BY Name ASC;GO

Page 11: Lenguaje transact sql

B. Usar SELECT con encabezados de columna y cálculosEn los siguientes ejemplos se devuelven todas las filas de la tabla Producto. En el primer ejemplo se devuelven las ventas totales y los descuentos de cada producto. En el segundo ejemplo se calculan los beneficios totales de cada producto.

USE AdventureWorks2012;GOSELECT p.Name AS ProductName, NonDiscountSales = (OrderQty * UnitPrice),Discounts = ((OrderQty * UnitPrice) * UnitPriceDiscount)FROM Production.Product AS p INNER JOIN Sales.SalesOrderDetail AS sodON p.ProductID = sod.ProductID ORDER BY ProductName DESC;GO

Page 12: Lenguaje transact sql

C. Usar DISTINCT con SELECTEn el siguiente ejemplo se utiliza DISTINCT para evitar la recuperación de títulos duplicados.

USE AdventureWorks2012;GOSELECT DISTINCT JobTitleFROM HumanResources.EmployeeORDER BY JobTitle;GO

Page 13: Lenguaje transact sql

RESUMEN

Transact-SQL es fundamental para trabajar con SQL Server, es un lenguaje potente que nos ayuda a definir tareas mientras trabajamos con bases de datos. Debido a que este lenguaje tiene algunas restricciones en el propio lenguaje casi siempre lo vemos utilizado en la creación de los procedimientos almacenados, funciones de usuario y también en los triggers.

Page 14: Lenguaje transact sql

RECOMENDACIONES

EN SELECT:- Promover el uso de EXISTS y NOT EXISTS, en lugar de IN y NOT IN.- Si usa el operador UNION y existe la seguridad de que ambos select NO tienen registros duplicados, entonces es mejor usar UNION ALL, para evitar que implícitamente se haga uso del operador DISTINCT el cual puede requerir que se almacenen todos los datos de salida en una tabla temporal para que luego se reordenen y se filtren los datos duplicados, lo cual aumenta considerablemente el costo de la consulta.PROCEDIMIENTOS ALMACENADOS:- No usar GOTO… en remplazo usar Try Catch- Se recomienda que un procedimiento no sobrepase las 400 líneas de código (sin contemplar los comentarios). En caso que tengas un procedimiento demasiado grande es más adecuado particionarlo. Tener en cuenta que las tablas temporales y transacciones se mantienen en procedimientos dependientes.

Page 15: Lenguaje transact sql

WHERE:-Si se usa LIKE en la cláusula WHERE, se debe evitar el uso del operador “%” al principio de la cadena a buscar dado que originaría que se tienen que leer todos los datos de la tabla para poder responder dicha consulta, adicionalmente es recomendable que existan (como mínimo) 3 caracteres antes del operador “%”.-Las columnas filtro TIENEN QUE SER del mismo tipo de la columna que existe en la tabla (para evitar conversiones al momento de ejecución).

Page 16: Lenguaje transact sql

CONCLUSIONES

- Que es un lenguaje muy utilizado para definir, controlar y acceder a los datos almacenados de una base de datos.- Es un lenguaje universal que se emplea en cualquier sistema gestor de base de datos.- Es un lenguaje muy potente que nos ayuda a definir tareas mientras trabajamos con bases de datos.