sql >> Base de Datos >  >> RDS >> Database

¿Qué es T-SQL?

Transact-SQL, a menudo abreviado como T-SQL o incluso TSQL, es la extensión propiedad de Microsoft y Sybase para SQL. Transact-SQL expande el estándar SQL para incluir características adicionales que no están incluidas en el estándar SQL.

Aquí hay un ejemplo de una declaración T-SQL simple:

CREATE DATABASE Movies;

Esto es tan simple como podría ser un ejemplo de T-SQL. Esto crea una nueva base de datos llamada Movies .

Sin embargo, T-SQL permite que se incluyan otras opciones en esta declaración, como dónde se deben ubicar los archivos de la base de datos, el tamaño de esos archivos, cuál debe ser su tamaño máximo y más.

Características de T-SQL

Algunas de las características de T-SQL incluyen:

  • Programación de procedimientos
  • Variables locales
  • Varias funciones de soporte para procesamiento de cadenas, procesamiento de fechas, matemáticas, etc.
  • Cambios en DELETE y UPDATE declaraciones. En particular, permiten agregar una cláusula FROM, lo que permite incluir uniones.
  • T-SQL tiene un BULK INSERT declaración que le permite importar un archivo de datos en una tabla de base de datos o ver en un formato especificado por el usuario.

Uno de los principales beneficios de las extensiones anteriores es que tiene mucha más capacidad de programación cuando usa T-SQL que SQL. Los procedimientos almacenados, por ejemplo, le permiten incorporar lógica de programación en su base de datos. Puede pasar uno o más parámetros a un procedimiento almacenado, y el procedimiento almacenado devolverá una salida que varía según los valores de los parámetros.

T-SQL también incluye una gran cantidad de funciones integradas, además de admitir funciones definidas por el usuario.

Un ejemplo de una función integrada

Aquí hay otro ejemplo básico, esta vez usando una de las funciones integradas de T-SQL:

SELECT GETDATE();

Resultado:

2018-05-06 23:30:37.003

En este caso usamos GETDATE() de T-SQL función para devolver la fecha y la hora actuales. Esto se usa junto con SELECT instrucción, que es una instrucción SQL común para devolver datos.

También podemos usar esa función como argumento para otra función. He aquí un ejemplo:

SELECT FORMAT(GETDATE(), 'MMM');

Resultado:

May

En este caso usamos T-SQL FORMAT() para extraer solo la parte del mes de la fecha y presentarla en un formato determinado. Puede ver más ejemplos de fecha/hora en Cómo formatear la fecha y la hora en SQL Server.

Historia de T-SQL

Aunque Transact-SQL (y SQL Server) se conoce más comúnmente como algo de Microsoft, en realidad es el resultado de una asociación entre Microsoft y Sybase que comenzó en 1987. Esta asociación se disolvió en 1994.

Después de esto, T-SQL siguió siendo compatible con los productos de base de datos lanzados por ambas empresas; sin embargo, cada empresa desarrolló sus productos de base de datos en su propia dirección. Por lo tanto, existen algunas diferencias entre Sybase T-SQL y Microsoft T-SQL.

T-SQL y herramientas GUI

Transact-SQL es fundamental para SQL Server. La mayoría de las operaciones en SQL Server se realizan utilizando T-SQL. Esto es cierto incluso si usa una herramienta GUI (como SSMS o DBeaver) y en realidad no hace ninguna programación. Cada vez que usa una aplicación para interactuar con SQL Server, la aplicación usa T-SQL en segundo plano para llevar a cabo la tarea especificada.

Pero SQL Server no es el único sistema de administración de bases de datos que admite Transact-SQL. Microsoft Azure SQL Database también es compatible con T-SQL. La mayoría de las características de T-SQL que usan las aplicaciones son totalmente compatibles con Microsoft SQL Server y Azure SQL Database (aunque hay algunas excepciones).

Acerca del comando GO

Cualquiera que haya usado T-SQL probablemente estará familiarizado con GO dominio. Esta palabra clave a menudo se coloca al final de un lote de declaraciones. Por ejemplo, el primer ejemplo anterior también podría escribirse así:

CREATE DATABASE Movies;
GO

Sin embargo, el GO El comando no es en realidad parte de Transact-SQL. De hecho, el GO El comando ni siquiera puede ocupar la misma línea que una instrucción Transact-SQL.

GO es uno de los comandos reconocidos por sqlcmd y osql utilidades, así como SQL Server Management Studio Code Editor para facilitar la legibilidad y la ejecución de lotes y scripts. El GO El comando señala el final de un lote de instrucciones Transact-SQL a las utilidades de SQL Server.

Las utilidades de SQL Server interpretan GO como una señal de que deben enviar el lote actual de instrucciones Transact-SQL a una instancia de SQL Server. El lote actual de declaraciones se compone de todas las declaraciones ingresadas desde el último GO , o desde el inicio de la sesión ad hoc o secuencia de comandos si este es el primer GO .

Otras extensiones SQL patentadas

Transact-SQL no es la única extensión del estándar SQL. Varios sistemas de bases de datos tienen sus propias extensiones. Por ejemplo, Oracle usa un lenguaje de procedimientos patentado llamado PL/SQL y PostgreSQL usa un lenguaje de procedimientos llamado PL/pgSQL.

Aunque las extensiones SQL propietarias tienen sus ventajas (como la funcionalidad extendida), también tienen sus desventajas. Una gran desventaja es que pueden dificultar las cosas si alguna vez necesita transferir una base de datos de un sistema a otro. Por ejemplo, si su organización decide repentinamente que utilizará Oracle en lugar de SQL Server, es posible que deba revisar todo el código de SQL Server y volver a escribirlo para Oracle. Esto también requiere que se ponga al día con la sintaxis de ambos sistemas.