qué es sql

11
SQL, MANERA DE EJECUTAR SENTENCIAS ING. WILLIAM SÁNCHEZ SÁNCHEZ

Upload: william-sanchez

Post on 26-Jun-2015

189 views

Category:

Education


0 download

DESCRIPTION

Esta presentación nos da una breve descripción de las formas de ejecutar sentencias; de forma Dinámica, Transacciones,Batch y Scripts.

TRANSCRIPT

Page 1: Qué es SQL

SQL, MANERA DE EJECUTAR SENTENCIAS

ING. WILLIAM SÁNCHEZ SÁNCHEZ

Page 2: Qué es SQL

¿QUÉ ES SQL?

Un lenguaje estructurado para consultas

Permite acceder y manejar bases de datos

Un Estándar (ANSI American National Standards Institute)

Page 3: Qué es SQL

ejecutar consultas

obtener datos

insertar , actualizar y

borrar registros

crear vistas

configurar permisos a tablas, procedimientos, y

vistas

crear nuevas bases de

datos

crear nuevas tablas en una base de datos

crear procedimientos almacenados(código almacenado) en una

base de datos

¿Qué puede hacer SQL?

Page 4: Qué es SQL

SENTENCIAS

Create

Alter

Drop

TruncateInsert

Update

Delete

Page 5: Qué es SQL

Dinámicos

Batch

Transacción

Scripts

FORMAS DE APLICAR

SENTENCIAS

Page 6: Qué es SQL

SENTENCIA -DINÁMICA

Son generadas durante la ejecución de un script. Por ejemplo se puede generar un store procedure con variables para construir una sentencia SELECT que incorpore esas variables.

Siempre van acompañadas de la palabra EXECUTE (Transact-SQL) con strings y variables. SQL determina el valor de las variables conforme se va ejecutando el script.

EJEMPLO:

DECLARE @tabla varchar(20), @bd

varchar(20)SET @tabla = 'authors'

SET @bd = 'pubs'EXECUTE ('USE '+ @bd + 'SELECT * FROM ' +

@tabla )

Page 7: Qué es SQL

SENTENCIA - BATH

Es la ejecución de varias sentencias juntas.

Cada vez que se ejecuta una sentencia de SQL individualmente, el servidor presenta cierto overhead para su procesamiento, en cambio si se ejecuta varias sentencias de SQL juntas dentro de un batch recibe un solo overhead para todas las sentencias ejecutadas dentro del batch.

Los batches mejoran el performance de SQL debido a que compila y ejecuta todo junto.

Si durante la ejecución del batch SQL detecta un error de sintaxis, no se procesa ninguna sentencia dentro del batch.

Los batch se definen utilizando el comando GO, este comando no es una sentencia de SQL es solo una forma de identificar el final de un batch a través de las utilerías de SQL SQL trata a todas las sentencias que están antes de un GO como un solo batch.

EJEMPLO: USE pubs

SELECT MAX(price) AS 'Máximo precio'FROM titlesPRINT ' 'SELECT MIN(price) AS 'Menor precio' FROM titlesPRINT ' 'SELECT AVG(price) AS 'Precio promedio'FROM titlesGO

Page 8: Qué es SQL

SENTENCIA - TRANSACCIONES

SQL procesa las transacciones como un batch, pero la diferencia entre un batch y una transacción, es que una transacción permite deshacer las operaciones que se realizaron dentro de una transacción, cosa que no es posible en un batch.

Permite mantener la integridad referencial en una base de datos, ya que se ejecuta satisfactoriamente toda la transacción o falla toda la transacción completa. Dentro de una sola transacción es posible definir varios batch.

Para poder marcar el inicio de una transacción las sentencias debe de preceder por la palabra BEGIN TRANSACTION y finalizar con COMMIT TRANSACTION o ROLLBACK TRANSACTION. Si utiliza ROLLBACK TRANSACCTION SQL deshará la transacción.

La sintaxis :

BEGIN TRANSACTION

SQL statement #1

SQL statement #2...COMMIT TRANSACTION

Page 9: Qué es SQL

EJEMPLO TRANSACCION

  

El ejemplo clásico de transacción es una

transferencia bancaria, en la que quitamos

saldo a una cuenta y lo añadimos en otra. Si no

somos capaces de abonar el dinero en la cuenta de destino, no

debemos quitarlo de la cuenta de origen.

DECLARE @importe DECIMAL(18,2), @CuentaOrigen VARCHAR(12), @CuentaDestino VARCHAR(12) /* Asignamos el importe de la transferencia * y las cuentas de origen y destino */ SET @importe = 50 SET @CuentaOrigen = '200700000001' SET @CuentaDestino = '200700000002'

/* Descontamos el importe de la cuenta origen */ UPDATE CUENTAS SET SALDO = SALDO - @importe WHERE NUMCUENTA = @CuentaOrigen

/* Registramos el movimiento */ INSERT INTO MOVIMIENTOS (IDCUENTA, SALDO_ANTERIOR, SALDO_POSTERIOR, IMPORTE,

FXMOVIMIENTO) SELECT IDCUENTA, SALDO + @importe, SALDO, @importe, getdate() FROM CUENTAS WHERE NUMCUENTA = @CuentaOrigen

/* Incrementamos el importe de la cuenta destino */ UPDATE CUENTAS SET SALDO = SALDO + @importe WHERE NUMCUENTA = @CuentaDestino

/* Registramos el movimiento */ INSERT INTO MOVIMIENTOS (IDCUENTA, SALDO_ANTERIOR, SALDO_POSTERIOR, IMPORTE,

FXMOVIMIENTO) SELECT IDCUENTA, SALDO - @importe, SALDO, @importe, getdate() FROM CUENTAS WHERE NUMCUENTA = @CuentaDestino

Page 10: Qué es SQL

SENTENCIA SCRIPTS

Es un archivo de texto que contienen una serie de comandos SQL. Este archivo se puede abrir con las utilerías de SQL Server y ejecutarlo como en el caso de osql.

Pueden ser creados desde cualquier editor de texto y es recomendable guardarlo con la extensión .sql para poder distinguirlo de los demás.

Cuando se generan scripts es recomendable comentarlos. SQL Server soporta dos tipos de comentarios, por línea y por bloque.

Page 11: Qué es SQL

GRACIAS