sesion05

51
Taller de Herramientas de Software : ST 213 SESION 05 Lenguaje de Manipulación de Datos DML Profesor: Ing. MBA Ysabel Rojas Universidad Nacional De Ingeniería Facultad Ingeniería Industrial y de Sistemas

Upload: jiordy-benavides-zegarra

Post on 19-Dec-2015

218 views

Category:

Documents


4 download

DESCRIPTION

taller de herramientas

TRANSCRIPT

Page 1: Sesion05

Taller de Herramientas de

Software : ST 213

SESION 05

Lenguaje de Manipulación de Datos DML

Profesor: Ing. MBA Ysabel Rojas

Universidad Nacional De Ingeniería

Facultad Ingeniería Industrial y de Sistemas

Page 2: Sesion05

ARQUITECTURA DEL GESTOR SQL SERVER

REVISION INSTRUCCIONES DDL

INSERCION DE TUPLAS

BORRADO DE TUPLAS

ACTUALIZACION DE TUPLAS

CONSULTAS - QUERYS

EJERCICIOS NIVEL BÁSICO

PROYECTO TRABAJO GRUPAL

PRACTICA DIRIGIDA 02

Page 3: Sesion05

ARQUITECTURA DEL GESTOR SQL SERVER

Page 4: Sesion05

ARQUITECTURA DEL GESTOR

SQL SERVER Cuando se instala SQL Server se crean cuatro bases de datos del

sistema que guardan información del propio sistema, son necesarias

para su funcionamiento, y no son utilizables directamente por el

usuario:

Page 5: Sesion05

ARQUITECTURA DEL GESTOR

SQL SERVER MASTER

Las cuentas de inicio de sesión,

parámetros de configuración del servidor,

Registrar la existencia de otras bases de datos, etc

MSBD

Programación de trabajos,

Definición de operadores y alertas.

Almacena la información de la copia de seguridad y se emplea en la restauración de

la base de datos

MODEL

Es la base de datos plantilla cuando se crea una nueva B:D. Si se desea que

determinados objetos, permisos, usuarios se creen automáticamente cada vez que se

crea una base de datos, pueden incluirse en esta base.

TEMPDB

Utilizada cuando se necesita crear tablas temporales internas (o tablas de trabajo)

para determinadas operaciones, ordenación, las operaciones multitabla, el

tratamiento de cursores, almacena todas las tablas y procedimientos

almacenados temporales.

Page 6: Sesion05

Adición de clave principal y

foranea a una tabla ya creada CREATE TABLE tAlquileres

( codigo integer not null, codigo_cliente integer not null, matricula char(8) not null, fx_alquiler datetime not null, fx_devolucion datetime null );

Modificacion

ALTER TABLE tAlquileres ADD CONSTRAINT PK_tAlquileres primary key (codigo), CONSTRAINT FK_Clientes foreign key (codigo_cliente) references tClientes (Codigo), CONSTRAINT FK_Coches foreign key (matricula) references tCoches (matricula);

Page 7: Sesion05

ADMINISTRADOR

CORPORATIVO

Se Pulsa la B.D que se desea :

Page 8: Sesion05

8

Conceptos Básicos

Lenguaje de Consultas Estruturado (SQL)

Lenguaje de trabajo estándard para modelo

relacional

Componentes

DDL: Data Definition Language

DML: Data Manipulation Language (AR y CRT)

DCL : Data Control Language

Page 9: Sesion05

9

SQL

DDL - Lenguaje de definición de datos.

Definición de esquemas,relaciones, indices y vistas (una vista es una tabla virtual, ya que sus filas no se almacenan físicamente, sino que son producto de una consulta)

Autorizaciones al acceso a datos

Definición de reglas de integridad.

Control de Concurrencia

DML - Lenguaje interactivo de manipulación de datos.

Consultar datos almacenados.

Modificar el contenido de los datos almacenados.

DCL - Lenguaje interactivo del control de la seguridad de datos .

Control de accesos y privilegios entre los usuarios.

Page 10: Sesion05

SQL : Grupos de instrucciones

(mandatos) Los mandatos de SQL se dividen en tres grandes grupos diferenciados

DDL(Data Definition Language), es el encargado de la definición de Bases de Datos, tablas, vistas e índices entre otros.

Son comandos propios DDL

CREATE TABLE CREATE INDEX CREATE VIEW CREATE SYNONYM

DML(Data Manipulation Language), cuya misión es la manipulación de datos. A través de él podemos seleccionar, insertar, eliminar y actualizar datos. Es la parte que más frecuentemente utilizaremos, y que con ella se construyen las consultas.

Son comandos propios DML SELECT UPDATE INSERT INSERT INTO DELETE FROM

DCL (Data Control Language), encargado de la seguridad de la base de datos, en todo lo referente al control de accesos y privilegios entre los usuarios.

Son comandos propios de este lenguaje: GRANT REVOKE

Page 11: Sesion05

ARQUITECTURA DEL GESTOR SQL SERVER

REVISION INSTRUCCIONES DDL

INSERCION DE TUPLAS

BORRADO DE TUPLAS

ACTUALIZACION DE TUPLAS

CONSULTAS - QUERYS

EJERCICIOS NIVEL BÁSICO

PROYECTO TRABAJO GRUPAL

PRACTICA DIRIGIDA 02

Page 12: Sesion05

DDL DEFINIENDO DATOS

El esquema de cada relación

El dominio de valores asociado a cada atributo

Las restricciones de integridad

El conjunto de índices que se deben mantener por

cada relación

Información de seguridad y autorización para cada

relación

La estructura de almacenamiento físico de cada

relación en disco.

Page 13: Sesion05

CREACION DE UNA TABLA MANEJANDO INTEGRIDAD DE DATOS

create table Cuenta

(NumeroCuenta varchar(15) not null ,

NombreSucursal varchar(15) not null,

Saldo double precision not null,

primary key(NumeroCuenta));

Page 14: Sesion05

USANDO CHECK

create table sucursal

(nombresucursal char (15) not null,

ciudadsucursal char (30),

activo integer,

primary key (nombresucursal),

check (activo >= 0))

Page 15: Sesion05

Usando check con valores

listados de un atributo

create table estudiante

(nombre char (15) not null,

idestudiante char (10) not null,

nivelestudios char (15) not null,

primary key (idestudiante),

check (nivelestudios in (‘Bachiller’,

‘Ingeniero’, ‘Master’,‘Doctorado’ )))

Page 16: Sesion05

Creacion de tablas –Formato

Completo CREATE TABLE <nombre_tabla>

(

<nombre_campo> <tipo_datos(tamaño)>

[null | not null] [default <valor_por_defecto>]

{

,<nombre_campo> <tipo_datos(tamaño)>

[null | not null] [default <valor_por_defecto>]}

[

, constraint <nombre> primary key (<nombre_campo>[ ,...n

])]

[

, constraint <nombre> foreign key (<nombre_campo>[ ,...n ])

references <tabla_referenciada> ( <nombre_campo> [ ,...n ]

) ]

) ;

Page 17: Sesion05

17

SQL – Creacion de vistas

Creación de vistas Una vista es un objeto que no contiene datos

por si mismo. Es una clase de tabla cuyo

contenido es tomado de otras tablas por

medio de la ejecución de una consulta.

Create View nombre as <expresion>

Ej26: crea una vista con todos los clientes y

consultar de ahí todos los de sucursal XXX

Page 18: Sesion05

ARQUITECTURA DEL GESTOR SQL SERVER

REVISION INSTRUCCIONES DDL

INSERCION DE TUPLAS

BORRADO DE TUPLAS

ACTUALIZACION DE TUPLAS

CONSULTAS - QUERYS

EJERCICIOS NIVEL BÁSICO

PROYECTO TRABAJO GRUPAL

PRACTICA DIRIGIDA 02

Page 19: Sesion05

19

SQL - INSERCION DE

TUPLAS

Inserción:

INSERT INTO tab_name (<column_name>,)

VALUES (<valor>,)

Existen dos maneras básicas de insertar.

Insertar la fila completa

Insertar sólo algunas columnas de una fila

En el segundo caso se debe necesariamente

especificar los nombres de las columnas que se van

a completar.

Ej29: agregar una cuenta

Page 20: Sesion05

INSERCION DE TUPLAS Inserción de filas

Añadir a una tabla una o más filas y en cada fila todos o parte de sus campos.

Podemos distinguir dos formas de insertar filas:

1) Inserción individual de filas,realizado con:

INSERT INTO <nombre_tabla> [(<campo1>[,<campo2>,...])] values (<valor1>,<valor2>,...);

Si se omite un atributo, puede ocurrir: Que se produzca un error , si el campo no acepta valores nulos.

Que se grave el registro y se deje nulo el campo, cuando el campo acepte valores nulos.

Que se grave el registro y se tome el valor por defecto, cuando el campo tenga definido un valor por defecto.

Page 21: Sesion05

INSERCION DE TUPLAS

Inserción de filas

1) Inserción Multiple de filas,realizado con:

INSERT INTO <nombre_tabla>

[(<campo1>[,<campo2>,...])]

SELECT

[(<campo1>[,<campo2>,...])]

FROM

<nombre_tabla_origen>;

Condiciones

•La lista de campos de las sentencias insert y select deben coincidir en número y tipo de datos.

•Ninguna de las filas devueltas por la consulta debe infringir las reglas de integridad de la tabla en la

que vayamos a realizar la inserción

Page 22: Sesion05

INSERT INTO EMPLEADO

VALUES (‘Richard’, ‘K’, ‘Marini’, ‘653298653’, ‘1962-12-30’, ’98

Oak Forest, Katy, TX’, ‘H’, 37000, ‘987654321’, 4)

***Mismo orden en el que se especificaron los atributos

en CREATE TABLE

INSERT INTO EMPLEADO(NOMBRE, APELLIDO, NSS)

VALUES (‘Richard’, ‘Marini’, ‘653298653’)

**** Así los atributos con valor NULL o DEFAULT se

pueden omitir

– Los valores de VALUES en el mismo orden que se

especifican los atributos en INSERT INTO

INSERCION DE TUPLAS

Page 23: Sesion05

ARQUITECTURA DEL GESTOR SQL SERVER

REVISION INSTRUCCIONES DDL

INSERCION DE TUPLAS

BORRADO DE TUPLAS

ACTUALIZACION DE TUPLAS

CONSULTAS - QUERYS

EJERCICIOS NIVEL BÁSICO

PROYECTO TRABAJO GRUPAL

PRACTICA DIRIGIDA 02

Page 24: Sesion05

24

SQL – Borrado de tuplas

Modificación de la BD

Borrado: eliminar una o mas filas de una

tabla:

DELETE FROM tab_name

[WHERE condición];

Page 25: Sesion05

BORRADO DE TUPLAS SENTENCIA DELETE

DELETE FROM <nombre_tabla>

[ WHERE <condicion>];

Ej: borrar las cuentas de una sucursal

Ej: borrar las cuentas con saldo entre 100

y 200.

Page 26: Sesion05

BORRADO DE TUPLAS

SENTENCIA TRUNCATE

Realiza el borrado completo de la tabla es +

rápida que un delete.

TRUNCATE TABLE <nombre_tabla>;

La sentencia TRUNCATE no es transaccional. No se puede deshacer.

La sentencia TRUNCATE no admite clausula WHERE. Borra toda la tabla.

No todos los gestores de bases de datos admiten la sentencia TRUNCATE .

Page 27: Sesion05

ARQUITECTURA DEL GESTOR SQL SERVER

REVISION INSTRUCCIONES DDL

INSERCION DE TUPLAS

BORRADO DE TUPLAS

ACTUALIZACION DE TUPLAS

CONSULTAS - QUERYS

EJERCICIOS NIVEL BÁSICO

PROYECTO TRABAJO GRUPAL

PRACTICA DIRIGIDA 02

Page 28: Sesion05

ACTUALIZACION

Permite la actualizacion de unos o

varios registros

UPDATE <nombre_tabla>

SET <campo1> = <valor1>

{[,<campo2> = <valor2>,...,<campoN> =

<valorN>]}

[ WHERE <condicion>];

Page 29: Sesion05

29

SQL

Actualización Ej30: modificar el saldo de las cuenta incrementar

en un 5%.

Page 30: Sesion05

UPDATE EMPLEADO

SET SALARIO=SALARIO*1.1

WHERE cod-dep= ‘02’)

A la izquierda se refiere al nuevo valor

de SALARIO

A la derecha al valor antiguo

ACTUALIZACION

Page 31: Sesion05

Inserción de tuplas

(Por Administrador)

Page 32: Sesion05
Page 33: Sesion05

ARQUITECTURA DEL GESTOR SQL SERVER

REVISION INSTRUCCIONES DDL

INSERCION DE TUPLAS

BORRADO DE TUPLAS

ACTUALIZACION DE TUPLAS

CONSULTAS – QUERYS

EJERCICIOS NIVEL BÁSICO

PROYECTO TRABAJO GRUPAL

PRACTICA DIRIGIDA 02

Page 34: Sesion05

34

SQL – Consultas Basicas

Estructura básica: 3 cláusulas

Select (equivale a )

From (equivale a x)

Where (equivale a )

a1,...,an (p (r1 x ... X rm ) ) equivale a

Select a1,..., an

From r1,..., rm

Where P

Ej1: todas las sucursales de la relación sucursal

Page 35: Sesion05

Consultas - Querys

SELECT [ALL | DISTINCT ] <nombre_campo> [{,<nombre_campo>}] FROM <nombre_tabla>|<nombre_vista> [{,<nombre_tabla>|<nombre_vista>}] [WHERE <condicion> [{ AND|OR <condicion>}]] [GROUP BY <nombre_campo> [{,<nombre_campo >}]] [HAVING <condicion>[{ AND|OR <condicion>}]] [ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC] [{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]]

Page 36: Sesion05

36

SQL - Querys

Select

* (incluye todos los atributos de las tablas que aparecen en el from)

Distinct (eliminan tuplas duplicadas)

All (valor por defecto, aparecen todas las tuplas)

Page 37: Sesion05

37

SQL- Querys Nivel básico

Ej: nombres de las sucursales en la relación o tabla préstamo sin repetición

Ej :Operaciones en el select Select nombre, saldo * 3

From cliente

Where Operadores lógicos

Ej: préstamos cuyo monto es superior a S/.20000

Between Ej: préstamos cuyo monto este entre 20000 y 30000

Nuevos soles

Page 38: Sesion05

38

SQL- Querys Nivel basico

Operaciones sobre strings

Like, %, _

“Alfa%”: cualquier cadena que empiece con

Alfa

“%casa%”: cualquier cadena que tenga casa

en su interior

“_ _ _”: cualquier cadena con tres caracteres

“_ _ _%”: cualquier cadena con al menos tres

caracteres.

Ej: como se indicaria para seleccionar los

nombres de clientes cuya domicilio contenga

el string aaa ??

Page 39: Sesion05

39

SQL- Querys Ordenamiento de las tuplas resultado

Order By atributo: especifica el atributo por el

cual las tuplas serán ordenadas Ej8: presentar todos los clientes ordenados por

nombre.

Desc, asc: por defecto es ascendente,

se puede especificar descendente. Facturas=(Nro,Fecha,Hora)

Ej: presentar las facturas del mes de agosto ordenadas por fecha desde el 31 al 1 de agosto

Page 40: Sesion05

SQL- Querys Nivel basico

Page 41: Sesion05

SQL- Querys Nivel basico

Page 42: Sesion05

SQL- Querys formato general

Significado

SELECT Palabra clave que indica que la sentencia de SQL que queremos ejecutar es de selección.

ALL Indica que queremos seleccionar todos los valores.Es el valor por defecto y no suele especificarse casi nunca.

DISTINCT Indica que queremos seleccionar sólo los valores distintos.

FROM

Indica la tabla (o tablas) desde la que queremos recuperar los datos. En el caso de que exista más de una tabla se denomina a la consulta "consulta combinada" o "join". En las consultas combinadas es necesario aplicar una condición de combinación a través de una cláusula WHERE.

WHERE Especifica una condición que debe cumplirse para que los datos sean devueltos por la consulta. Admite los operadores lógicos AND y OR.

GROUP BY Especifica la agrupación que se da a los datos. Se usa siempre en combinación con funciones agregadas.

HAVING

Especifica una condición que debe cumplirse para los datos, especifica una condición que debe cumplirse para que los datos sean devueltos por la consulta. Su funcionamiento es similar al de WHERE pero aplicado al conjunto de resultados devueltos por la consulta. Debe aplicarse siempre junto a GROUP BY y la condición debe estar referida a los campos contenidos en ella.

ORDER BY

Presenta el resultado ordenado por las columnas indicadas. El orden puede expresarse con ASC (orden ascendente) y DESC (orden descendente). El valor predeterminado es ASC.

Page 43: Sesion05

ARQUITECTURA DEL GESTOR SQL SERVER

REVISION INSTRUCCIONES DDL

INSERCION DE TUPLAS

BORRADO DE TUPLAS

ACTUALIZACION DE TUPLAS

CONSULTAS - QUERYS

EJERCICIOS NIVEL BÁSICO

PROYECTO TRABAJO GRUPAL

PRACTICA DIRIGIDA 02

Page 44: Sesion05

1)CONSULTANDO TODAS LAS TUPLAS (Con todos los campos creados) (Tabla Empleado de B.D Edumatica)

Use Edumatica

Go

Select * from empleado

Go

2)CONSULTANDO TODAS LAS TUPLAS (Con campos seleccionados) (Tabla Empleado)

Use Edumatica

Go

Select IDEMPLEADO,APEEMPLEADO,NOMEMPLEADO from

empleado

Go

Consultas – Nivel basico

Page 45: Sesion05

3)CONSULTANDO TUPLAS (Concatenando campos)

Select IDEMPLEADO,APEEMPLEADO+’, ‘ +NOMEMPLEADO from empleado

Go

4)Estableciendo Titulo a las columnas

Select IDEMPLEADO,APEEMPLEADO+’, ‘ +NOMEMPLEADO AS EMPLEADO from empleado

Go

5)Seleccionando registros en base a rangos

Use Northwind

go

Select * from Products Where UnitPrice Between 20 and 40

Go

Select * from Employees Where hiredate Between ‘19920101’ and ‘19921231’

Go

Consultas – Nivel Basico

Page 46: Sesion05

ARQUITECTURA DEL GESTOR SQL SERVER

REVISION INSTRUCCIONES DDL

INSERCION DE TUPLAS

BORRADO DE TUPLAS

ACTUALIZACION DE TUPLAS

CONSULTAS - QUERYS

EJERCICIOS NIVEL BÁSICO

PROYECTO TRABAJO GRUPAL

PRACTICA DIRIGIDA 02

Page 47: Sesion05

Objetivo

La presentación de un proyecto, estudio o sistema ,

que emplea el gestor de base de datos relacional SQL

Server; en la cual se contemplara desde la etapa de

creación, manipulación , consultas que establezcan las

reglas de negocio , desarrollando los módulos de

programación de una B. D SQL Server 2012 en T-SQL

Page 48: Sesion05

Definición del Proyecto Grupal

Primer Avance

ITEMS A CONSIDERAR

1. Definir el Tema , estableciendo los grupos de trabajo e integrantes

2. Precisar el Objetivo del Proyecto, de estar aplicada a una empresa u

organización , describirla, realizar el análisis de contexto, misión y visión

3. Definir y describir en forma suscinta; el modelo de negocio , los procesos

identificados , y los procesos que se van a considerarse en el sistema o

proyecto informático a realizar

4. Precisar los requerimientos de información de los procesos considerados así

como las reglas de negocio que se establecen

5. Definir el esquema, crear el modelo E-R , normalizar y crear la BD Fisica

definir las tablas con sus restricciones y demás objetos requeridos

6. Poblar las tablas creadas

7. Presentar las consultas genéricas a las tablas creadas

Page 49: Sesion05

ARQUITECTURA DEL GESTOR SQL SERVER

REVISION INSTRUCCIONES DDL

INSERCION DE TUPLAS

BORRADO DE TUPLAS

ACTUALIZACION DE TUPLAS

CONSULTAS - QUERYS

EJERCICIOS NIVEL BÁSICO

PROYECTO TRABAJO GRUPAL

PRACTICA DIRIGIDA 02

Page 50: Sesion05

PRACTICA DIRIGIDA 02

Page 51: Sesion05

Muchas Gracias!