Upload
darwin-durand
View
833
Download
0
Embed Size (px)
Citation preview
Diseñando la arquitectura de aplicaciones empresariales.
Acceso al SQL Server.- Autenticación de usuario:
Modo de autentificación (acceso al servidor) (Inicio de sesión) Windows (S.O.)
Servidor SQL Server
Acceso y gestión de una BD (autorización)
Permisos a usuarios objetos de BD
ejecución de sentencias Permisos a través de roles: del servidor o de BD definidos por el usuario
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Autenticación de usuario:
Jerarquía de permisos SQL Server 2005
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Autenticación de usuario:
Inicios de sesión preestablecidos
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Autenticación de usuario:
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Herramientas de programación de SQL Server.-• Integración con Visual Studio• Entorno de control de fuentes simplificado y consistente• Depuración in-line integrada
Lección 02Diseñando la arquitectura de aplicaciones empresariales
El lenguaje de programación Transact-SQL.- SQL es un lenguaje de consulta para los sistemas de bases de datos relaciónales, pero que no posee la potencia de los lenguajes de programación.Transact SQL es el lenguaje de programación que proporciona SQL Server para ampliar SQL con los elementos característicos de los lenguajes de programación: variables, sentencias de control de flujo, bucles ... Cuando se desea realizar una aplicación completa para el manejo de una base de datos relacional, resulta necesario utilizar alguna herramienta que soporte la capacidad de consulta del SQL y la versatilidad de los lenguajes de programación tradicionales. Transact SQL es el lenguaje de programación que proporciona SQL Server para extender el SQL estándar con otro tipo de instrucciones.
Con Transact SQL vamos a poder programar las unidades de programa de la base de datos SQL Server, están son:
Procedimientos almacenadosFuncionesTriggersScripts
Lección 02Diseñando la arquitectura de aplicaciones empresariales
El lenguaje de programación Transact-SQL.-
Para programar en Transact SQL es necesario conocer sus fundamentos.• Transact SQL no es CASE-SENSITIVE, es decir, no diferencia mayúsculas de minúsculas como otros lenguajes de programación como C o Java. • Un comentario es una aclaración que el programador incluye en el código. Son soportados 2 estilos de comentarios, el de línea simple y de multilínea, para lo cual son empleados ciertos caracteres especiales como son:
-- Para un comentario de linea simple /* ... */ Para un comentario de varias lineas
• Un literal es un valor fijo de tipo numérico, caracter, cadena o lógico no representado por un identificador (es un valor explícito). • Una variable es un valor identificado por un nombre (identificador) sobre el que podemos realizar modificaciones. En Transact SQL los identificadores de variables deben comenzar por el caracter @, es decir, el nombre de una variable debe comenzar por @.Para declarar variables en Transact SQL debemos utilizar la palabra clave declare, seguido del identificador y tipo de datos de la variable.
Lección 02Diseñando la arquitectura de aplicaciones empresariales
El lenguaje de programación Transact-SQL.-
Veamos algunos ejemplos:
Scripts y lotes: Un script de Transact SQL es un conjunto de sentencias de Transact SQL en formato de texto plano que se ejecutan en un servidor de SQL Server. Un script está compuesto por uno o varios lotes. Un lote delimita el alcance de las variables y sentencias del script. Dentro de un mismo script se diferencian los diferentes lotes a través de las instrucción GO.
Lección 02Diseñando la arquitectura de aplicaciones empresariales
El lenguaje de programación Transact-SQL.-
Veamos algunos ejemplos:
En ocasiones es necesario separar las sentencias en varios lotes, porque Transact SQL no permite la ejecución de ciertos comandos en el mismo lote, si bien normalmente también se utilizan los lotes para realizar separaciones lógicas dentro del script.
Lección 02Diseñando la arquitectura de aplicaciones empresariales
El lenguaje de programación Transact-SQL.-
La sentencia SELECT: La sentencia SELECT nos permite consultar los datos almacenados en una tabla de la base de datos. El formato de la sentencia select es:
SELECT [ALL | DISTINCT ][ TOP expression [ PERCENT ] [ WITH TIES ] ] <nombre_campos>FROM <nombre_tabla>[ INNER | LEFT [OUTER]| RIGHT [OUTER] | CROSS][JOIN ] <nombre_tabla> ON <condicion_join>[ AND|OR <condicion>][WHERE <condicion> [ AND|OR <condicion>]][GROUP BY <nombre_campos>][HAVING <condicion>[ AND|OR <condicion>]][ORDER BY <nombre_campo> [ASC | DESC]
Lección 02Diseñando la arquitectura de aplicaciones empresariales
El lenguaje de programación Transact-SQL.-
La sentencia SELECT: El siguiente ejemplo muestra una consulta sencilla que obtiene el código y la "familia" de una tabla llamada familias (representaría familias de productos por ejemplo).
El uso del asterisco indica que queremos que la consulta devuelva todos los campos que existen en la tabla.
SELECT CO_FAMILIA, FAMILIA FROM FAMILIAS
SELECT * FROM FAMILIAS
Lección 02Diseñando la arquitectura de aplicaciones empresariales
El lenguaje de programación Transact-SQL.-
La cláusula WHERE: La cláusula WHERE es la instrucción que nos permite filtrar el resultado de una sentencia SELECT.
Por supuesto, podemos especificar varias condiciones para el WHERE:
Siempre que incluyamos un valor alfanumerico para un campo en la condición WHERE este debe ir entre comillas simples:
SELECT CO_FAMILIA, FAMILIA FROM FAMILIASWHERE CO_FAMILIA = 1
SELECT * FROM FAMILIASWHERE CO_FAMILIA = 1 OR CO_FAMILIA = 2
SELECT * FROM FAMILIAS WHERE FAMILIA = 'FAMILIA 1'
Lección 02Diseñando la arquitectura de aplicaciones empresariales
El lenguaje de programación Transact-SQL.-
La cláusula ORDER BY:
Podemos especificar el orden en el que serán devueltos los datos a través de la cláusula ORDER BY
SELECT CO_FAMILIA, FAMILIA FROM FAMILIASORDER BY FAMILIA DESC
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Elementos de Transact-SQL.-
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Elementos adicionales al lenguaje.-
• Variables locales
• Operadores
• Funciones
• Elementos de flujo de control • Comentarios
Variables locales
• Definido por el usuario con la sentencia DECLARE
• Asigna valores con la sentencia SET o SELECT
DECLARE @nombre char(20)
SET @nombre = ‘Alberto’
SELECT *
FROM Autores
WHERE Nombre = @nombre
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Elementos adicionales al lenguaje.-
Operadores
• Operadores Aritméticos
- Producto (*) - División (/) -Módulo (%)
- Suma (+) - Resta (-)
• Operadores de comparación
- Igual (=) - Mayor que (>)
-Menor que (<) - Mayor o igual a (>=)- Menor o igual a (<=)- Diferente a (<>)
• Operadores de concatenación de cadenas (+) • Operadores lógicos
- AND, OR y NOT
• Precedencia
- (), * / %, + -, + (concatenación), NOT, AND, OR
Funciones • Funciones del conjunto de filas
SELECT a.*
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\Mis Documentos\Ventas.mdb';'admin';'', cliente)AS a
• Funciones agregadas
USE pubs
SELECT COUNT(*) FROM authors
• Funciones escalares
SELECT DB_NAME() AS ‘BaseDatos’
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Elementos adicionales al lenguaje.-
Elementos de flujo de control
• Nivel de sentencias -Bloques BEGIN ... END -Bloques IF ... ELSE -- Construcción WHILE
• Nivel de fila - Expresión CASE
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Elementos adicionales al lenguaje.-
BEGIN ... END y IF ... ELSE
USE northwind
IF EXISTS (SELECT orderid FROM orders WHERE customerid = 'frank')
PRINT 'El cliente no puede ser eliminado' ELSE BEGIN
DELETE customers WHERE customerid = 'frank' PRINT '*** Cliente eliminado ***' END
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Elementos adicionales al lenguaje.-
DECLARE @num int SET @num=1 Construcción WHILE @num<=10 WHILE
BEGIN SELECT @num SET @num = @num + 1
END
DECLARE @num int SET @num=1 WHILE @num<=100 BEGIN
SELECT @num SELECT @num = @num + 1 IF @num=50
BREAK ELSE
CONTINUE END
Lección 02Diseñando la arquitectura de aplicaciones empresarialesEle
men
tos
adic
ional
es
al
lengu
aje.
-
Expresión CASE
• Sintaxis CASE expresión
{WHEN expresión THEN resultado} [,...n] [ELSE resultado]
END
SELECT au_fname, au_lname, CASE state
WHEN 'CA' THEN 'California' WHEN 'KS' THEN 'Kansas' WHEN 'TN' THEN 'Tennessee' WHEN 'OR' THEN 'Oregon' ELSE 'No determinado' END AS StateName FROM pubs.dbo.authors
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Elementos adicionales al lenguaje.-
Comentarios • Comentarios en línea
SELECT * -- Lista todas las columnas de autores FROM authors
• Comentarios en bloque
/* Este código recupera todas las filas de autores de la base de datos pubs
*/
SELECT * FROM authors
Lección 02Diseñando la arquitectura de aplicaciones empresariales
Elementos adicionales al lenguaje.-