Tema 4. DML (Parte I)

Documentos relacionados
Lenguaje de manipulación de datos

Un proyecto de IBM llamado Sistem/R construye un prototipo simple llamado SQUARE que después se transformó en SQL.

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT

Manual de Sentencias Básicas en SQL

Anexo 3 COMPONENTES DE SQL SERVER. Los DDL (Data Definition Languaje) que permiten crear y definir nuevas

SQL. Amparo López Gaona. México, D.F. Noviembre 2003

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

SQL Básico. José Muñoz Jimeno Febrero 2015

RESUMEN SQL. Tipo de coincidencia Modelo Planteado Coincide No coincide. Varios caracteres 'ab*' 'abcdefg', 'abc' 'cab', 'aab'

Ejemplo de gestión de datos con SQL

Oracle Database 12c SQL and PLSQL Fundamentals

FUNDAMENTOS ORACLE 12C

Create Database ClaseAutos. Use ClaseAutos

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

Oracle Fundamentos. Programa de Estudio.

Oracle Fundamentos. Programa de Estudio.

Tema 4. Realización de consultas SQL JOSÉ JUAN SÁNCHEZ HERNÁNDEZ

ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1

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

Sistemas de Bases de Datos II ITS / ITSB EMT CETP

SQL SERVER Curso Teórico-Práctico

TEMA 4.. CONSULTA DE DATOS I.

PROGRAMACION WEB I BASE DE DATOS MYSQL CON PHP

SQL (Structured Query Language)

Laboratorio de Bases de Datos (EBB)

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

Manual Aprendiendo Practicando Oracle SQL (Spanish Edition) Click here if your download doesn"t start automatically

TEMA 5: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

El SQL es un lenguaje estándar de programación para el acceso a bases de datos.

SQL Los fundamentos del lenguaje (con ejercicios corregidos) (2ª edición)

SQL, Consultas. Son Importantes las Consultas? Cuál es el Resultado de SELECT? Andrés Moreno S.

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

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA

Insertar Datos en Tablas

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

ÍNDICE INTRODUCCIÓN...17

SQL Los fundamentos del lenguaje

SQL. Dra. Amparo López Gaona () Posgrado en Ciencia e Ingeniería de la Compu. Abril 2012 / 14

8 SQL SERVER 2008 RA-MA

Computación Web (Curso 2015/2016)

A.1. Definiciones de datos en SQL

SQL DML Select. Ges$ón y Modelación de Datos. María Constanza Pabón

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

ÍNDICE PRIMERA PARTE... 17

o SUM: suma los valores del campo que especifiquemos. Sólo se puede utilizar en columnas numéricas.

Vistas en InformiX Sistemas de Bases de Datos II EMT CETP A/S Leonardo Carámbula

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

SQL (Structured Query Language)- DML

Índice de contenido. Velneo ODBC Driver 20. Telf. (+34) velneo.es

SQL SERVER SQL Server 2005 permite tres tipos de operaciones con conjuntos: UNION, disponible en todas las versiones de SQL Server.

Velneo ODBC Driver V7

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

Data source name: Nombre por el que se conocerá la conexión ODBC y que será usado en los distintos clientes del driver ODBC.

Bases de Datos 2. Teórico

6.1. Introducción. Guía 5. SQL.

Laboratorios de BASES DE DATOS. (I.T. Informática)

En este curso se presenta un análisis profundo de la base de datos MySQL para los sistemas operativos Windows y Linux.

Programación con SQL Server

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

Programación con SQL Server

Unidad III. Bases de Datos

Tema 7. Elaboración de consultas básicas de selección. Lenguajes de bases de datos. SQL básico 15/12/2011

1. DML. Las consultas de resumen

Bases de Datos: Structured Query Language (SQL)

SQL: Lenguaje de Interrogación Estructurado

Operadores. Además se pueden emplear en sentencias SET.

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

SQLModificaciones a la BD

ÍNDICE. Introducción... XVII. Capítulo 1. Oracle 10g y el Grid Computing... 1

CC BASES DE DATOS PRIMAVERA Clase 7: SQL (II) Aidan Hogan

Conceptos Avanzados de Programación en Internet

SQL Server FEMEPA SQL Server 2000

Número de Práctica: 1 Nombre de la Práctica: Comunicación Cliente Servidor Vía Sockets Java con Sistema Manejador de Bases de Datos

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

Capítulo 4. Realización de consultas

Diseña y Administra Bases de Datos Guía de Estudio

MANUAL BÁSICO DEL LENGUAJE SQL

FUNCIONES EN SQL SERVER

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

Tema 5. DML (Parte II)

Uso de SQL. "WHERE id = " + cuentas[i].getid() o bien ResulSet r =s.executequery("select nombre FROM alumno" + "WHERE id = " + cuentas[i].

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

ADMINISTRACION DE BASES DE DATOS EN ORACLE

Modelamiento y Gestión de Base de Datos

Transcripción:

Tema 4 DML (Parte I) IES Francisco Romero Vargas Departamento de Informática Tema 4. DML (I). Página 1 de 9

1. Introducción Un Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o manipulación de los datos (inserción, borrado, actualización y consultas) basado en el modelo de datos adecuado. DML Funciones http://dev.mysql.com/doc/refman/5.7/en/sql-syntax-datamanipulation.html http://dev.mysql.com/doc/refman/5.7/en/functions.html Basándonos en la BD opera del tema anterior vamos a estudiar, mediante ejemplos, las siguientes sentencias DML: Objetivo Comando Aclaración Insertar INSERT Inserta uno o más registros en una tabla. información LOAD DATA INFILE Lee registros desde un fichero de texto y los copia en una tabla. REPLACE Inserta uno o más registros y/o modifica los existentes. Consultar datos SELECT Se usa para seleccionar registros de una o más tablas. Borrar DELETE Elimina uno o varios registros de una tabla. información TRUNCATE Elimina todos los resgistros de una tabla. Modificar información UPDATE Actualiza columnas de registros existentes en una tabla. 2. Inserción de datos en una tabla INSERT Inserta uno o más registros en una tabla. INSERT [INTO] mitabla [(columna1, [columna2,... ])] VALUES (valor1, [valor2,...]); Las cantidades de columnas y valores deben ser las mismas. Tema 4. DML (I). Página 2 de 9

Si una columna no se especifica, le será asignado el valor por omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error. INSERT INTO opera (nombre, fecha_estreno, lugar_estreno, autor_idautor, idioma) VALUES ('Don Pasquale', '1843-01- 03', 'Paris', 3, 'I'); Cuando se insertan todos los valores de una tabla, no es necesario poner los nombres de los campos (columnas). INSERT INTO opera VALUES (2, 'Tosca', Roma,'1900-01- 14', 'I', NULL, NULL, 2); Se pueden insertar varias filas (registros) a la vez con una única sentencia. LOAD DATA INFILE INSERT INTO opera VALUES (12, 'Macbeth', Florencia, '1847-03-14', 'I', 'Basada en la tragedia homónima de William Shakespeare', NULL, 1), (13, 'Fidelio', Viena, '1805-11-20', 'A', NULL, NULL, 6); Inserta registros en una tabla desde un fichero de texto. LOAD DATA INFILE 'data.txt' INTO TABLE mitabla; LOAD DATA INFILE 'opera.txt' INTO TABLE opera LINES TERMINATED BY '\n\r'; Cuando el archivo no contiene datos de todas las columnas o no siguen el orden original: LOAD DATA INFILE 'autor.txt' INTO TABLE autor (idautor,fecha_nacimiento,lugar_nacimiento,fecha_defunci on_lugar_defuncion); Tema 4. DML (I). Página 3 de 9

REPLACE Funciona como INSERT, pero si la clave primaria del registro que se inserta ya se encuentra en la tabla, entonces REEMPLAZA el registro de la tabla por el nuevo registro. REPLACE INTO opera (idopera,nombre) VALUES (13,'Fidelio'),(14,'Norma'); 3. Modificación de datos de una tabla UPDATE Actualiza columnas en registros existentes de una tabla. UPDATE [LOW_PRIORITY] [IGNORE] mitabla SET columna1=expr1 [, columna2=expr2...] [WHERE condicion] [ORDER BY...] [LIMIT numero_de_filas_afectadas] La cláusula SET indica qué columna modificar y los valores que puede recibir. La cláusula WHERE, si se da, especifica qué registros deben actualizarse. De otro modo, se actualizan todos los registros. Si la cláusula ORDER BY se especifica, los registros se actualizan en el orden que se especifica. La cláusula LIMIT es el límite de registros a actualizar. UPDATE opera SET autor_idautor=6 where nombre='fidelio'; 4. Borrado de filas de una tabla DELETE Borra registros de una tabla. DELETE FROM mitabla WHERE columna1 = valor1 DELETE FROM opera WHERE nombre LIKE '%Norma%'; Tema 4. DML (I). Página 4 de 9

TRUNCATE Vacía una tabla completamente. TRUNCATE TABLE mitabla Lógicamente, esto es equivalente a un comando DELETE que borre todos los registros, pero hay diferencias prácticas bajo ciertas circunstancias. Cuidado! Cuando existen claves foráneas no es posible realizar este comando salvo que se deshabiliten en el sistema las claves foráneas previamente. SET FOREIGN_KEY_CHECKS=0; TRUNCATE TABLE autor; SET FOREIGN_KEY_CHECKS=1; 5. Consulta de datos de una tabla SELECT Devuelve información de los datos contenidos en una tabla. SELECT [ALL DISTINCT ] select_expr,... [INTO OUTFILE 'file_name' export_options INTO DUMPFILE 'file_name'] [FROM table_references [WHERE where_definition] [GROUP BY {col_name expr position} [ASC DESC],... ] [HAVING where_definition] [ORDER BY {col_name expr position} [ASC DESC],...] [LIMIT {[offset,] row_count row_count OFFSET offset}] Es importante conocer el orden de las cláusulas: SELECT FROM WHERE GROUP BY HAVING ORDER LIMIT Tema 4. DML (I). Página 5 de 9

SELECT 1+1; (devuelve 2). Permite seleccionar una o varias columnas: SELECT idopera,nombre FROM opera; A las columnas se les puede poner alias: SELECT idopera, nombre AS titulo FROM opera; Se pueden ordenar los registros seleccionados: SELECT nombre, autor_idautor FROM opera ORDER BY autor_idautor,nombre; También se pueden agrupar registros. En este caso se contarán todos los registros por cada autor diferente: SELECT autor_idautor, COUNT(nombre) AS operas FROM opera GROUP BY autor_idautor ORDER BY operas DESC; Se pueden seleccionar solo los registros que cumplan una condición: SELECT nombre FROM opera WHERE autor_idautor=1; HAVING permite poner condiciones, como WHERE, pero estas condiciones se aplican después del ORDER BY y GROUP BY. Además, HAVING puede llevar funciones de agregación (max, min, count, avg...), mientras que WHERE no puede. SELECT autor_idautor, COUNT(nombre) FROM opera GROUP BY autor_idautor HAVING COUNT(nombre)>=2; Es posible enviar la consulta a un fichero de texto: SELECT nombre,fecha_estreno,lugar_estreno FROM opera INTO OUTFILE 'opera.txt'; Funciones de Agrupación Tema 4. DML (I). Página 6 de 9

Permiten obtener datos de una consulta con GROUP BY. AVG. Retorna el valor medio de la expresión. SELECT ciudad, AVG(aforo) FROM teatro GROUP BY ciudad; COUNT. Retorna el contador del número de valores no NULL en los registros recibidos por un comando SELECT. SELECT COUNT(distinct autor_idautor) FROM opera; SELECT COUNT(*) FROM opera; MIN, MAX. Retornas los valores máximos y mínimos. SELECT MAX(fecha_estreno) FROM opera; SUM. Retorna la suma de la expresión. SELECT SUM(espectadores) FROM representa WHERE opera_idopera=1; Subconsultas Corresponden a un comando SELECT dentro de otro comando. Ejemplo: SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); Una subconsulta puede retornar un valor único, un registro, una columna o una tabla (uno o más registros de una o más columnas). En su forma más sencilla, una subconsulta es una subconsulta escalar que retorna un único valor. SELECT nombre FROM autor WHERE idautor = (SELECT autor_idautor FROM opera WHERE nombre = 'Aida'); Tema 4. DML (I). Página 7 de 9

La palabra clave ANY, que debe seguir a un operador de comparación, significa return TRUE si lacomparación es TRUE para cualquiera de los valores en la columna que retorna la subconsulta. SELECT nombre FROM opera WHERE autor_idautor = ANY (SELECT idautor FROM autor WHERE nombre LIKE '%Beethoven%' OR nombre LIKE '%Verdi%'); La palabra IN es un alias para = ANY. SELECT nombre FROM opera WHERE autor_idautor NOT IN (SELECT idautor FROM autor WHERE nombre LIKE '%Verdi%'); La palabra ALL, que debe seguir a un operador de comparación, significa return TRUE si la comparación es TRUE para todos los valores en la columna que retorna la subconsulta. Ejemplos de Funciones A continuación se presentan algunos ejemplos de uso de diferentes funciones MySQL: - Con operadores de comparación SELECT * FROM opera WHERE autor_idautor IS NULL; SELECT nombre, fecha_nacimiento FROM autor WHERE fecha_nacimiento BETWEEN '1800-01-01' AND '1900-12-31'; - De control de flujo - De cadenas SELECT nombre, CASE idioma WHEN 'I' THEN 'Italiano' WHEN 'A' THEN 'Alemán' WHEN 'F' THEN 'Francés' ELSE 'Desconocido' END AS 'Idioma' FROM opera; SELECT nombre, if(idioma='i','',idioma) as 'Idioma' from opera; Tema 4. DML (I). Página 8 de 9

SELECT CONCAT('My', 'S', 'QL'); SELECT UPPER(nombre) FROM opera; SELECT LTRIM(' los espacios del principio'); Quítame SELECT nombre FROM opera WHERE LOCATE('Violeta',sinopsis)!= 0; - De fecha y hora - Numéricas SELECT IF(STRCMP('a','a')=0,'Son iguales','no lo son'); SELECT CURDATE();// CURRENT_DATE(), NOW(), SELECT nombre, DATEDIFF(fecha_defuncion,fecha_nacimiento) AS 'Dias vividos' FROM autor; SELECT nombre, YEAR(fecha_defuncion) - YEAR(fecha_nacimiento) - ( RIGHT(fecha_defuncion,5) > RIGHT(fecha_nacimiento,5) ) as 'Murio con (años)' FROM autor WHERE fecha_nacimiento IS NOT NULL AND fecha_defuncion IS NOT NULL ORDER BY 2 DESC; SELECT nombre, DAYNAME(fecha_nacimiento), DATE_FORMAT(fecha_nacimiento,'%e de %M de %Y') FROM autor; SELECT SEC_TO_TIME(2378); SELECT PI(); SELECT SQRT(4); SELECT 5*4 MOD 2; SELECT nombre FROM opera ORDER BY RAND() LIMIT 1; Tema 4. DML (I). Página 9 de 9