DML en SQL Consultas sencillas usando el DML de SQL.

Slides:



Advertisements
Presentaciones similares
SQL.
Advertisements

el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
IBD Clase 14.
SQL CON EJEMPLOS SARI TEMA 4.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación.
SQL Sigla del nombre “Structured Query Language”.
integridad referencial
LENGUAJE ESTRUCTURADO DE CONSULTA “SQL”
Fernando Velasco
Unidad IV Objetivo de la Unidad:
Teórico: Structured Query Language
Por: Ronald Toscano Pretelt
Mejoras a la Cláusula GROUP BY
Estadística Computacional I
Teórico: Algebra Relacional
IBD Clase 15.
S.Q.L. (Lenguaje de Consulta Estructurada)
Base de Datos El lenguaje SQL.
Características Objeto Relacionales en Oracle
Sistema de gestión de las bases de datos (SGBD).
CULENDARIO 2007 Para los Patanes.
Unidad 3 Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
Lenguaje Estructurado de Consultas (Structured Query Language – SQL)
E.1 Obtener los detalles completos de todos los proyectos.
PL/SQL Francisco Moreno Universidad Nacional.
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
Control del Acceso de los Usuarios
MySQL M.C. Pedro Bello López.
SQL.
Lenguaje SQL (Structured Query Language)
SQL Lenguaje de consulta estructurado
SQL Básico Prof. Nelliud D. Torres.
SQL el Structured Query Language no es mas que un lenguaje estándar de comunicación con bases de datos.
Integrantes: Peter velazques Andres heredia Juan Mendez
Facultad de Tecnología Informática
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
COMANDOS SQL.
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
SQL MC Beatriz Beltrán Martínez Benemérita Universidad Autónoma de Puebla.
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
CONSULTAS SENCILLAS A LA BASE DE DATOS
Consultas SQL (Base de Datos)
Introducción a Bases de Datos en Microsoft Access Programación de Computadoras 2 Sección: P.
LENGUAJE SQL.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 14 Uso de Operadores de Conjuntos.
Expresiones algebraicas equivalentes
Más ejemplos en SQL Francisco Moreno. S sn snombre situacion ciudad S1 Salazar 20 Londres S2 Jaramillo 10 París S3 Bernal30 París S4 Caicedo 20 Londres.
LENGUAJE ESTRUCTURADO DE CONSULTAS

COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
Prof. De Bases de Datos: Lcdo. Luis Peña. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query.
Diseña y administra base de datos avanzadas
Consultas SQL. SQL SQL es un lenguaje de consulta estructurado (Structured Query Languague). Se utiliza para: Eliminar Modificar Consultar La base de.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
AA Gerardo Morgade Donato AA Isnel Leyva Herbella.
Unidad 6. Tema 4. Lenguaje de consultas SQL
INTEGRACION DE LAS TECNOLOGIAS DE LA INFORMACION Y COMUNICACION Implementación de base de datos (Lenguaje de manipulación de datos) Ing. Linda Masias Morales.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
DLM Transact SQL Sesión II Recuperación de información.
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
DML Transact SQL Sesión VI Trabajando con subconsultas.
Selección Condicionada de Filas Uso de la cláusula WHERE La cláusula WHERE restringe las columnas que retorna una consulta según la condición que se imponga.
SQL 2: Structured Query Language
Transcripción de la presentación:

DML en SQL Consultas sencillas usando el DML de SQL

2 DDL/DML/DCL DDL es Data Definition Language: CREATE - to create objects in the database ALTER - alters the structure of the database DROP - delete objects from the database GRANT - gives user's access privileges to database REVOKE - withdraw access privileges given with the GRANT command DML is Data Manipulation Language statements. Some examples: SELECT - retrieve data from the a database INSERT - insert data into a table UPDATE - updates existing data within a table DELETE - deletes all records from a table, the space for the records remain EXPLAIN PLAN - explain access path to data LOCK TABLE - control concurrency DCL is Data Control Language statements. Some examples: COMMIT - save work done SAVEPOINT - identify a point in a transaction to which you can later roll back ROLLBACK - restore database to original since the last COMMIT SET TRANSACTION - Change transaction options like what rollback segment to use

3 Base Datos de Películas Para rellenar la base se ha utilizado información proveniente de “The internet Movie- Database” Todos los datos son anteriores a 1997 Todas las películas tienen al menos 200 votos Los actores deben aparecer en más de una película

4 Diagrama Relacional de una base de datos de Peliculas copy and E-R diag (is arelation)

5 TABLAS CREATE TABLE PELICULA( ID INTEGER, -- Identificador único TITULO CHAR(70), -- Titulo de la película AGNO DECIMAL(4), -- Año de estreno PUNTUACION FLOAT, -- Puntuación media VOTOS INTEGER, -- Numero de votos PRIMARY KEY (ID)); -- CREATE TABLE ACTOR ( ID INTEGER, -- Identificador Único NOMBRE CHAR(35), -- Nombre del actor/actriz PRIMARY KEY (ID)); -- CREATE TABLE REPARTO( PELICULA_ID INTEGER, -- referencia a la tabla PELICULA ACTOR_ID INTEGER, -- referencia a la tabla ACTOR_ID ORD INTEGER, -- Orden en el reparto -- La estrella es 1, FOREIGN KEY (PELICULA_ID ) REFERENCES PELICULA(ID), FOREIGN KEY (ACTOR_ID) REFERENCES ACTOR(ID), PRIMARY KEY (PELICULA_ID, ACTOR_ID));

6 Consultas sencillas en SQL SELECT FROM WHERE ORDER BY Lista los atributos (SELECT) pertenecientes a una (o más relaciones) (FROM) que satisfagan una condición (WHERE), ordenar la salida (ORDEN BY). La principal diferencia entre los resultado proporcionados por SQL y álgebra relacional es que SQL admite el duplicado de tuplas

7 SQL vs. Rel. Álgebra SELECT A1, A2,..., A n FROM R1, R2,..., R m WHERE condición es equivalente a la consulta en álgebra relacional :  A1, A2,..., An (  condición (R1 X R2 X... X R m )) Devuelve una relación (sin nombre) cuyo esquema es (A1, A2,..., A n ) SQL no distingue entre mayúsculas y minúsculas Excepto cuando se usan comillas.

8 Selección y Proyección Selección: Encontrar las mejores películas (puntuación mayor que 9.0) SELECT * FROM pelicula WHERE puntuacion > 9.0 ; Proyección: Encontrar las mejores películas (puntuación mayor que 9.0) e imprimir el título y el año del estreno SELECT titulo, agno FROM pelicula WHERE puntuacion > 9.0 ;

9 Duplicados Para eliminarlos se usa DISTINCT Es una operación cara SELECT DISTINCT agno FROM pelicula WHERE puntuacion > 9.0;

10 Comparación de caracteres Se pueden utilizar las expresiones algebraicas “usuales” ‘ ’, ‘= ’, … o la instrucción “ like ” que permite el uso de “comodines” Dos “wildcards”: ‘_’ (.) and ‘%’ (*) Encontrar todas las películas (y su puntuación) que empiezan por ‘Star’ SELECT titulo, puntuacion FROM pelicula WHERE titulo LIKE 'Star%'; Encontrar todas las películas con ‘s en su titulo SELECT titulo FROM pelicula WHERE titulo LIKE '%''s%';

11 [NOT] SIMILAR TO Tiene todas las funcionalidades de LIKE y además es capaz de usar expresiones regulares (bueno, un subconjunto) | una de dos alternativas * repetición de lo anterior cero o más veces. + repeticion de lo anterior una o más veces. () se usa para agrupar creando una único objeto. [...] especifica una clase.

12 Ejemplo: SIMILAR Encontrar todas las películas (y su puntuación) que empiezan por ‘Star’ y no sean de la saga “Star Treck” SELECT titulo, puntuacion FROM pelicula WHERE titulo NOT SIMILAR TO '%(S|s)tar [A-z]rek%' AND titulo SIMILAR TO '%Star%';

13 Ordenar la salida Tras una consulta, la relación resultante está ordenada al azar. (las tuplas no estan ordenadas) ORDER BY especifica en que orden se presentan las duplas : Encontrar las mejores películas (puntuación mayor que 9.0) e imprimir el título y su puntuación. El resultado debe estar ordenado por puntuación. SELECT titulo, puntuacion FROM pelicula WHERE puntuacion > 9.0 ORDER BY puntuacion;

14 Ordenar la salida Vaya, por defecto ordena de forma ascendente SELECT titulo, puntuacion FROM pelicula WHERE puntuacion > 9.0 ORDER BY puntuacion DESC; ¿Cuál es la peor película? (listado ordenado de peor a mejor, algebra, LIMIT )

15 Ordenar la Salida SELECT select_list FROM table_expression WHERE ORDER BY column1 [ASC | DESC] [, column2 [ASC | DESC]...];

16 Renombrar Atributos Se usa la palabra AS en el comando SELECT SELECT titulo AS Title, agno AS Year,puntuacion AS score FROM pelicula WHERE score > 9.0; -- El comando de arriba puede que funcione o que no funcione SELECT titulo AS Title, agno* AS Day FROM pelicula WHERE puntuacion > 9.0;

17 Producto(s) Cartesiano(s) Gran parte de la potencia de las bases relacionales se basa en la posibilidad de combinar dos (o más) relaciones. El producto cartesiano de dos relaciones se consigue enumerando cada relación en la orden FROM Obtener el reparto de 'Pulp Fiction' (el identificador de esta película es el 2) hacerlo con titulo SELECT nombre FROM actor, reparto WHERE pelicula_id=2 AND actor_id=id;

18 Natural Join Obtener el reparto de 'Pulp Fiction' (el identificador de esta película es el 2) SELECT nombre FROM actor NATURAL INNER JOIN reparto WHERE pelicula_id=2 AND actor_id=id; \d ALTER TABLE reparto RENAME COLUMN actor_id TO id; ALTER TABLE reparto RENAME COLUMN id TO actor_id;

19 Producto(s) Cartesiano(s) Obtener el reparto de ‘Blade Runner' con natural join SELECT nombre FROM actor, reparto, pelicula WHERE titulo = 'Blade Runner' AND pelicula.id = pelicula_id AND actor_id = actor.id;

20 Producto Cartesiano Películas de John Travolta ordenadas por popularidad. hacerla por pasos SELECT titulo, puntuacion FROM reparto,pelicula,actor WHERE actor.nombre='John Travolta' AND actor_id=actor.id AND pelicula_id=pelicula.id ORDER BY puntuacion desc;

21 Ambigüedad en los atributos Método 1: Utilizar el nombre de la relación Películas de John Travolta SELECT titulo, puntuacion FROM reparto,pelicula,actor WHERE actor.nombre='John Travolta' AND actor_id=actor.id AND pelicula_id=pelicula.id ORDER BY puntuacion desc;

22 Ambigüedad en los atributos Método 2: variable tupla Haz un chequeo de consistencia, Si hay dos actores con el mismo nombre y distinto ID puede ser un error SELECT Star1.nombre, Star1.id, Star2.nombre, Star2.id FROM actor Star1, actor Star2 WHERE Star1.nombre = Star2.nombre AND Star1.id < Star2.id;

23 Ambigüedad en los atributos pi En que se diferencia esta consulta de la anterior SELECT Star1.nombre, Star1.id, Star2.nombre, Star2.id FROM actor Star1, actor Star2 WHERE Star1.nombre = Star2.nombre AND Star1.id <> Star2.id;

24 NATURAL join etc Dejar esto para subqueries

25 Combinando Consultas Union: unión Intersect: interseccion Except: resta Estos operadores eliminan los dupicados Si se usa ALL los duplicados no se eliminan: e.g., UNION ALL Las subconsultas deben ser compatibles Actores comunes a las películas Star Trek IV y Star Trek V (SELECT nombre FROM pelicula,actor,reparto WHERE titulo LIKE 'Star Trek V:%' AND pelicula_id=pelicula.id AND actor_id=actor.id) INTERSECT (SELECT nombre FROM pelicula,actor,reparto WHERE titulo LIKE 'Star Trek IV:%' AND pelicula_id=pelicula.id AND actor_id=actor.id );

26 Ejemplos copiar tablas Lista de películas con al menos 5000 votos. SELECT titulo FROM pelicula WHERE votos > 5000; Año de estreno de ‘Citizen Kane’. SELECT agno FROM pelicula WHERE titulo = 'Citizen Kane';

27 Ejemplos Titulo y puntuación de las películas de la ‘Police Academy…’. SELECT titulo, puntuacion FROM pelicula WHERE titulo LIKE 'Police Academy%'; Nombre y puntuación de las películas que contienen la palabra 'Dog'. (similar to) SELECT titulo, puntuacion FROM pelicula WHERE (titulo LIKE '%dog%') OR (titulo LIKE '%Dog%');

28 Ejemplos!!!!!!! Películas en las que aparece 'Harrison Ford' y no es protagonista. SELECT titulo FROM actor, pelicula, reparto WHERE nombre = 'Harrison Ford' AND actor.id=actor_id AND pelicula_id=pelicula.id AND ord <> 1; Reparto de 'Alien'. SELECT nombre FROM actor, reparto, pelicula WHERE titulo = 'Alien' AND pelicula.id = pelicula_id AND actor_id = actor.id;

29 Ejemplos Películas en las que aparece 'Harrison Ford' pero no es el protagonista. SELECT titulo FROM actor, pelicula, reparto WHERE nombre = 'Harrison Ford' AND actor.id=actor_id AND pelicula_id=pelicula.id AND ord <> 1;

30 Ejemplos Películas filmadas en 1962 y sus protagonistas SELECT titulo, nombre FROM pelicula, reparto, actor WHERE agno=1962 AND pelicula.id=pelicula_id AND ord=1 AND actor_id=actor.id;

31 Ejemplo del Capítulo Siguiente Año en que ‘John Travolta’ extrenó más peliculas Primero encontremos los años y títulos de sus películas SELECT titulo, agno FROM pelicula, reparto, actor WHERE pelicula.id=pelicula_id AND actor.id=actor_id AND nombre= 'John Travolta'; Luego agrupémoslas. SELECT COUNT(titulo), agno FROM pelicula, reparto, actor WHERE pelicula.id=pelicula_id AND actor.id=actor_id AND nombre= 'John Travolta' GROUP BY agno ORDER BY 1;

32 Ejemplo del Capítulo Siguiente Nombres y estrellas de todas las películas en las que actuó 'Julie Andrews' Primero encontremos los id de sus películas SELECT pelicula_id FROM reparto, actor WHERE actor_id=actor.id AND nombre='Julie Andrews'; y luego los nombres de las películas y las estrellas SELECT titulo, nombre FROM pelicula, reparto, actor WHERE pelicula_id=pelicula.id AND actor_id=actor.id AND ord=1 AND pelicula.id IN (SELECT pelicula_id FROM reparto, actor WHERE actor_id=actor.id AND nombre='Julie Andrews');

33 Ejemplos Actores que han trabajado con 'Orson Welles' Primero encontremos los id de sus películas SELECT pelicula_id FROM reparto, actor WHERE actor_id=actor.id AND nombre= 'Orson Welles'; y luego los nombres de quien a trabajado en esas películas SELECT nombre, titulo FROM actor, reparto, pelicula WHERE actor.id=actor_id AND pelicula_id=pelicula.id AND pelicula_id IN (SELECT pelicula_id FROM reparto, actor WHERE actor_id=actor.id AND nombre='Orson Welles');