Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tabla de actores:
USE videoteca; DROP TABLE IF EXISTS actor; CREATE TABLE actor ( id INT NOT NULL AUTO_INCREMENT, nombre VARCHAR(64) NOT NULL, apellidos VARCHAR(64) NOT NULL, imdb VARCHAR(32) NOT NULL DEFAULT '', PRIMARY KEY(id) ) ENGINE = InnoDB;
Registro de prueba:
USE videoteca; INSERT INTO actor(nombre, apellidos, imdb) VALUES('Harrison', 'Ford', 'nm0000148'); INSERT INTO actor(nombre, apellidos, imdb) VALUES('Russell', 'Crowe', 'nm0000128');
Lista de actores
En su versin ms simple:
USE videoteca;
Editar seccin
Editar
Delimitadores
USE videoteca; DELIMITER //
Editar seccin
CREATE PROCEDURE pa_actores_cantidad2() BEGIN DECLARE actores INT; SELECT COUNT(*) FROM actor INTO actores; SELECT actores; END // DELIMITER ;
Parmetros
USE videoteca;
Editar seccin
CREATE PROCEDURE pa_actores_buscar(letra CHAR(2)) SELECT * FROM actor WHERE nombre LIKE letra;
CALL pa_actores_buscar('h%');
Funciones almacenadas
Nmero de actores:
USE videoteca;
Editar seccin
DELIMITER // CREATE FUNCTION fa_actores_cantidad() RETURNS INT BEGIN DECLARE actores INT; SELECT COUNT(*) INTO actores FROM actor; RETURN actores; END // DELIMITER ;
Eliminacin
USE videoteca;
Editar seccin
DROP PROCEDURE IF EXISTS pa_actores_lista; CREATE PROCEDURE pa_actores_lista() SELECT * FROM actor ORDER BY apellidos, nombre;
Detalles
USE videoteca;
Editar seccin
Respuesta ms ordenada:
USE videoteca; SHOW CREATE PROCEDURE pa_actores_lista\G
Editar seccin
Una insercin:
USE videoteca; CALL pa_actor_insertar( 'Tim','Robbins','nm0000209');
Lista de actores:
Creacion:
DROP DATABASE IF EXISTS videoteca; CREATE DATABASE videoteca;
Tablas:
USE videoteca; CREATE TABLE actor ( id INT NOT NULL AUTO_INCREMENT, nombre VARCHAR(64) NOT NULL, apellidos VARCHAR(64) NOT NULL, PRIMARY KEY(id) ) ENGINE = InnoDB; CREATE TABLE actor_ext ( idactor INT NOT NULL, imdb VARCHAR(32) NOT NULL, carpeta VARCHAR(255) NOT NULL, PRIMARY KEY(idactor), INDEX ae_FK(idactor), FOREIGN KEY(idactor) REFERENCES actor(id) ) ENGINE = InnoDB;
Inserciones:
USE videoteca; INSERT INTO actor(nombre, apellidos) VALUES('Harrison', 'Ford'); INSERT INTO actor(nombre, apellidos) VALUES('Russell', 'Crowe'); INSERT INTO actor_ext(idactor, imdb, carpeta) VALUES(1, 'nm0000148', 'harrison_ford'); INSERT INTO actor_ext(idactor, imdb, carpeta) VALUES(2, 'nm0000128', 'russell_crowe');
Desencadenador de insercin
USE videoteca;
Editar seccin
DELIMITER // CREATE TRIGGER dc_actor_insertar AFTER INSERT ON actor FOR EACH ROW BEGIN DECLARE nuevo_carpeta VARCHAR(255); SET nuevo_carpeta = CONCAT( LOWER(NEW.nombre), '_', LOWER(NEW.apellidos) ); INSERT INTO actor_ext(idactor, imdb, carpeta) VALUES(NEW.id, '', nuevo_carpeta); END // DELIMITER ;
Desencadenador de actualizacin
USE videoteca; DELIMITER // CREATE TRIGGER dc_actor_actualizar AFTER UPDATE ON actor FOR EACH ROW BEGIN DECLARE nuevo_carpeta VARCHAR(255); SET nuevo_carpeta = CONCAT( LOWER(NEW.nombre), '_', LOWER(NEW.apellidos) ); UPDATE actor_ext SET carpeta = nuevo_carpeta WHERE idactor = NEW.id;
Editar seccin
END // DELIMITER ;
Borrado
USE videoteca; DELIMITER //
Editar seccin
CREATE TRIGGER dc_actor_eliminar BEFORE DELETE ON actor FOR EACH ROW BEGIN DELETE FROM actor_ext WHERE idactor = OLD.id; END // DELIMITER ;
Borrar un actor:
USE videoteca; DELETE FROM actor WHERE id = 3;
Mantenimiento de soportes
void btnGuardarClick( object sender, System.EventArgs e ) {
Editar seccin
if(sNombre == ""){ MessageBox.Show("Indique un nombre."); return; } if(sDescripcin == ""){ MessageBox.Show("Indique una descripcin."); return; } string sConsulta = "INSERT INTO " + "soporte(nombre, descripcion) "+ "VALUES(" + "'" + sNombre + "'," + "'" + sDescripcion + "'" + ");"; string sCon = "DSN=videoteca"; OdbcConnection oCon = new OdbcConnection(); oCon.ConnectionString = sCon; oCon.Open(); OdbcCommand oCmd = new OdbcCommand(); oCmd.Connection = oCon; oCmd.CommandText = sConsulta; oCmd.ExecuteNonQuery(); oCmd.Close(); }
Mantenimiento de pelculas
Cargar la lista de gneros:
void CargarGeneros(){ string sCmd; sCmd = "SELECT id, nombre " + "FROM genero;"; string sCon = "DSN=videoteca"; OdbcConnection oCon = new OdbcConnection(); oCon.ConnectionString = sCon; oCon.Open(); OdbcCommand oCmd = new OdbcCommand(); oCmd.Connection = oCon; oCmd.CommandText = sCmd;
Editar seccin
OdbcDataReader oReader; oReader = oCmd.ExecuteReader(); long iId = 0; string sNombre = ""; while(oReader.Read()){ iId = (long)oReader.GetValue(0); sNombre = (string)oReader.GetValue(1); lstGeneros.Items.Add( sNombre + " (" + iId + ")"); } oCon.Close(); lstGeneros.SelectedIndex = 0; }
iIdSoporte + ");"; string sCon = "DSN=videoteca"; OdbcConnection oCon = new OdbcConnection(); oCon.ConnectionString = sCon; oCon.Open(); OdbcCommand oCmd = new OdbcCommand(); oCmd.Connection = oCon; oCmd.CommandText = sConsulta; oCmd.ExecuteNonQuery(); oCon.Close(); }