13 - Campo entero serial (autoincremento)


Primer problema:
Una farmacia guarda información referente a sus medicamentos en una tabla 
llamada "medicamentos".

1- Cree la tabla con la siguiente estructura:
 create table medicamentos(
  codigo serial,
  nombre varchar(20),
  laboratorio varchar(20),
  precio float,
  cantidad integer,
  primary key (codigo)
);

2- Visualice la estructura de la tabla "medicamentos"

3- Ingrese los siguientes registros (insert into):
 insert into medicamentos (nombre, laboratorio,precio,cantidad)
   values('Sertal','Roche',5.2,100);
 insert into medicamentos (nombre, laboratorio,precio,cantidad)
  values('Buscapina','Roche',4.10,200);
 insert into medicamentos (nombre, laboratorio,precio,cantidad)
  values('Amoxidal 500','Bayer',15.60,100);

4- Verifique que el campo "código" generó los valores de modo automático.
Ver solución

 drop table if exists medicamentos;

 create table medicamentos(
  codigo serial,
  nombre varchar(20),
  laboratorio varchar(20),
  precio float,
  cantidad integer,
  primary key (codigo)
);

 select table_name,column_name,udt_name,character_maximum_length,is_nullable 
  from information_schema.columns 
  where table_name = 'medicamentos';

 insert into medicamentos (nombre, laboratorio,precio,cantidad)
   values('Sertal','Roche',5.2,100);
 insert into medicamentos (nombre, laboratorio,precio,cantidad)
  values('Buscapina','Roche',4.10,200);
 insert into medicamentos (nombre, laboratorio,precio,cantidad)
  values('Amoxidal 500','Bayer',15.60,100);

 select * from medicamentos;

 

Segundo problema:
Un videoclub almacena información sobre sus películas en una tabla llamada "peliculas".

1- Créela con la siguiente estructura:
 -codigo (serial),
 -titulo (cadena de 40),
 -actor (cadena de 20),
 -duracion (entero),
 -clave primaria: codigo.

2- Visualice la estructura de la tabla "peliculas".

3- Ingrese los siguientes registros:
 insert into peliculas (titulo,actor,duracion)
  values('Mision imposible','Tom Cruise',120);
 insert into peliculas (titulo,actor,duracion)
  values('Harry Potter y la piedra filosofal','xxx',180);
 insert into peliculas (titulo,actor,duracion)
  values('Harry Potter y la camara secreta','xxx',190);
 insert into peliculas (titulo,actor,duracion)
  values('Mision imposible 2','Tom Cruise',120);
 insert into peliculas (titulo,actor,duracion)
  values('La vida es bella','zzz',220);

4- Seleccione todos los registros y verifique la carga automática de los códigos.

5- Actualice las películas cuyo código es 3 colocando en "actor" 'Daniel R.'

6- Elimine la película 'La vida es bella'.

7- Elimine todas las películas cuya duración sea igual a 120 minutos.

8- Visualice los registros.

9- Ingrese el siguiente registro, sin valor para la clave primaria:
 insert into peliculas (titulo,actor,duracion)
  values('Mujer bonita','Richard Gere',120);
Note que sigue la secuencia tomando el último valor generado, aunque ya no esté.

Ver solución
 drop table if exists peliculas;

create table peliculas (
  codigo serial,
  titulo varchar(40),
  actor varchar(20),
  duracion int,
  primary key (codigo)
 );

 select table_name,column_name,udt_name,character_maximum_length,is_nullable 
  from information_schema.columns 
  where table_name = 'peliculas';

 insert into peliculas (titulo,actor,duracion)
  values('Mision imposible','Tom Cruise',120);
 insert into peliculas (titulo,actor,duracion)
  values('Harry Potter y la piedra filosofal','xxx',180);
 insert into peliculas (titulo,actor,duracion)
  values('Harry Potter y la camara secreta','xxx',190);
 insert into peliculas (titulo,actor,duracion)
  values('Mision imposible 2','Tom Cruise',120);
 insert into peliculas (titulo,actor,duracion)
  values('La vida es bella','zzz',220);

 select * from peliculas;

 update peliculas set actor='Daniel R.' where codigo=3;

 delete from peliculas where titulo='La vida es bella';

 delete from peliculas where duracion=120;

 select * from peliculas;

 insert into peliculas (titulo,actor,duracion)
  values('Mujer bonita','Richard Gere',120);

 select * from peliculas;

Retornar