Você está na página 1de 14

LENGUAJE TRANSACT SQL

1. Contenido

Definición
Transact-SQL también es conocido por sus abreviatura como T-SQL, como
definición es una extensión del SQL Microsoft junto son Sybase. Lo que
conocemos a SQL como el lenguaje de búsqueda estructurado lo que viene
hacer T-SQL es expandir los estándares de SQL no incluyendo programación
procedural, como algunas otras funciones para matemáticas, fechas, etc.

T-SQL es un lenguaje sumamente 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. Podemos hacer uso de T-SQL en lenguajes de programación como
puede ser Visual Basic. NET, C, Java. También lo podemos ejecutar en un
entorno SQL Server Management Studio. Se dice que T-SQL es un lenguaje muy
parecido al lenguaje hablado.

Tipos de Comandos (DDL, DML, etc.)

El DDL (Lenguaje de Descripción de Datos.)

Es la parte del SQL dedicada a la definición de la base de datos, consta de


sentencias para definir la estructura de la base de datos, permiten crear la base
de datos, crear, modificar o eliminar la estructura de las tablas, crear índices,
definir reglas de validación de datos, relaciones entre las tablas, etc. Permite
definir gran parte del nivel interno de la base de datos. Por este motivo estas
sentencias serán utilizadas normalmente por el administrador de la base de
datos.
 CREATE, se usa para crear una base de datos, tabla, vistas, etc.
 ALTER, se utiliza para modificar la estructura, por ejemplo añadir o
borrar columnas de una tabla.
 DROP, con esta sentencia, podemos eliminar los objetos de la
estructura, por ejemplo un índice o una secuencia.
El DCL (Lenguaje de Control de Datos.)

Ejerce un control sobre los datos tal como la asignación de privilegios de acceso
a los datos (GRANT/REVOKE), La gestión de transacciones
(COMMIT/ROLLBACK).
Una transacción se puede definir como un conjunto de acciones que se tienen
que realizar todas o ninguna para preservar la integridad de la base de datos.
Por ejemplo supongamos que tenemos una base de datos para las reservas de
avión. Cuando un usuario pide reservar una plaza en un determinado vuelo, el
sistema tiene que comprobar que queden plazas libres, si quedan plazas
reservará la que quiera el usuario generando un nuevo billete y marcando la
plaza como ocupada. Aquí tenemos un proceso que consta de dos operaciones
de actualización de la base de datos (crear una nueva fila en la tabla de billetes
y actualizar la plaza reservada en el vuelo, poniéndola como ocupada) estas dos
operaciones se tienen que ejecutar o todas o ninguna, si después de crear el
billete no se actualiza la plaza porque se cae el sistema, por ejemplo, la base de
datos quedaría en un estado inconsistente ya que la plaza constaría como libre
cuando realmente habría un billete emitido para esta plaza. En este caso el
sistema tiene el mecanismo de transacciones para evitar este error. Las
operaciones se incluyen las dos en una misma transacción y así el sistema sabe
que las tiene que ejecutar las dos, si por lo que sea no se pueden ejecutar las
dos, se encarga de deshacer los cambios que se hubiesen producido para no
ejecutar ninguna.
Las instrucciones que gestionan las autorizaciones serán utilizadas normalmente
por el administrador mientras que las otras, referentes a proceso de
transacciones serán utilizadas también por los programadores.
 GRANT, permite otorgar permisos.
 REVOKE, elimina los permisos que previamente se han concedido.
El DML (Lenguaje de Manipulación de Datos.)

Se compone de las instrucciones para el manejo de los datos, para insertar


nuevos datos, modificar datos existentes, para eliminar datos y la más utilizada,
para recuperar datos de la base de datos. Veremos que una sola instrucción de
recuperación de datos es tan potente que permite recuperar datos de varias
tablas a la vez, realizar cálculos sobre estos datos y obtener resúmenes.
El DML interactúa con el nivel externo de la base de datos por lo que sus
instrucciones son muy parecidas, por no decir casi idénticas, de un sistema a
otro, el usuario sólo indica lo que quiere recuperar no cómo se tiene que
recuperar, no influye el cómo están almacenados los datos.
Es el lenguaje que utilizan los programadores y los usuarios de la base de datos.
SELECT, esta sentencia se utiliza para realizar consultas sobre los datos.
INSERT, con esta instrucción podemos insertar los valores en una base de
datos.
UPDATE, sirve para modificar los valores de uno o varios registros.
DELETE, se utiliza para eliminar las finas de una tabla.

Funciones - Identificadores
El nombre de un objeto de base de datos se conoce como su identificador.
Cualquier elemento de Microsoft SQL Server puede tener un identificador.
Servidores, bases de datos y objetos de bases de datos, como tablas, vistas,
columnas, índices, desencadenadores, procedimientos, restricciones, reglas,
etc. Pueden tener identificadores.
Se requiere que la mayor parte de los objetos tengan identificadores; pero para
ciertos objetos, como las restricciones, son opcionales.
El identificador de un objeto se crea cuando se define el objeto.
A continuación, el identificador se utiliza para hacer referencia al objeto. Por
ejemplo, la instrucción siguiente crea una tabla con el identificador TableXy dos
columnas con los identificadores KeyCol y Description:

CREATE TABLE TableX


(KeyCol INT PRIMARY KEY, Description nvarchar(80))

La intercalación de un identificador depende del nivel en que está definido. Se


asigna a los identificadores de objetos de instancia, como los inicios de sesión y
los nombres de base de datos, la intercalación predeterminada de la instancia.
A los identificadores de objetos de una base de datos, como nombres de tablas,
vistas y columnas, se asigna la intercalación predeterminada de la base de datos.
Por ejemplo, es posible crear dos tablas con nombres que solo se diferencian en
las mayúsculas en una base de datos con intercalación que distinga entre
mayúsculas y minúsculas, pero no se pueden crear en una base de datos con
intercalación que no distinga entre mayúsculas y minúsculas.

CLASES DE IDENTIFICADORES
Existen dos clases de identificadores:
Identificadores normales.- Siguen las reglas de formato de los identificadores.
Los identificadores normales no están delimitados cuando se usan en
instrucciones Transact-SQL.

SELECT *
FROM TableX
WHERE KeyCol = 124

Identificadores delimitados.- Se incluyen entre comillas dobles (") o corchetes ([


]). Los identificadores que siguen las reglas de formato de los identificadores
pueden no estar delimitados. Por ejemplo:

SELECT *
FROM [TableX] --Delimiter is optional.
WHERE [KeyCol] = 124 --Delimiter is optional.
Ambos identificadores, normales y delimitados, deben tener entre 1 y 128
caracteres. En el caso de las tablas temporales locales, el identificador puede
tener un máximo de 116 caracteres.
El nombre función es un calificado o no calificado que designa una función. El
gestor de bases de datos califica implícitamente un nombre de función no
calificado en una sentencia de SQL según el contexto.

Tipos de Datos – Palabras Reservadas

Microsoft SQL Server utiliza palabras clave reservadas para definir, manipular y
tener acceso a las bases de datos. Las palabras clave reservadas forman parte
de la gramática del lenguaje Transact-SQL que utiliza SQL Server para analizar
y comprender las instrucciones y lotes de Transact-SQL. Aunque resulta
sintácticamente posible utilizar palabras clave reservadas de SQL Server como
identificadores y nombres de objetos en secuencias de comandos de Transact-
SQL, sólo se puede hacer utilizando identificadores delimitados.

La siguiente tabla enumera las palabras clave reservadas de SQL Server.

ADD EXISTS PRECISION

ALL EXIT PRIMARY

ALTER EXTERNAL PRINT

AND FETCH PROC

ANY FILE PROCEDURE

AS FILLFACTOR PUBLIC

ASC FOR RAISERROR

AUTHORIZATION FOREIGN READ

BACKUP FREETEXT READTEXT

BEGIN FREETEXTTABLE RECONFIGURE

BETWEEN FROM REFERENCES


BREAK FULL REPLICATION

BROWSE FUNCTION RESTORE

BULK GOTO RESTRICT

BY GRANT RETURN

CASCADE GROUP REVERT

CASE HAVING REVOKE

CHECK HOLDLOCK RIGHT

CHECKPOINT IDENTITY ROLLBACK

CLOSE IDENTITY_INSERT ROWCOUNT

CLUSTERED IDENTITYCOL ROWGUIDCOL

COALESCE IF RULE

COLLATE IN SAVE

COLUMN INDEX SCHEMA

COMMIT INNER SECURITYAUDIT

COMPUTE INSERT SELECT

CONSTRAINT INTERSECT SESSION_USER

CONTAINS INTO SET

CONTAINSTABLE IS SETUSER

CONTINUE JOIN SHUTDOWN

CONVERT KEY SOME

CREATE KILL STATISTICS

CROSS LEFT SYSTEM_USER

CURRENT LIKE TABLE


CURRENT_DATE LINENO TABLESAMPLE

CURRENT_TIME LOAD TEXTSIZE

CURRENT_TIMESTAMP MERGE THEN

CURRENT_USER NATIONAL TO

CURSOR NOCHECK TOP

DATABASE NONCLUSTERED TRAN

DBCC NOT TRANSACTION

DEALLOCATE NULL TRIGGER

DECLARE NULLIF TRUNCATE

DEFAULT OF TSEQUAL

DELETE OFF UNION

DENY OFFSETS UNIQUE

DESC ON UNPIVOT

DISK OPEN UPDATE

DISTINCT OPENDATASOURCE UPDATETEXT

DISTRIBUTED OPENQUERY USE

DOUBLE OPENROWSET USER

DROP OPENXML VALUES

DUMP OPTION VARYING

ELSE OR VIEW

END ORDER WAITFOR

ERRLVL OUTER WHEN

ESCAPE OVER WHERE


EXCEPT PERCENT WHILE

EXEC PIVOT WITH

EXECUTE PLAN WRITETEXT

Operadores – Flujos de Control

Un operador es un símbolo que especifica una acción realizada por una o más
expresiones. En las siguientes tablas se incluyen las categorías de operadores
que utiliza SQL Server.

Operadores

Aritméticos

Lógicos
Bit a bit

Comparación
FLUJOS DE CONTROL

IF… ELSE, nos proporciona el control en la toma de decisión sobre la base de


una prueba lógica.
WHILE, nos repite una instrucción o un bloque de instrucciones mientras una
condición es verdadera.
BEGIN… END, nos define la extensión de un bloque de comandos T-SQL.
TRY… CATCH, nos define la estructura de manejo de excepciones.
BEGIN TRANSACTION, nos marcar un bloque de instrucciones como parte de
una transacción explicita.
Y para finalizar, COMMIT TRANSACTION o ROLLBACK TRANSACTION que
nos insta a aprobar o rechazar una ejecución dada de una transacción.

2. Resumen
T-SQL es un lenguaje sumamente 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. Podemos hacer uso de T-SQL en lenguajes de programación como
puede ser Visual Basic. NET, C, Java.

El DDL es la parte del SQL dedicada a la definición de la base de datos, consta


de sentencias para definir la estructura de la base de datos, permiten crear la
base de datos, crear, modificar o eliminar la estructura de las tablas, crear
índices, definir reglas de validación de datos, relaciones entre las tablas, etc.

El DCL ejerce un control sobre los datos tal como la asignación de privilegios de
acceso a los datos (GRANT/REVOKE), La gestión de transacciones
(COMMIT/ROLLBACK).
El DMIL se compone de las instrucciones para el manejo de los datos, para
insertar nuevos datos, modificar datos existentes, para eliminar datos y la más
utilizada, para recuperar datos de la base de datos.
3. Summary

T-SQL is an extremely powerful language that helps us define tasks while working
with databases. Because this language has some restrictions in the language
itself we almost always see it used in the creation of stored procedures, user
functions and also in triggers. We can make use of T-SQL in programming
languages such as Visual Basic. NET, C, Java.

The DDL is the part of the SQL dedicated to the definition of the database,
consists of statements to define the structure of the database, allow to create the
database, create, modify or eliminate the structure of the tables, create indexes ,
define data validation rules, relationships between tables, etc.

The DCL exercises control over data such as the allocation of data access
privileges (GRANT / REVOKE), transaction management (COMMIT /
ROLLBACK).

The DMIL consists of the instructions for the handling of the data, to insert new
data, modify existing data, to eliminate data and the most used, to recover data
from the database.

4. Recomendaciones

Es recomendable usar joins a un subquery.

En lo posible usar lo menos posible un ORDER BY dentro de la consulta y dejarlo


del lado del cliente o de la aplicación, ésta es una de las operaciones que más
consume recursos en una consulta.

5. Conclusiones

Especificar el alias de la tabla delante de cada campo definido en el select, esto


le ahorra tiempo al motor de tener que buscar a que tabla pertenece el campo
especificado.

No grabar los procedimientos almacenados con un nombre con prefijo “sp_”.


Cuando el nombre de un procedimiento almacenado comienza con “sp_”, SQL
Server lo busca en el siguiente orden:

Si una consulta tiene uno o más operadores OR, considera reescribir la consulta
en varias consultas que se unen usando el operador UNION ALL.

6. Apreciación del Equipo

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.
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.

7. Glosario de Términos

Triggers.- Un "trigger" (disparador o desencadenador) es un tipo de


procedimiento almacenado que se ejecuta cuando se intenta modificar los datos
de una tabla (o vista).

Se definen para una tabla (o vista) específica.

Se crean para conservar la integridad referencial y la coherencia entre los datos


entre distintas tablas.

ROLLBACK TRANSACTION.- Revierte una transacción explícita o implícita al


comienzo de la transacción o a un punto de rescate dentro de la transacción.
Puede usar ROLLBACK TRANSACTION para borrar todas las modificaciones
de datos realizadas desde el inicio de la transacción o hasta un punto de rescate.
También libera los recursos que posee la transacción.

Intercalación.- La intercalación define el conjunto de caracteres utilizados por


SQL Server para almacenar la información en la base de datos; además indica
la forma en que se utilizará la normalización de cadenas para las columnas
Unicode.

La intercalación se puede seleccionar entre varios conjuntos de caracteres


especificados por Windows o por SQL Server. La intercalación se debe
seleccionar al momento de la instalación; si no se escoge una en particular, SQL
Server empleará la intercalación utilizada por el sistema operativo; esta
intercalación se conoce como intercalación predeterminada.

Referencia de Transact-SQL.- Transact-SQL es fundamental para trabajar con


SQL Server. Todas las aplicaciones que se comunican con SQL Server lo hacen
enviando instrucciones Transact-SQL al servidor, independientemente de la
interfaz de usuario de la aplicación.

BACKUP.- Una copia de seguridad, respaldo, copia de respaldo, copia de


reserva (del inglés backup) en ciencias de la información e informática es una
copia de los datos originales fuera de la infraestructura que se realiza con el fin
de disponer de un medio para recuperarlos en caso de su pérdida.

8. Bibliografía o Linkografía

https://www.codejobs.biz/es/blog/2014/01/28/que-es-transact-sql

https://technet.microsoft.com/es-es/library/ms174290(v=sql.105).aspx

https://es.wikipedia.org/wiki/Transact-SQL

https://docs.microsoft.com/es-es/sql/t-sql/tutorial-writing-transact-sql-statements

Você também pode gostar