31
SQL Server 2005 Salvador Ramos www.helpdna.net [email protected]

Curso de SQL Server: implementacion (T-SQL)

Embed Size (px)

DESCRIPTION

Curso de SQL Server, Transact-SQL. Se estudian las diferentes instrucciones del lenguaje SQL: - DDL (create, alter, drop) de diferentes tipos de objetos - DML (select, insert, update, delete) - DCL (grant, revoke) seguridad

Citation preview

Page 1: Curso de SQL Server: implementacion (T-SQL)

SQL Server 2005

Salvador Ramos

www.helpdna.net

[email protected]

Page 2: Curso de SQL Server: implementacion (T-SQL)

Agenda

Visión general del producto

Administración

Implementación (T-SQL)

Page 3: Curso de SQL Server: implementacion (T-SQL)

Agenda (implementación)

Introducción

Elementos de Transact SQL

– DDL, DCL y DML

– Procedimientos almacenados (SP)

– Funciones definidas por el usuario (UDF)

– Triggers (desencadenadores)

Page 4: Curso de SQL Server: implementacion (T-SQL)

Introducción Transact SQL

Cumple ANSI SQL

Extensiones del lenguaje para ampliar su funcionalidad

– Elementos de control de flujo (while, if…)

– Variables, Operadores y Funciones

Ventajas / Desventajas de cumplir ANSI al escribir código

Page 5: Curso de SQL Server: implementacion (T-SQL)

DDL

CREATE

ALTER

DROP

TABLE

INDEX

PROCEDURE

VIEW

FUNCTION

LOGIN

USER

Page 6: Curso de SQL Server: implementacion (T-SQL)

DCL

GRANT

DENY

REVOKE

SELECT

INSERT

UPDATE

DELETE

REFERENCES

EXECUTE

Page 7: Curso de SQL Server: implementacion (T-SQL)

T-SQL (DDL y DCL)

Ejercicios

– Vamos a generar la secuencia de comandos de la base de datos de ejemplo, y estudiar su sintaxis Tablas, Contraints, Indices

Permisos

Usuarios

Page 8: Curso de SQL Server: implementacion (T-SQL)

DML

SELECT

INSERT

UPDATE

DELETE

Page 9: Curso de SQL Server: implementacion (T-SQL)

SELECT

SELECT [ALL|DISTINCT] [TOP n [PERCENT] [WITH TIES]]<Columnas> FROM <Tablas>] [INTO <NuevaTabla>] [WHERE <Condición>] [GROUP BY <ExprAgrupacion>] [HAVING <Condición>] [ORDER BY <ExprOrden>[ASC|DESC] ]

Like, between, in, not

Subselects, joins y outer joins, unions

Page 10: Curso de SQL Server: implementacion (T-SQL)

Funciones T-SQL

De agregado – COUNT, SUM, MIN, MAX

De cadenas – SUBSTRING, RTRIM, LTRIM, LEN, …

Matemáticas – ROUND, LOG, EXP, …

De fechas – GETDATE, DATEPART, DATEADD, …

De conversión – CAST, CONVERT

Page 11: Curso de SQL Server: implementacion (T-SQL)

SELECT - Ejercicios

Ejercicios

– Realizar ejercicios de la relación.

Page 12: Curso de SQL Server: implementacion (T-SQL)

INSERT

INSERT INTO <Tabla> VALUES <Default | Null | Expresión>

INSERT INTO <Tabla> SELECT …

Page 13: Curso de SQL Server: implementacion (T-SQL)

UPDATE

UPDATE <Tabla> SET Columna = <Valor | Default | Null> [FROM <TablaOrigen>] [WHERE <Condición>]

– FROM evita complejas subselects. Ej: UPDATE titles

SET ytd_sales = titles.ytd_sales + sales.qty

FROM titles, sales

WHERE titles.title_id = sales.title_id AND

sales.ord_date = (SELECT MAX(sales.ord_date)

FROM sales)

Page 14: Curso de SQL Server: implementacion (T-SQL)

DELETE

DELETE FROM <Tabla> [FROM <TablaOrigen>] [WHERE <Condición>]

Page 15: Curso de SQL Server: implementacion (T-SQL)

INSERT/UPDATE/DELETE - Ejercicios

Ejercicios

– Realizar ejercicios de la relación.

Page 16: Curso de SQL Server: implementacion (T-SQL)

Vistas

CREATE VIEW NbVista AS SELECT …

Ventajas

– Evita el acceso a las tablas directamente

– Permiten particionar la información vertical y horizontalmente

– Permiten acceder fácilmente a consultas complejas

– Se pueden crear índices sobre vistas

Page 17: Curso de SQL Server: implementacion (T-SQL)

Vistas

Ejemplos – Los usuarios de Murcia sólo tienen acceso

a los clientes de murcia mediante una vista, y ésta tiene un índice.

– Los empleados tienen acceso a los datos de sus compañeros pero no al importe de la nómina.

– Una consulta compleja se incluye en una vista, y luego utilizamos SELECT * FROM MiVista

Page 18: Curso de SQL Server: implementacion (T-SQL)

Indices - beneficios

Mejoran el rendimiento en:

– Consultas que buscan por valores únicos, o basadas en rangos reducidos.

– Filtrado de valores por claves externas, para resolver operaciones JOIN

– Obtención de datos ordenados

– Evitan duplicados

Page 19: Curso de SQL Server: implementacion (T-SQL)

Indices - optimización

Adicionalmente a aplicar nuestros conocimientos, podemos utilizar una nueva herramienta de rendimiento: “Asistente para optimización del motor de bases de datos”

Page 20: Curso de SQL Server: implementacion (T-SQL)

Procedimientos Almacenados

Mejoran la seguridad

Están precompilados

Mejoran el tráfico de red

Podemos programar su ejecución

Permiten parámetros INPUT/OUTPUT

Se pueden anidar (hasta 32 niveles)

Page 21: Curso de SQL Server: implementacion (T-SQL)

Paginacion

Devolver sólo la información que el usuario va visualizar

Demo

– Realización de procedimientos almacenados que devuelvan datos con paginación

– Realización de procedimientos almacenados para insert/update/delete

Page 22: Curso de SQL Server: implementacion (T-SQL)

Triggers

Se ejecuta cuando sobre la tabla se produce la acción para la que se definió (INSERT, UPDATE, DELETE)

No admite parámetros

Se pueden definir varios sobre una misma tabla

Se pueden deshabilitar

Se pueden anidar

Page 23: Curso de SQL Server: implementacion (T-SQL)

Triggers

Algunas de sus utilidades son:

– Mantener la integridad de dominio

– Mantener datos denormalizados

Tablas Inserted y Deleted

Tipos de triggers

– INTEAD OF (se activan en lugar de)

– AFTER (se activan después de)

Page 24: Curso de SQL Server: implementacion (T-SQL)

Triggers

Ejemplos

– Ver los códigos de ejemplo míos

– Ver las siguientes URLs: http://www.configuracionesintegrales.com/mi

guele/acumulados.asp?articulo=12

http://www.configuracionesintegrales.com/miguele/insteadof.asp?articulo=211

Page 25: Curso de SQL Server: implementacion (T-SQL)

Funciones Definidas por el usuario (UDF)

Ventajas: – Podemos usar su resultado en una

instrucción SELECT

– Puede recibir parámetros, por tanto podemos simular una vista con parámetros. Ej: SELECT * FROM MiFunc(x)

– Podemos crear cualquier función que no venga predefinida. Ej: funciones financieras o matemáticas

Page 26: Curso de SQL Server: implementacion (T-SQL)

UDFs

IMPORTANTE:

– Desde ellas no se pueden modificar datos de tablas, ni llamar a procedimientos almacenados que lo hagan.

Page 27: Curso de SQL Server: implementacion (T-SQL)

Tipos de UDFs

Funciones Escalares (único valor)

– Se pueden utilizar en:

Instrucciones SELECT, INSERT, UPDATE, DELETE

Como valor DEFAULT

En restricciones CHECK

En instrucciones IF o WHILE

En columnas calculadas

Funciones Tabulares (una tabla)

– Se pueden utilizar en:

Instrucciones SELECT, INSERT, UPDATE, DELETE

Funcion EXISTS

Page 28: Curso de SQL Server: implementacion (T-SQL)

Ejercicios

Vamos a realizar una serie de ejercicios con Vistas, Procedimientos Almacenados, Triggers y UDFs

– Procedimientos almacenados para Insert, update y delete, y select paginados

– Triggers (varios)

– UDFs escalares y tabulares (de los b.o.l.)

– Estudiar script de AdvetureWorks

Page 29: Curso de SQL Server: implementacion (T-SQL)

URLs

www.microsoft.com/spanish/msdn/cursos/sqlserver2000.asp

www.solidq.com blogs.solidq.com www.helpdna.net www.sqlserverymicrosoft.net www.portalsql.com www.callsql.com www.siquelnet.com www.sqlserverbyexample.com www.sqlmax.com

www.microsoft.com/spain/servidores www.microsoft.com/spain/technet www.microsoft.com/latam/technet www.microsoft.com/technet www.microsoft.com/spanish/msdn www.microsoft.com/msdn

Page 31: Curso de SQL Server: implementacion (T-SQL)

SQL Server 2005

Salvador Ramos

www.helpdna.net www.solidq.com

[email protected]

Microsoft.public.es.sqlserver