sábado, 9 de julio de 2016

LENGUAJE TRANSACT SQL

                LENGUAJE 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.
TRANSACT-SQL es un lenguaje muy potente que nos permite definir casi cualquier tarea que queramos efectuar sobre la base de datos; incluye características propias de cualquier lenguaje de programación, características que nos permiten definir la lógica necesaria para el tratamiento de la información:

• Tipos de datos.
 • Definición de variables.
 • Estructuras de control de flujo.
 • Gestión de excepciones.
 • Funciones predefinidas.

Sin embargo también nos 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. Y por supuesto los lenguajes incluidos en la plataforma .NET.
También lo podremos ejecutar directamente de manera interactiva, por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio).


DATA DEFINITION LANGUAGE ( DDL)
Se utilizan para definir la estructura de base de datos o esquema.
Es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos así como de los procedimientos o funciones que permitan consultarlos.
Un Data Definition Language o Lenguaje de descripción de datos ( DDL ) es un lenguaje de programación para definir estructuras de datos .
El término DDL fue introducido por primera vez en relación con el modelo de base de datos CODASYL, donde el esquema de la base de datos ha sido escrito en un lenguaje de descripción de datos que describe los registros, los campos, y "conjuntos" que conforman el usuario modelo de datos.
Más tarde fue usado para referirse a un subconjunto de SQL, pero ahora se utiliza en un sentido genérico para referirse a cualquier lenguaje formal para describir datos o estructuras de información, como los esquemas XML.


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








Ejemplos

CREATE TABLE personas (id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL, nombre VARCHAR(40) NOT NULL,cedula varchar(20) UNIQUE NOT NULL);

ALTER TABLE nombre_actual RENAME TO nuevo_nombre;

ALTER TABLE tabla DROP campo_a_borrar;


DATA MANIPULATION LANGUAGE (DML)

Se utilizan para la gestión de datos dentro de los objetos de esquema.
Es un idioma proporcionado por los sistemas gestores de bases de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o modificación de los datos contenidos en las Bases de Datos del Sistema Gestor de Bases de Datos. El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.

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.

Ejemplo:
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE mitabla ( id INT PRIMARY KEY, nombre VARCHAR(20) );
INSERT INTO mitabla VALUES ( 1, 'Will' );
INSERT INTO mitabla VALUES ( 2, 'Marry' );
INSERT INTO mitabla VALUES ( 3, 'Dean' );
SELECT id, nombre FROM mitabla WHERE id = 1;
UPDATE mitabla SET nombre = 'Willy' WHERE id = 1;
SELECT id, nombre FROM mitabla;
DELETE FROM mitabla WHERE id = 1;
SELECT id, nombre FROM mitabla;
DROP DATABASE mydb;
SELECT count(1) from mitabla; da el número de registros en la tabla



DATA CONTROL LANGUAGE (DCL)
Un Lenguaje de Control de Datos (DCL por sus siglas en inglés: Data Control Language) es un lenguaje proporcionado por el Sistema de Gestión de Base de Datos que incluye una serie de comandos SQL que permiten al administrador controlar el acceso a los datos contenidos en la Base de Datos.

Comando
Descripción
   DENY
Se puede usar para evitar explícitamente que un usuario reciba un permiso particular.
Esto es útil cuando un usuario puede ser un miembro de una función o grupo que se concede un permiso y que desea evitar que el usuario hereden el permiso mediante la creación de una excepción
GRANT
Permite dar permisos a uno o varios usuarios o roles para realizar tareas determinadas.

Ejemplo de DENY

Los parámetros para el comando deny son idénticos a los utilizados para el comando GRANT. Por ejemplo, si desea asegurarse de que Mateo no recibiría la capacidad de eliminar la información de la tabla de empleados, usted debe ejecutar el siguiente comando:
DENY [permiso]
ON [objeto]
A [usuario]
Ejemplo  GRANT

Por ejemplo, suponga que desea conceder al usuario Joe la capacidad de recuperar información de la tabla empleados en una base de datos llamada HR. Es posible utilizar el siguiente SQLcomando:
GRANT SELECT 

hr.employees EN 

AL Joe
Joe ahora tendrá la posibilidad de recuperar información de la tabla empleados. Él no, sin embargo, ser capaz de conceder a otros usuarios permiso para recuperar la información de que la mesa porque no incluyó la cláusula WITH GRANT OPTION en la sentencia GRANT.


Denegar ELIMINAR
EN hr.employees
Mateo

CONTROL DE TRANSACCIÓN (TCL)
Una transacción es una unidad lógica de trabajo. O informalmente y trabajando con SQL, un conjunto de sentencias que se ejecutan como si fuesen una solo. En general, las sentencias que forman parte de una transacción se interrelacionan entre sí, y no tiene sentido que se ejecute una sin que se ejecuten las demás. Una Transacción termina con COMMIT; o ROLLBACK;

Comando
Descripción
   COMMIT
guarda el trabajo realizado.
ROLLBACK
restaurar la base de datos a la original, hasta el último commit.

La mayoría de las transacciones se inician de forma implícita al utilizar alguna sentencia que empieza con CREATE, ALTER, DROP, SET, DECLARE, GRANT o REVOKE, aunque existe la sentencia SQL para iniciar transacciones, que es la siguiente:
SET TRANSACTION {READ ONLY|READ WRITE};
Cada transacción se inicia explícitamente con la instrucción BEGIN TRANSACTION y se termina explícitamente con una instrucción COMMIT o ROLLBACK.
Ejemplos: 
START TRANSACTION;
INSERT INTO t SET name = ‘William’;
INSERT INTO t SET name = ‘Wallace’;
COMMIT;
START TRANSACTION;
INSERT INTO t SET name = ‘Gromit’;
INSERT INTO t SET name = ‘Wallace’;
ERROR 1062 (23000): Duplicate entry ‘Wallace’ for key 1
ROLLBACK;
La transacción más simple en SQL Server es una única sentencia SQL. Por ejemplo una sentencia como esta:
UPDATE Productos SET Precio_Unitario = 20 WHERE Nombre_Producto =’Palta’



(CFL)LENGUAJE DE CONTROL DE FLUJO
Las palabras clave del lenguaje de control de flujo de Transact-SQL son:

BEGIN…END
RETURN
BREAK
THROW
CONTINUE
TRY…CATCH
GOTO label
WAITFOR
IF…ELSE
WHILE

BEGIN / END
Encierra un conjunto de instrucciones Transact-SQL de forma que se pueda ejecutar un grupo de instrucciones Transact-SQL.
BEGIN

sql_statement | statement_block 

END
Ejemplo 
USE AdventureWorks2012;
GO
BEGIN TRANSACTION;
GO
IF @@TRANCOUNT = 0
BEGIN
SELECT FirstName, MiddleName 
FROM Person.Person WHERE LastName = ‘Adams’;
ROLLBACK TRANSACTION;
PRINT N’Rolling back the transaction two times would cause an error.’;
END;
ROLLBACK TRANSACTION;
PRINT N’Rolled back the transaction.’;
GO
/*
Rolled back the transaction.
*/

RESUMEN
(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.
SUMMARY
(T-SQL) is an extension to Microsoft and Sybase SQL. SQL, which is often said to be a Structured Query language (for its acronym in English) is a standardized computer language, originally developed by IBM to search, alter and define relational databases using declarative sentences. T-SQL expands the SQL standard to include procedural programming, local variables, various support functions for string processing, date processing, mathematics, etc., and changes to the DELETE and UPDATE statements. These additional features make T-SQL language that meets the characteristics of an automaton Turing.
RECOMENDACIONES

Algunas consultas consumen más recursos que otras. Por ejemplo, las consultas que devuelven grandes conjuntos de resultados y las que contienen cláusulas WHERE que no son únicas siempre consumen muchos recursos.
Sin embargo, para mejorar el rendimiento de las consultas, puede:

·         Agregar más memoria. Esta solución es especialmente útil si el servidor ejecuta muchas consultas complejas y varias consultas se ejecutan lentamente.

·         Utilizar más de un procesador. Varios procesadores permiten que el Motor de base de datos use consultas en paralelo.

CONCLUSIONES

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.

GLOSARIO

 Estandarizado: Ajustar o adaptar las cosas para que se asemejen a un tipo, modelo o norma común.
Embebido: Un sistema embebido o empotrado es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas frecuentemente en un sistema de computación en tiempo rea

BIBLIOGRAFÍAS Y FUENTES DE INFORMACIÓN

No hay comentarios:

Publicar un comentario