English version (when available)
create table xx (col1 integer, col2 char(3), primary key (col1))
select * from xxObviamente, la tabla está vacía y muestra 0 filas.
insert into xx values (1,'AA')Ningún problema, fila insertada.
insert into xx values ('BB',2)Esta orden falla porque los valores no están en el orden adecuado. En este caso deberíamos escribir:
insert into xx (col2,col1) values ('BB',2)
NOTA: en nuestro servidor, el sistema lanza un warning, pero ejecuta la sentencia realizando una conversión de tipos de varchar a int, pero como 'BB' no sabe cómo interpretarlo, lo almacena como 0.
insert into xx values (2,'BB')Hemos cambiado el orden de los valores y coinciden con la estructura de la tabla.
select * from xxDeberías ver 3 filas, incluyendo la ejecución errónea del ejercicio anterior T06.004.
select * from xxAl volver a entrar, identificarte correctamente y seleccionar tu base de datos, la consulta devuelve otra vez las mismas 2 filas, la información se ha mantenido intacta.
drop table xxBorrar una tabla elimina todo del sistema, sus filas y la propia tabla. Si intentas ahora select * from xx obtendrás un mensaje de error.
create table yy ( col1 integer, col2 char(2), col3 varchar(10), primary key (col1, col2))Ahora la clave primaria está compuesta por 2 columnas.
insert into yy values (1,'AA','primera'); insert into yy values (2,'AA','segunda'); insert into yy values (2,'BB','tercera'); insert into yy values (1,'AA','cuarta'); insert into yy values (NULL,NULL,'quinta'); insert into yy values (NULL,'CC','sexta'); insert into yy values (3,NULL,'séptima'); insert into yy values (0,'','octava'); insert into yy values (3,'AA',NULL);* insert into yy values (1,'AA','cuarta') falla por que estamos introduciendo un duplicado de clave primaria.
* insert into yy values (NULL,NULL,'quinta') falla por que la clave primaria no admite nulos.
* insert into yy values (NULL,'CC','sexta') falla por que tampoco los admite parcialmente.
* insert into yy values (3,NULL,'séptima') falla por la misma razón.
* insert into yy values (0,'','octava') NO falla porque cadena vacía es un valor, NO es NULL.
insert into T1 values (1,10,100); -- a insert into T1 values (NULL,20,NULL); -- b falla insert into T1 values (2,20,NULL); -- c insert into T1 values (3,NULL,300); -- d insert into T2 values (2,NULL,NULL); -- e falla insert into T2 values (2,20,NULL); -- f insert into T1 values (1,20,200); -- g falla insert into T2 values (4,10,100); -- h falla insert into T2 values (2,30,230);-- i
update T1 set a=2 where a=1; -- j falla update T1 set a=5 where a=1; -- k update T2 set e=220 where d=20; -- l update T2 set a=5 where d=20; -- m update T2 set a=2,d=10,e=100 where d=20; -- n update T1 set a=6,b=60,c=600 where a=2; -- o falla update T1 set a=7,b=70,c=700 where a=3; -- p update T2 set a=7 where d=10; -- q update T2 set a=7 where d=30; -- r update T1 set a=6,b=60,c=600 where a=2; -- s
delete from T2 where d=30; -- t delete from T1 where a=7; -- u falla delete from T1 where a=5; -- v delete from T2 where d=10; -- w delete from T1 where a=7; -- x ahora sí delete from T1 where a=6; -- yEl resultado final debe ser las 2 tablas vacías de filas.