Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de...

23
SQL 2008- con- VS.NET

Transcript of Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de...

Page 1: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

SQL 2008- con- VS.NET

Page 2: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

Diseñando la arquitectura de aplicaciones empresariales.

Acceso al SQL Server.- Autenticación de usuario:

Page 3: 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:

Page 4: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

Jerarquía de permisos SQL Server 2005

Lección 02Diseñando la arquitectura de aplicaciones empresariales

Autenticación de usuario:

Page 5: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

Inicios de sesión preestablecidos

Lección 02Diseñando la arquitectura de aplicaciones empresariales

Autenticación de usuario:

Page 6: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- 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

Page 7: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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

Page 8: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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.

Page 9: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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]

Page 10: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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

Page 11: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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'

Page 12: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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

Page 13: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

Lección 02Diseñando la arquitectura de aplicaciones empresariales

Elementos de Transact-SQL.-  

Page 14: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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

Page 15: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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

Page 16: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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.-

Page 17: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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.-

Page 18: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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.-

Page 19: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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.

-

Page 20: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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.-

Page 21: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

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.-

Page 22: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:

Diseñar la siguiente Tablas en FoxPro

Page 23: Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario: