



























Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Estructura de Datos de la Información I, Profesor: , Carrera: Ingeniería Informática, Universidad: UAM
Tipo: Apuntes
1 / 35
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




























Introducción y fundamentos Introducción a SQL Modelo Entidad / Relación Modelo relacional Diseño relacional: formas normales Consultas
Lenguaje de “programación” para SGBDs
Operaciones SQL DDL – Creación, diseño, eliminación de tablas DML – Inserción, modificación, eliminación de registros DQL – Consulta Estructura léxica de SQL Case-insensitive, insignificant whitespace Sentencias, expresiones, valores, tipos de datos Referencias
Base de datos de músicos, canciones, usuarios, escuchas, red social Ejemplos de consultas Canciones de los años 60 (mostrar título y género) Conjunto de nacionalidades de los artistas cubiertas en la BD Canciones de artistas del Reino Unido Título de las canciones escuchadas por un usuario Todos los contactos de un usuario dado Usuarios que se llaman igual Usuarios a distancia 2 de un usuario dado en la red social Contactos comunes a dos usuarios Cuántas veces ha sido escuchada una canción Artistas por orden de más a menos escuchados Usuarios con más de dos contactos Usuarios ordenados por nº de contactos Usuario con más contactos
CREATE TABLE nombre ( campo1 tipo1 [ restricciones1 ], campo2 tipo2 [ restricciones2 ], …, [ restricciones ] );
ALTER TABLE nombre ADD COLUMN campo tipo [ restricciones ]; ALTER TABLE nombre ADD restricción ; ALTER TABLE nombre DROP COLUMN campo ;
DROP TABLE nombre ; DROP CONSTRAINT nombre-restricción ;
CREATE TABLE Artista ( id int PRIMARY KEY, nombre text NOT NULL, nacionalidad text ); CREATE TABLE Cancion ( id int PRIMARY KEY, titulo text NOT NULL, genero text, duracion int, fecha date, autor int NOT NULL REFERENCES Artista (id) );
CREATE TABLE Escucha ( usuario varchar(30), cancion int REFERENCES Cancion (id), instante timestamp, PRIMARY KEY (usuario,cancion,instante) );
ALTER TABLE Escucha DROP COLUMN instante; ALTER TABLE Escucha ADD instante timestamp; /* NULL’s */
ALTER TABLE Escucha ADD FOREIGN KEY (usuario) REFERENCES Usuario (nick);
ALTER TABLE Usuario ADD PRIMARY KEY (nick);
Tipos SQL character ( n ) char( n ), varchar( n ), text integer int, smallint float, real, double precision numeric( precisión , escala ) decimal( precisión , escala ) date, time, timestamp Valores literales Cadenas de caracteres entre '...' Valores numéricos similar p.e. a C date ‘YYYY-MM-DD’, time ‘HH:MM:SS’ Expresiones Se pueden utilizar en WHERE, SELECT, SET, DEFAULT, CHECK… Operadores Comentarios
dígitos decimales (por defecto 0)
Designan un identificador único de las filas de una tabla
Sólo puede haber una clave primaria por tabla, aunque puede incluir varios campos
Es muy aconsejable que toda tabla tenga su clave primaria
Técnicamente equivalen a UNIQUE más NOT NULL
Pero juegan un papel diferente en indexación (lo veremos más adelante)
Opción de diseño: selección de clave primaria entre varias posibles
Conceptualmente son comparables a punteros
Referencian campos únicos de otra tabla
Normalmente el campo referenciado es una clave primaria
Técnicamente no es imprescindible usarlas
Pero ayuda a asegurar la consistencia en las referencias!
Y permiten establecer qué se debe hacer cuando desaparece una clave referenciada
INSERT INTO Artista VALUES (1, 'The Beatles', 'UK'); INSERT INTO Artista VALUES (2, 'The Rolling Stones', 'UK'); INSERT INTO Artista (id, nombre) VALUES (3, 'David Bowie');
INSERT INTO Cancion VALUES (1, 'Norwegian wood', 'Pop', '125', '1965-03-12', 1), (2, 'Here, there and everywhere', 'Pop', '145', '1966-08-05', 1), (3, 'Jumping jack flash', 'Pop', '225', '1968-04-20', 2);
INSERT INTO Usuario VALUES ('lola', 'Dolores', '[email protected]'), ('pepe', 'José', '[email protected]'), ('chema', 'José María', '[email protected]'), ('charo', 'Rosario', '[email protected]');
INSERT INTO Contacto VALUES ('pepe', 'lola'), ('charo', 'pepe'), ('chema', 'charo');
INSERT INTO Escucha VALUES ('charo', 2, '2011-09-09 16:57:54'), ('pepe', 3, '2011-09-12 21:15:30');
UPDATE Artista SET nacionalidad = 'UK' WHERE nombre = 'David Bowie';
UPDATE Album SET precio = precio * 1.2;
DELETE FROM Escucha WHERE instante < '2000-01-01 00:00:00';
SELECT [DISTINCT] campos FROM tablas [WHERE condición ];
Ejemplos:
SELECT titulo, genero FROM Cancion WHERE fecha > '1959-12-31' AND fecha < '1970-01-01'; SELECT DISTINCT nacionalidad FROM Artista; /* Varias tablas / SELECT * FROM Cancion, Artista WHERE Cancion.autor = Artista.id AND Artista.nacionalidad = 'UK'; / Expresiones */ SELECT dni, teoria * 0.6 + practicas * 0.4 FROM Notas;
Base de datos de músicos, canciones, usuarios, escuchas, red social Ejemplos de consultas Canciones de los años 60 (mostrar título y género) Conjunto de nacionalidades de los artistas cubiertas en la BD Canciones de artistas del Reino Unido Título de las canciones escuchadas por un usuario Todos los contactos de un usuario dado el nombre de éste Usuarios que se llaman igual Usuarios a distancia 2 de un usuario dado en la red social Contactos comunes a dos usuarios Cuántas veces ha sido escuchada una canción Artistas por orden de más a menos escuchados Usuarios con más de dos contactos Usuarios ordenados por nº de contactos Usuario con más contactos