SQL (Structured Query Language)- DML



Documentos relacionados
A.1. Definiciones de datos en SQL

Bases de Datos: Structured Query Language (SQL)

Bases de Datos 2. Teórico

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo

MANUAL BÁSICO DEL LENGUAJE SQL

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

APÉNDICE SQL (Structures Query Language)

SQL (Structured Query Language)

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 10. Álgebra Relacional

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales

Bases de Datos SQL - Ejemplos

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /

SQL Server FEMEPA SQL Server 2000

8 SQL SERVER 2008 RA-MA

SQL Los fundamentos del lenguaje

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales

Tema 33. El lenguaje SQL

Tema 4. Manipulación de datos con SQL

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

Restricciones de Integridad

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

Unidad. Lenguaje SQL. (Structured Query Language)

Bases de Datos Relacionales

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Base de datos Lenguaje SQL

Repaso de Conceptos Básicos de Bases de Datos

1. DML. Las subconsultas

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

ÍNDICE PRIMERA PARTE... 17

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

Bases de Datos 1. Teórico: Structured Query Language

Sub consultas avanzadas

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

EJERCICIOS RESUELTOS

Acceso a bases de datos MySQL con PHP

T12 Vistas y tablas temporales

Vistas en postgresql

1.264 Tema 7. Introducción a SQL

El catalogo del sistema. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.

Seguridad. Bibliografía: Introducción a los sistemas de bases de datos -C.J. Date

SQL (DML) Carlos A. Olarte Gestión y Modelación de SQL Datos (DML)

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

ÍNDICE INTRODUCCIÓN...13

ADMINISTRACION DE BASES DE DATOS EN ORACLE

FIUBA /75.28 BASE DE DATOS Agosto 1992 SQL

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 11. Cálculo Relacional

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

SQL. Orígenes y Evolución

SERVICIO NACIONAL DE APRENDIZAJE SENA

Consultas con combinaciones

Tema 4. SQL. Juan Ignacio Rodríguez de León

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008

Lenguaje para descripción de datos

CONSULTAS BASICAS EN SQL SERVER

Trabajos de Ampliación. Bases de datos NoSQL.

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Programación de sitios web Act 11: Reconocimiento de la unidad 3

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

EL LENGUAJE DE BASES DE DATOS SQL (DDL, DML, TRIGGERS Y STORE PROCEDURES)

Boletín de Problemas de la Asignatura II18 Bases de Datos. Ingeniería Informática Universitat Jaume I

4- Uso de sentencias para el envió y extracción de datos

Conceptos Avanzados de Bases de datos

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

Lenguaje SQL para Novatos

Base de datos relacional

S.Q.L. (Lenguaje de Consulta Estructurada)

Referencia SQL en la versión de HUGOSQL White Paper por: HUGOSQL 2012

Trabajo Práctico Modelo de Bases de Datos Relacionales

Sistema Gestor de Bases de Datos Relacionales (SGBDR), que maneja distintos tipos de datos:

PROGRAMANDO BASES DE DATOS PostgreSQL INTRODUCCIÓN INTRODUCCIÓN A LAS BASES DE DATOS (L1)

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 27 28, SQL básico. Carlos Rodrigo Blanco LAEFF INTA

Práctica 3. Consultas SQL

Temario. Índices simples Árboles B Hashing

Crear BD en. Isis Bonet Cruz, PhD

5- Uso de sentencias avanzadas

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

[CASI v.0110] Pág. 1

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

SENTENCIAS Y CONSULTAS EN SQL SERVER

BASES DE DATOS TEMA 4. SQL. UN LENGUAJE DE CONSULTA COMERCIAL PARA BASES DE DATOS RELACIONALES Contenidos generales

INDICE Primera Parte. Panorámica general de SQL 2. Rápido repaso de SQL 3. SQL en Perspectiva

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

TEMA 4. EL MODELO RELACIONAL. 2. Estructura de datos relacional 3. Reglas de integridad 4. Lenguajes relacionales 5. Vistas

EXPLOTACIÓN DE BASES DE DATOS CON ACCESS

INSTITUCIÓN EDUCATIVA GABRIEL GARCIA MÁRQUEZ BASE DE DATOS. DESARROLLO DE SOFTWARE Página 1 de 28 SQL SQL

TEMA. Sistema de Gestión de Bases de Datos. Sistemas Avanzados de Recuperación de Información (SARI)

Sql Basico. Seminar Introduction

Tema: Uso de sentencias SQL

SQL: Lenguaje de Interrogación Estructurado

SQL. Lenguaje de Consulta Estructurado. Curso básico de SQL (Leire Urcola Carrera)

BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL)

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

Transcripción:

SQL (Structured Query Language)- DML Data Manipulation Language: Data Definition Language: Control Commands: Authorization Commands: SELECT, UPDATE, INSERT, DELETE CREATE: TABLE, INDEX, VIEW DROP: TABLE, INDEX, VIEW ALTER TABLE LOCK COMMIT / ROLLBACK UPDATE STATISTICS GRANT, REVOKE Este lenguaje ofrece cuatro proposiciones de DML (Lenguaje de manejo de datos) SELECT (seleccionar) UPDATE (actualizar) DELETE (eliminar) INSERT (insertar) Comando SELECT Sintaxis: SELECT {DISTINCT} elemento(s) FROM tabla(s) {WHERE condición} {GROUP BY campo(s)} {HAVING condición} {ORDER BY campo(s)} Puede haber diferencias según el DBMS particular No confundir SELECT con la selección del álgebra relacional Consultas Simples: SELECT S#, SITUACION FROM S WHERE CIUDAD = París ó SELECT S.S#, S.SITUACION FROM S WHERE S.CIUDAD = París

S# SITUACION S2 10 S3 30 Recuperación simple 1. Obtener los números de parte de todas las partes suministradas SELECT P# FROM SP P# P3 P4 P5 P6 P4 P5 SELECT DISTINCT P# FROM SP P# P3 P4 P5 P6 Recuperación de valores calculados 2. Obtener, para todas las partes, el nro. de parte y su peso en gramos SELECT P.P#, Peso en gramos =, P.PESO * 454 FROM P ; P# Peso en gramos = 5448 Peso en gramos = 7718 P3 Peso en gramos = 7718 P4 Peso en gramos = 6356 P5 Peso en gramos = 5448 P6 Peso en gramos = 8626 3. Obtener los datos de todos los proveedores

SELECT * FROM S ; (El resultado es toda la tabla) Recuperación calificada 4. Obtener los números de proveedores radicados en París cuya situación sea mayor que 20. SELECT S# FROM S WHERE CIUDAD = París AND Situación > 20 ; S# S3 Recuperación con ordenamiento 5. Obtener números de proveedor y situación de los proveedores radicados en París, en orden descendente por situación. SELECT S#, SITUACION FROM S WHERE CIUDAD = París ORDER BY SITUACION DESC ; S# SITUACION S3 30 S2 10 Consultas de reunión: 6. Obtener todas las combinaciones de información de proveedores y partes tales que el proveedor y la parte en cuestión estén situados en la misma ciudad, pero omitiendo a los proveedores cuya situación sea 20. SELECT S.*, P.* FROM S, P WHERE S.CIUDAD = P.CIUDAD AND S.SITUACION <> 20 ;

S# SNOMBRE SITUACION S.CIUDAD P# PNOMBRE COLOR PESO P.CIUDAD S2 Jaimes 10 París Perno Verde 17 París S2 Jaimes 10 París P5 Leva Azul 12 París S3 Bernal 30 París Perno Verde 17 París S3 Bernal 30 París P5 Leva Azul 12 París Recuperación de campos específicos de una reunión: 7. Obtener todas las combinaciones de número de proveedor/número de parte tales que el proveedor y la parte en cuestión estén cosituados. SELECT S.S#, P.P# FROM S, P WHERE S.CIUDAD = P.CIUDAD ; S# P# S1 S1 S1 S2 S2 S3 S3 S4 S4 S4 P4 P6 P5 P5 P4 P6 Funciones de agregados: COUNT, SUM, AVG, MAX, MIN Actúan sobre una columna 8. Obtener el número total de proveedores SELECT COUNT (*) FROM S ; Resultado: 5 9. Obtener el número de proveedores que suministran partes en la actualidad SELECT COUNT (DISTINCT S#) FROM SP ; Resultado: 4 Función de agregados en el SELECT con una condición: 10. Obtener el número de envíos de la parte SELECT COUNT (*) FROM SP WHERE P# = ; Resultado: 4 11. Obtener la cantidad total suministrada de la parte

SELECT SUM(CANT) FROM SP WHERE P# = ; Resultado: 1000 Empleo de GROUP BY: 12. Calcular la cantidad total suministrada de cada parte SELECT P#, SUM(CANT) FROM SP GROUP BY P# ; P# 600 1000 P3 400 P4 500 P5 500 P6 100 Empleo de HAVING (con) 13. Obtener los números de todas las partes suministradas por más de un proveedor SELECT P# FROM SP GROUP BY P# HAVING COUNT(*) > 1 ; P# P4 P5 HAVING es a los grupos lo que WHERE es a las filas. Las funciones de agregados van en la lista de campos. Si se hacen sobre los grupos se ponen las funciones de agregados en el having. OTRAS CARACTERÍSTICAS Recuperación de datos con LIKE (como) 14. Obtener todas las partes cuyos nombres comiencen con la letra B SELECT P.* FROM P WHERE P.PNOMBRE LIKE B% ; P# PNOMBRE COLOR PESO CIUDAD

P3 Birlo Azul 17 Roma P4 Birlo Rojo 14 Londres NOTAS: Para detectar la ausencia o presencia de nulos: nombre columna IS {NOT} NULL SELECT S# FROM S WHERE SITUACION IS NULL ; Resultado: S# = S5 Para buscar en un conjunto de valores: nombre columna IN (conjunto valores) Recuperación de datos con subconsulta: 15. Obtener los nombres de los proveedores que suministran la parte WHERE S# IN (SELECT S# FROM SP WHERE P# = ) ; SNOMBRE Salazar Jaimes Bernal Corona equivale a: WHERE S# IN ( S1, S2, S3, S4 ) ; también podría expresarse como una consulta de reunión: SELECT S.NOMBRE FROM S, SP WHERE S.S# = SP.S# AND SP.P# = ; 16. Obtener los nombres de los proveedores que suministren por lo menos una parte roja WHERE S# IN (SELECT S# FROM SP WHERE P# IN (SELECT P# FROM P WHERE COLOR = Rojo )) ;

SNOMBRE Salazar Jaimes Corona Función de agregados en una subconsulta: 17. Obtener los números de los proveedores cuya situación sea menor que el valor máximo actual de situación en la tabla S SELECT S# FROM S WHERE SITUACION < (SELECT MAX (SITUACION) FROM S) ; S# S1 S2 S4 Consulta con EXISTS (existe) 18. Obtener los nombres de los proveedores que suministran la parte WHERE EXISTS (SELECT * FROM SP WHERE S# = S.S# AND P# = ) EXITS (subconsulta) da verdadero si el resultado de evaluar la subconsulta no es el conjunto vacío Esta consulta se podría haber resuelto utilizando IN Consulta NOT EXISTS 19. Obtener los nombres de los proveedores que no suministran la parte ( lo inverso del caso anterior) WHERE NOT EXISTS ( SELECT * FROM SP WHERE S# = S.S# AND P# = ); Resultado: SNOMBRE Aldana

Equivale a enunciar: seleccionar nombres de proveedores tales que no exista un envio que relacione a esos proveedores con la parte. Y resolverla con un IN WHERE S# NOT IN ( SELECT S FROM SP P# = ); 20. Obtener los nombres de los proveedores que suministren todas las partes (Obtener el nombre de los proveedores tales que no exista una parte que no suministren) WHERE NOT EXISTS (SELECT * FROM P WHERE NOT EXISTS (SELECT * FROM SP WHERE S# = S.S# AND P = P.P# )) ; Resultado: SNOMBRE Salazar Consulta con UNION 21. Obtener los números de las partes que pesen más de 16 libras o sean suministradas por el proveedor S2 (o las dos cosas) SELECT P# FROM P WHERE PESO > 16 UNION SELECT P# FROM SP WHERE S# = S2 ; P3 P6 Consulta con MINUS

Operaciones de actualización UPDATE (ACTUALIZAR) UPDATE tabla SET campo = expresión [, campo = expresión ]... [WHERE condición ] ; Sin WHERE se modifican todas las filas 1- Modificación de un solo registro Cambiar a color amarillo el color de la parte, aumentar su peso en 5 e indicar que su ciudad es desconocida UPDATE P SET COLOR = 'Amarillo', PESO = PESO + 5, CIUDAD = NULL WHERE P# = '' ; 2- Modificación de varios registros Duplicar la situación de todos los proveedores de Londres. UPDATE S SET SITUACION = 2 * SITUACION WHERE CIUDAD = Londres ; 3- Modificación con subconsulta Poner en cero la cantidad enviada por todos los proveedores de Londres UPDATE SP SET CANT = 0 WHERE S# IN (SELECT S# FROM S WHERE CIUDAD = Londres ) ;

4- Modificación de varios tablas Cambiar el número de proveedor S2 a S9. UPDATE S SET S# = 'S9' WHERE S# = 'S2' ; UPDATE SP SET S# = 'S9' WHERE S# = 'S2' ; Si se la altera en forma incorrecta se puede violar la integridad de datos ( int. referencial) DELETE (ELIMINAR) DELETE FROM tabla [WHERE condición] ; Elimina todos los registros de una tabla que satisfagan una condición 1- Eliminación de un solo registro Eliminar el proveedor S5 DELETE FROM S WHERE S# = 'S5' ; 2- Eliminación de varios registros Eliminar todos los envíos cuya cantidad sea mayor que 300 DELETE FROM SP WHERE CANT > 300 ;

Eliminar todos los envíos DELETE FROM SP - SP existe pero vacía. La estructura se borra con DROP. 3- Eliminación con subconsulta Eliminar todos los envíos de los proveedores situados en Londres DELETE FROM SP WHERE S# IN (SELECT S# FROM S WHERE CIUDAD = 'Londres') ; INSERT (INSERTAR) INSERT INTO tabla [ ( campo1 [, campo2,..]) ] VALUES ( valor1 [, valor2,...] ) ; o bien INSERT INTO tabla [ ( campo1 [, campo2,..]) ] subconsulta ; 1- Inserción de un solo registro Añadir: parte P7 (ciudad Atenas, peso 24, nombre y color desconocidos) a la tabla P INSERT INTO P ( P#, CIUDAD, PESO) VALUES ( P7, Atenas,24) ; - Suponemos que NOMBRE y COLOR no se definieron como NOT NULL

2- Inserción de un solo registro omitiendo nombres de campos Añadir: parte P8 (nombre: cadena, color: rosa, peso: 14, ciudad: Niza) a la tabla P INSERT INTO P VALUES ('P8','Cadena', 'Rosa', 14, 'Niza') ; 3- Inserción de varios registros Para cada parte suministrada obtener el número de parte y la cantidad total suministrada y guardar el resultado en la BD Temp. CREATE TABLE TEMP ( P# CHAR(6) NOT NULL, CANTTOTAL INTEGER NOT NULL, PRIMARY KEY ( P# ) ); CREATE INDEX XT ON TEMP ( P#); INSERT INTO TEMP ( P#, CANTTOTAL) SELECT P#, SUM (CANT) FROM SP GROUP BY P# ; Añadir a los envíos las combinaciones de partes, proveedores y proyectos que no existan. INSERT INTO SPJ (S#, P#, J#) SELECT S#, P#, J# FROM S, P, J WHERE S# NOT IN (SELECT DISTINCT S# FROM SPJ) AND P# NOT IN (SELECT DISTINCT P# FROM SPJ) AND J# NOT IN (SELECT DISTINCT J# FROM SPJ)

Compradores Nombre Dirección Balance Brooks, B Rioja 1234 +10.50 Field, W Córdoba 4321 0 Robin, R Italia 223-123.45 Ordenes Nombre Item Cantidad Brooks, B Soja 5 Brooks, B Harina 10 Robin, R Soja 3 Field, W Maíz 5 Robin, R Levadura 2 Robin, R Trigo 8 Proveedores PNombre Pdirección Item Precio Sunshine Produce San Luis 213 Soja 1.29 Sunshine Produce San Luis 213 Trigo 0.89 Sunshine Produce San Luis 213 Levadura 1.09 Purity Foods Av. Pellegrini 2266 Maíz 0.70 Purity Foods Av. Pellegrini 2266 Cardos 0.80 Purity Foods Av. Pellegrini 2266 Soja 1.25 Purity Foods Av. Pellegrini 2266 Harina 0.65 Tasti Supply Co. Cerrito 1971 Trigo 0.79 Tasti Supply Co. Cerrito 1971 Maíz 0.79 Tasti Supply Co. Cerrito 1971 Levadura 1.19 Dadas las siguientes relaciones: Compradores(Nombre, Dirección, Balance) Ordenes(Nombre, Item, Cantidad) Proveedores(Pnombre, Pdirección, Item, Precio) 1. Nombres de los que tienen balance negativo 2. Nombres de proveedores, items y precios de todos los proveedores que proveen items ordenados por Brooks 3. Nombres de proveedores que proveen todos los items ordenados por Brooks SELECT Nombre FROM Compradores WHERE Balance < 0 SELECT Pnombre, Item, Precio FROM Proveedores WHERE Item IN SELECT Item FROM Ordenes WHERE Nombre= Brooks, B SELECT UNIQUE Pnombre FROM Proveedores T WHERE SELECT Item FROM Proveedores WHERE PNombre=T.PNombre CONTAINS SELECT Item FROM Ordenes WHERE Nombre= Brooks, B