¿Te gustaría aprender Visual Studio .net desde cero?
Tenemos los cursos que necesitas.¡Haz clic aquí!
Transact-SQL. El SQL es un lenguaje universal que se emplea en cualquier sistema gestor de bases de datos relacional. Tiene un estándar definido, a partir del cual cada sistema gestor ha desarrollado su versión propia. En SQL Server la versión de SQL que se utiliza se llama Transact-SQL.
Transact-SQL ó T-SQL es un lenguaje muy potente que permite definir casi cualquier tarea que se quiera efectuar sobre la base de datos, va más allá de un lenguaje SQL cualquiera ya que incluye características propias de cualquier lenguaje de programación, características que permiten definir la lógica necesaria para el tratamiento de la información.
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.
Características generales del lenguaje Transact-SQL
Es el principal medio de programación y administración de SQL Server. Expone las palabras clave para las operaciones que pueden realizarse en SQL Server, incluyendo creación y modificación de esquemas de la base de datos, introducir y editar datos en la base de datos, así como supervisión y gestión del propio servidor.
Las aplicaciones cliente, ya sea que consuman datos o administren el servidor, aprovechan la funcionalidad de SQL Server mediante el envío de consultas de T-SQL y declaraciones que son procesadas por el servidor y los resultados (o errores) regresan a la aplicación cliente SQL Server que sean administrados mediante T-SQL. Para esto, expone tablas de sólo lectura con estadísticas del servidor.
La funcionalidad para la administración se expone a través de procedimientos almacenados definidos por el sistema que se pueden invocar desde las consultas de T-SQL para realizar la operación de administración. También es posible crear servidores vinculados (Linked Servers) mediante T-SQL. Los servidores vinculados permiten el funcionamiento entre múltiples servidores con una consulta.
Transact-SQL, es fundamental para trabajar con Microsoft® 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. Se debe recordar que Transact-SQL no implementa todas las opciones presentes en el SQL92 y otras las modifica o extiende. Además implementa una serie de recursos que no están vinculados con los estándares, generalmente están relacionadas con facilidades de programación y acceso a los datos.
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.
La sencillez también radica en que lo que indicamos es lo que queremos obtener, no el cómo lo tenemos que obtener, de eso se encargará el sistema automáticamente. Las sentencias SQL además siguen todas el mismo patrón. Empiezan por un verbo que indica la acción a realizar, completado por el objeto sobre el cual queremos realizar la acción, seguido de una serie de cláusulas (unas obligatorias, otras opcionales) que completan la frase, y proporcionan más detalles acerca de lo que se quiere hacer.
Reglas de formato de los identificadores
Los identificadores son los nombres de los objetos de la base de datos: servidores, bases de datos, tablas, vistas, columnas, índices, desencadenadores, procedimientos, restricciones, reglas, etcétera.
Las reglas de formato de los identificadores normales dependen del nivel de compatibilidad de la base de datos, utilizando la cláusula SET COMPATIBILITY_LEVEL de la instrucción ALTER TABLE. Cuando el nivel de compatibilidad es 90, (el asignado por defecto) se aplican las reglas siguientes para los nombres de los identificadores:
- No puede ser una palabra reservada.
- El nombre debe tener entre 1 y 128 caracteres, excepto para algunos tipos de objetos en los que el número es más limitado.
- El nombre debe empezar por:
- Una letra, como aparece definida por el estándar Unicode 3.2. La definición Unicode de letras incluye los caracteres latinos de la «a» a la «z» y de la «A» a la «Z».
- El carácter de subrayado ( _ ), arroba ( @ ) o número ( # ).
- Ciertos símbolos al principio de un identificador tienen un significado especial en SQL Server. Un identificador que empieza con el signo de arroba indica un parámetro o una variable local. Un identificador que empieza con el signo de número indica una tabla o procedimiento temporal. Un identificador que empieza con un signo de número doble (##) indica un objeto temporal global.
- Algunas funciones de Transact-SQL tienen nombres que empiezan con un doble signo de arroba (@@). Para evitar confusiones con estas funciones, se recomienda no utilizar nombres que empiecen con @@.
- No se permiten los caracteres especiales o los espacios incrustados.
Si queremos utilizar un nombre que no siga estas reglas, normalmente para poder incluir espacios en blanco, lo tenemos que escribir encerrado entre corchetes (también se pueden utilizar las comillas pero se recomienda utilizar los corchetes).
Tipos de datos
En SQL Server, cada columna, expresión, variable y parámetro está asociado a un tipo de datos. Un tipo de datos, realmente define el conjunto de valores válidos para los campos definidos de ese tipo. Indica si el campo puede contener: datos numéricos, de caracteres, moneda, fecha y hora, etcétera. SQL Server proporciona un conjunto de tipos de datos del sistema que define todos los tipos de datos que pueden utilizarse. También podemos definir nuestros propios tipos de datos en Transact-SQL.
Los tipos de datos más utilizados son
- Los numéricos: int, decimal, money
- Los de fecha y hora: datetime
- Y las cadenas de caracteres: varchar
Las constantes
Una constante es un valor específico o un símbolo que representa un valor de dato específico. El formato de las constantes depende del tipo de datos del valor que representan. Las más utilizadas.
- Las constantes numéricas se escriben mediante una cadena de números, con la consideración de que el separador decimal es un punto, no una coma, y que si se trata de un valor monetario deberemos incluir la moneda al inicio de la constante. De forma predeterminada, los valores serán positivos. Para indicar lo contrario escribimos el signo – al principio.
- Las constantes de fecha y hora van entre comillas simples y con un formato de fecha y hora adecuado.
- Y las constantes en cadenas de caracteres van entre comillas simples. Por ejemplo: ‘Juan Muñoz López’.
Para indicar valores negativos y positivos añadimos el prefijo + o – según sea el valor positivo o negativo. Sin prefijo se entiende que el valor es positivo.
Las expresiones
Una expresión es una combinación de símbolos y operadores que el motor de base de datos de SQL Server evalúa para obtener un único valor. Una expresión simple puede ser una sola constante, variable, columna o función escalar. Los operadores se pueden usar para combinar dos o más expresiones simples y formar una expresión compleja. Dos expresiones pueden combinarse mediante un operador si ambas tienen tipos de datos admitidos por el operador y se cumple al menos una de estas condiciones:
- Las expresiones tienen el mismo tipo de datos.
- El tipo de datos de menor prioridad se puede convertir implícitamente al tipo de datos de mayor prioridad.
- La función CAST puede convertir explícitamente el tipo de datos con menor prioridad al tipo de datos con mayor prioridad o a un tipo de datos intermedio que pueda convertirse implícitamente al tipo de datos con la mayor prioridad.
Tipos de operadores
- Operadores numéricos
- Operadores bit a bit: realizan manipulaciones de bits entre dos expresiones de cualquiera de los tipos de datos de la categoría del tipo de datos entero.
- Operadores de comparación.
- Operadores lógicos.
- Operadores de cadenas.
Resultados de la expresión
- Si se combinan dos expresiones mediante operadores de comparación o lógicos, el tipo de datos resultante es booleano y el valor es uno de los siguientes: TRUE, FALSE o UNKNOWN.
- Cuando dos expresiones se combinan mediante operadores aritméticos, bit a bit o de cadena, el operador determina el tipo de datos resultante.
Las expresiones complejas formadas por varios símbolos y operadores se evalúan como un resultado formado por un solo valor. El tipo de datos, intercalación, precisión y valor de la expresión resultante se determina al combinar las expresiones componentes de dos en dos, hasta que se alcanza un resultado final. La prioridad de los operadores de la expresión define la secuencia en que se combinan las expresiones.
Funciones
SQL Server proporciona numerosas funciones integradas y permite crear funciones definidas por el usuario.Existen diferentes tipos de funciones:
- Funciones de conjuntos de filas, devuelven un objeto que se puede utilizar, en instrucciones Transact-SQL, en lugar de una referencia a una tabla.
- Funciones de agregado (también llamadas funciones de columna), operan sobre una colección de valores y devuelven un solo valor de resumen.
- Funciones de categoría, devuelven un valor de categoría para cada fila de un conjunto de filas, por ejemplo devuelve el número de la fila, el ranking de la fila en una determinada ordenación, etc.
- Funciones escalares, operan sobre un valor y después devuelven otro valor. Las funciones escalares se clasifican según el tipo de datos de sus operandos.
Las variables
En Transact-SQL podemos definir variables, que serán de un tipo de datos determinado, como tipos de datos se pueden utilizar los propios de la base de datos SQL-SERVER, pero también es posible utilizar tipos propios del lenguaje que no pueden ser utilizados en DDL (Lenguaje de Descripción de Datos). El tipo Cursor y el tipo Table son dos de estos tipos.
Las variables se definen utilizando la instrucción DECLARE con el siguiente formato: DECLARE @nbvariable tipo El nombre de la variable debe empezar por el símbolo @, este símbolo hace que SQL interprete el nombre como un nombre de variable y no un nombre de objeto de la base de datos. Por ejemplo: DECLARE @empleados INT Con esto hemos definido la variable @empleados de tipo entero.
Para asignar un valor a una variable, la asignación se realiza con la palabra SELECT y el signo igual con el formato: SELECT @nbvariable = valor El valor puede ser cualquier valor constante, otro nombre de variable, una expresión válida o algo más potente, parte de una sentencia SELECT de SQL. El valor almacenado en la variable se puede visualizar mediante la orden PRINT. o SELECT PRINT @nbvariable o SELECT @nbvariable El valor almacenado en la variable se visualizará en la pestaña de resultados. También se puede usar para escribir mensajes: PRINT ‘Este es el mensaje’
Otros elementos del lenguaje
- Comentarios. Como en cualquier otro lenguaje de programación, se utilizan comentarios destinados a facilitar la legibilidad del código. En SQL se insertan comentarios con los signos:
Insertar Imagen tabla
- USE. Cambia el contexto de la base de datos al de la base de datos especificada.
USE nbBaseDeDatos
Hace que la base de datos activa pase a ser la base de datos indicada en la instrucción, las consultas que se ejecuten a continuación se harán sobre tablas de esa base de datos si no se indica lo contrario. Es una instrucción útil para asegurarnos de que la consulta se ejecuta sobre la base de datos correcta.
- GO. No es una instrucción Transact-SQL, sino un comando reconocido por las utilidades sqlcmd y osql, así como por el Editor de código de SQL Server Management Studio.
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 instrucciones está formado por todas las instrucciones específicadas desde el último comando GO o desde el comienzo de la sesión o script si se trata del primer comando GO. Por ejemplo si queremos crear una consulta para crear una base de datos y sus tablas, después del CREATE DATABASE…; tenemos que poner GO antes del primer CREATE TABLE para que el sistema efectúe la primera operación y la base de datos esté creada antes de ejecutar el primer CREATE TABLE.
- BEGIN…END. Encierra un conjunto de instrucciones Transact-SQL de forma que estas instrucciones formen un bloque de instrucciones.
Te esperamos en los siguientes artículos en donde hablaremos más acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.
¿Te gustaría aprender Visual Studio .net desde cero?
Tenemos los cursos que necesitas.¡Haz clic aquí!