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 MySQL, el sistema lanza un warning pero ejecuta la sentencia realizando una conversión de tipos de varchar a int, pero como 'BB' no sabe 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 2 filas.
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.
create table miarea ( id int(11), tipo varchar(50), color varchar(50), orientacion varchar(50), primary key (id) ); insert into miarea select * from hospital.area;Solución alternativa:create table miarea select * from hospital.area; alter table miarea add primary key (id);
delete from miarea where id < 4; delete from miarea where orientacion='Suroeste' or orientacion='Sureste'; delete from miarea; drop table miarea; -- la última consulta no muestra nada salvo un mensaje de error.