24
John Denis Suarez Ortiz Dorvin Eduardo Bardales Lucana Lenguaje Transact SQL BASE DE DATOS I Ingeniería de Sistemas y Telemática http://heroepatriota.blogspot.com Ing. Marco Aurelio Porro Chulli http://jhonsuarezortiz.blogspot.com

Lenguaje transact sql

Embed Size (px)

Citation preview

Page 1: Lenguaje transact sql

John Denis Suarez OrtizDorvin Eduardo Bardales Lucana

Lenguaje Transact SQL

BASE DE DATOS I

Ingeniería de Sistemas y Telemática

http://heroepatriota.blogspot.comIng. Marco Aurelio Porro Chulli

http://jhonsuarezortiz.blogspot.com

Page 2: Lenguaje transact sql

T-SQL es un lenguaje sumamente potente que nos ayuda a definir tareas mientras trabajamos con bases de datos

Transact-SQL también es conocido por sus abreviatura como T-SQL.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 expander los estándares de SQL no incluyendo programación procedural

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

Lenguaje Transact SQL

1.Contenido

Page 3: Lenguaje transact sql
Page 4: Lenguaje transact sql
Page 5: Lenguaje transact sql

Lenguaje de Definición de Datos(DDL)

Lenguaje de Manipulació

n de Datos(DML)

Lenguaje de Control de Datos(DCL)

Lenguaje de Control de

Transacciones (TCL)

Lenguaje de Control De Flujo(CFL) 

comandos

Page 6: Lenguaje transact sql

Instrucciones del Lenguaje de definición de datos (DDL)

Page 7: Lenguaje transact sql

Instrucciones del Lenguaje de definición de datos (DDL)

Las instrucciones de DDL definen la base de datos mediante la creación de bases de datos, tablas y tipos de datos definidos por el usuario. Las instrucciones de DDL se utilizan también para administrar los objetos de la base de datos. Algunas instrucciones de DDL son: CREATE nombreObjeto ALTER nombreObjeto DROP nombreObjeto Ejemplo USE BdTailor  Crear Una Tabla create table TbProducto(CodProducto char(6) NOT NULL,NombreProducto Varchar(30) NOT NULL,Precio money NOT NULL,existencia int NOT NULL,FechaIngreso datetime NOT NULL,idMarca char(4) NOT NULL,idCategoria char(3) NOT NULL)Go

Modificar Una Tabla Alter table TbProducto ADD constraint PK_Producto PRIMARY KEY(CodProducto)go  Eliminar Una Tabla Drop table TbProducto

Page 8: Lenguaje transact sql

Instrucciones del Lenguaje de Manipulación de datos (DML)

Page 9: Lenguaje transact sql

Instrucciones del Lenguaje de Manipulación de datos (DML)Las instrucciones de DML funcionan con los datos de la base de datos. Mediante estas instrucciones puede cambiarlos o recuperar información. Las instrucciones de DML incluyen: SELECT INSERT UPDATE DELETE Ejemplo Use BdTailor  Select

codProducto,NombreProducto,Precio,existencia from TbProductoGo  Insert Into

TbMarca(CodMarca,NombreMarca) values('M001','SAMSUNG')Go 

Update TbMarca set NombreMarca= 'LG' where CodMarca='M001'

Go  Delete TbMarca where CodMarca='M001'Go

Page 10: Lenguaje transact sql

Instrucciones del Lenguaje de control de datos (DCL)

Page 11: Lenguaje transact sql

Instrucciones del Lenguaje de control de datos (DCL)

Las instrucciones de DCL se utilizan para cambiar los permisos asociados con un usuario o función de la base de datos. En la tabla siguiente se describen las instrucciones de DCL.

Instrucción Descripción GRANT Crea una entrada en el sistema de seguridad que permite a un

usuario trabajar con datos o ejecutar ciertas instrucciones de Transact-SQL.

DENY Crea una entrada en el sistema de seguridad que deniega un permiso de una cuenta de seguridad e impide que el usuario, grupo o función herede el permiso a través de su pertenencia a grupos o funciones.

REVOKE Quita un permiso concedido o denegado previamente. De forma predeterminada, sólo los miembros de la función sysadmin, dbcreator, db_owner o db_securityadmin pueden ejecutar instrucciones DCL.

Page 12: Lenguaje transact sql

Instrucciones del Lenguaje de control de datos (DCL)

Ejemplo

USE BdTailorGRANT SELECT ON TbProducto TO public GO

Page 13: Lenguaje transact sql

Instrucciones del Lenguaje de control de Transacciones (DCL)

COMMIT: Guarda el trabajo realizadoROLLBACK: Restaurar la base de datos a la original, hasta el último COMMIT Transacciones implicitas y explicitas Para agrupar varias sentencias Transact SQL en una única transacción, disponemos de los siguientes métodos: Transacciones explícitasCada transacción se inicia explícitamente con la instrucción BEGIN TRANSACTION y se termina explícitamente con una instrucción COMMIT o ROLLBACK. Transacciones implícitasSe inicia automáticamente una nueva transacción cuando se ejecuta una instrucción que realiza modificaciones en los datos, pero cada transacción se completa explícitamente con una instrucción COMMIT o ROLLBACK. Para activar-desactivar el modo de transacciones implícitas debemos ejecutar la siguiente Instrucción.

Page 14: Lenguaje transact sql

Instrucciones del Lenguaje de control de Transacciones (DCL)

Page 15: Lenguaje transact sql

Instrucciones del Lenguaje de control de Transacciones (DCL)

Page 16: Lenguaje transact sql

Instrucciones del Lenguaje de control de Transacciones (DCL)

Page 17: Lenguaje transact sql

Instrucciones del Lenguaje de control de Flujo (DCL)

Disponemos de diferentes elementos para el control de flujo, como pueden ser RETURN, IF... ELSE, WHILE, BREAK, CONTINUE, GO TO, EXECUTE, etc. En los siguientes apartados aprenderemos cómo utilizarlos.IF… ELSEProporciona una ejecución condicional, permite ejecutar o no ciertas instrucciones dependiendo de si se cumple o no una determinada condición

Si la condición se cumple (da como resultado TRUE) se ejecuta la instrucción SQL o bloque de instrucciones que aparecen a continuación de la condición, si la condición no se cumple se ejecutan las sentencias que aparecen después de la palabra ELSE. El bloque ELSE es opcional.

Page 18: Lenguaje transact sql

Instrucciones del Lenguaje de control de Flujo (DCL)Ejemplo: Si nos queremos guardar en una consulta todos los ejemplos para probarlos en cualquier momento, es conveniente antes de los CREATE PROCEDURE colocar un DROP PROCEDURE para que la instrucción CREATE no dé error si el procedimiento ya existe, pero la primera vez la instrucción DROP PROC nos dará error porque el procedimiento todavía no existe, así que lo mejor es ejecutar el DROP sólo si el procedimiento existe, utilizando la función object_id(‘nombre_de_objeto’,’tipo de objeto’) que nos devuelve el id del objeto y NULL si el objeto no existe

Page 19: Lenguaje transact sql

Instrucciones del Lenguaje de control de Flujo (DCL)WHILE - BREAK – CONTINUEEsta instrucción permite definir un bucle que repite una sentencia o bloque de sentencias mientras se cumpla una determinada condición.Podemos anidar bucles, colocar un bucle WHILE dentro de otro.

BREAK Produce la salida del bucle WHILE más interno. La instrucción BREAK interna sale al siguiente bucle más externo. Todas las instrucciones que se encuentren después del final del bucle interno se ejecutan primero y después se reinicia el siguiente bucle más externo.CONTINUE Hace que se reinicie el bucle WHILE y omite las instrucciones que haya después de la palabra clave CONTINUE.

Page 20: Lenguaje transact sql

2.ResumenEn este trabajo hemos presentado los comandos más utilizadas del lenguaje Transact sql.Como ya hemos comentado el Lenguaje Transact SQL es un lenguaje sumamente potente que nos ayuda a definir tareas mientras trabajamos con base 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 triggersRecordemos cómo será la creación de una base de datos con SQL:

1). En primer lugar, tendremos que dar nombre a la base de datos, con la sentencia CREATE DATABASE, si la hay, o con CREATE SCHEMA.2). A continuación definiremos las tablas, los dominios, las aserciones y las vistas que formarán nuestra base de datos.3). Una vez definidas las tablas, que estarán completamente vacías, se deberán llenar con la sentencia INSERT INTO.Cuando la base de datos tenga un conjunto de filas, la podremos manipular, ya sea actualizando filas o bien haciendo consultas.Además, podemos usar todas las sentencias de control que hemos explicado.

Page 21: Lenguaje transact sql

3.SummaryIn this paper we have presented the most commonly used language of Transact-SQL commands.As mentioned the Transact SQL language is a very powerful language that helps us define tasks while working with database. Because this language has some restrictions on the language itself we see almost always used in the creation of stored procedures, user roles and also in triggersRemember how will the creation of a database with SQL:1) First, we have to give a name to the database with the CREATE DATABASE, if any, or CREATE SCHEMA.2) Then define the tables, domains, assertions and views that form our database.3) Once you have defined tables, which will be completely empty, they should be filled with the INSERT INTO statement.When the database has a set of rows, we can manipulate, either updating rows or doing consultations.In addition, we can use all control statements that we have explained.

Page 22: Lenguaje transact sql

4.RecomendacionesAl momento de Utilizar el Lenguaje Transact Sql hay que tener algunas consideraciones:

No utilizar un SELECT *, y esto más que buena práctica debería ser regla No use la cláusula into nombre de tabla (“SELECT… INTO”). Esto bloqueará

mientras se ejecuta la consulta las tablas del sistema. En su lugar cree primero las tablas y luego re-escribe la sentencia como INSERT INTO tabla_name SELECT.

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.

Es recomendable usar joins a un subquery. Promover el uso de EXISTS y NOT EXISTS, en lugar de IN y NOT IN.

Page 23: Lenguaje transact sql

6.Apreciación del EquipoTransact-SQL es fundamental para trabajar con SQL Server. Ya que 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.7.Glosario de TérminosSybase: fue una compañía dedicada al desarrollo de tecnología de la Información.Dbcreator: Es un tipo de archivo DAO asociado a Third-Party Application desarrollado por DreamMail para el Sistema Operativo de Windows.Restrict: restringirCascade: CascadaUnion all: Une o selecciona todos los valores

El lenguaje Transact sql nos 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.

5.Conclusiones