Enreas
Advertisement

Enlaces, enlaces[]

El valor NULL[]

Volver a utilizar la base de datos videoteca creada en el segundo capítulo. Insertar una nueva película:

USE videoteca;

INSERT INTO pelicula(
  titulo,
  director
)
VALUES(
  'Naves misteriosas',
  'Douglas Trumbull'
);

Realizar la siguiente consulta:

USE videoteca;

SELECT
  titulo,
  CONCAT(director, ', ', actor)
FROM
  pelicula;

Evite utilizar NULL. Cree de nuevo la tabla de películas:

USE videoteca;

DROP TABLE IF EXISTS pelicula;
CREATE TABLE pelicula(
  titulo VARCHAR(64) NOT NULL,
  director VARCHAR(128) NOT NULL,
  actor VARCHAR(128) NOT NULL
);

Si lo desea puede indicar valores predeterminados:

USE videoteca;

DROP TABLE IF EXISTS pelicula;
CREATE TABLE pelicula(
  titulo VARCHAR(64) NOT NULL,
  director VARCHAR(128) NOT NULL DEFAULT '',
  actor VARCHAR(128) NOT NULL DEFAULT ''
);

También puede modificar la tabla, sin necesidad de borrarla y luego volver a crearla:

USE videoteca;

DELETE FROM
  pelicula
WHERE
  titulo = 'Naves misteriosas';

ALTER TABLE pelicula
  MODIFY titulo VARCHAR(64) NOT NULL,
  MODIFY director VARCHAR(128) NOT NULL DEFAULT '',
  MODIFY actor VARCHAR(128) NOT NULL DEFAULT '';

Claves primarias[]

Inserción de una nueva película:

USE videoteca;

INSERT INTO
  pelicula
VALUES(
  'Alien',
  'James Cameron',
  'Sigourney Weaver'
);

Lista de películas, ordenadas por título:

USE videoteca;

SELECT
  *
FROM
  pelicula
ORDER BY
  titulo;

Creación de una clave primaria:

USE videoteca;

CREATE TABLE pelicula(
  titulo VARCHAR(64) NOT NULL,
  director VARCHAR(128) NOT NULL DEFAULT '',
  actor VARCHAR(128)NOT NULL DEFAULT '',
  PRIMARY KEY(titulo)
);

O modificación de la tabla existente:

USE videoteca;

ALTER TABLE
  pelicula
ADD PRIMARY KEY(titulo);

Antes, modifique el título de la nueva película:

USE videoteca;

UPDATE
  pelicula
SET
  titulo = 'Aliens'
WHERE
  director = 'James Cameron';

Columnas de incremento automático[]

Creación de una tabla con una columna de incremento automático:

USE videoteca;

CREATE TABLE pelicula(
  id INT NOT NULL AUTO_INCREMENT,
  titulo VARCHAR(64) NOT NULL,
  director VARCHAR(128) NOT NULL DEFAULT '',
  actor VARCHAR(128) NOT NULL DEFAULT '',
  PRIMARY KEY(id)
);

O modificación de la tabla existente:

USE videoteca;

ALTER TABLE pelicula
  DROP PRIMARY KEY,
  ADD id INT NOT NULL AUTO_INCREMENT FIRST,
  ADD PRIMARY KEY(id);

El modelo relacional[]

Creación de la tabla de préstamos:

USE videoteca;

DROP TABLE IF EXISTS prestamo;
CREATE TABLE prestamo (
  id INT NOT NULL AUTO_INCREMENT,
  idpelicula INT NOT NULL,
  persona VARCHAR(128) NOT NULL,
  fecha DATE NOT NULL,
  PRIMARY KEY(id),
  FOREIGN KEY(idpelicula)
    REFERENCES pelicula(id)
);

Realizar un préstamo:

USE videoteca;

INSERT INTO
  prestamo(
    idpelicula,
    persona,
    fecha
  )
VALUES(
  4,
  'Kake',
  CURRENT_DATE()
);

Préstamo imposible:

USE videoteca;

INSERT INTO
  prestamo(
  idpelicula,
  persona,
  fecha
)
  VALUES(
  123,
  'Germán',
  CURRENT_DATE()
);

Cambiar el tipo de la tabla de peliculas:

USE videoteca;

ALTER TABLE pelicula ENGINE = InnoDB;

Volver a crear la tabla de préstamos:

USE videoteca;
 
DROP TABLE IF EXISTS prestamo;
CREATE TABLE prestamo (
  id INT NOT NULL AUTO_INCREMENT,
  idpelicula INT NOT NULL,
  persona VARCHAR(128) NOT NULL,
  fecha DATE NOT NULL,
  PRIMARY KEY(id),
  FOREIGN KEY(idpelicula)
    REFERENCES pelicula(id)
) ENGINE = InnoDB;
Advertisement