Hemos realizado la hoja de ejercicios de la unidad 3, en la que creamos y modificamos tablas en MySQL con distintos tipos de restricciones.
Ejercicios. Creación de tablas con restricciones
Las tablas COMPRADORES, ARTICULOS, FACTURAS y LINEAS_FACTURAS están relacionadas entre sí.
1. Crear la tabla COMPRADORES con clave primaria y restricción UNIQUE.
create table compradores (
CIF_comprador varchar(11),
Nombre_Social varchar(30),
Domicilio_Social varchar(30),
Localidad varchar(30),
C_Postal varchar(5),
Telefono varchar(9) NOT NULL,
CONSTRAINT PK_COMPRADORES_CIF PRIMARY KEY (CIF_comprador),
CONSTRAINT UQ_COMPRADORES_NOMBRE_SOCIAL UNIQUE (Nombre_Social)
);
2. Crear la tabla ARTICULOS con clave primaria, restricción CHECK y valor por defecto.
create table articulos (
Referencia_Articulo varchar(12),
Descripcion_articulo varchar(30),
Precio_Unidad numeric (6,2),
IVA numeric (2) check (IVA BETWEEN 5 AND 25),
Existencias_Actuales numeric(5) default 0,
CONSTRAINT PK_ARTICULOS PRIMARY KEY (Referencia_Articulo)
);
3. Crear la tabla FACTURAS con clave primaria y valor por defecto en la fecha.
create table facturas (
Factura_no numeric(6),
Fecha_factura date default '2005-01-01',
CIF_Cliente varchar(11),
CONSTRAINT PK_FACTURAS PRIMARY KEY (Factura_no)
);
4. Crear la tabla LINEAS_FACTURAS con clave primaria compuesta y claves foráneas (con borrado en cascada).
create table lineas_facturas (
factura_no numeric(6),
Referencia_articulo varchar(12),
Unidades numeric(3),
CONSTRAINT PK_LINEAS_FACTURA primary key (Referencia_articulo,factura_no),
CONSTRAINT FK_LINEAS_FACTURAS foreign key (factura_no) REFERENCES facturas(factura_no)
ON DELETE CASCADE,
CONSTRAINT FK_LINEAS_ARTICULOS foreign key (Referencia_articulo) REFERENCES articulos(referencia_articulo)
);

Ejercicios. Modificación de tablas con ALTER TABLE
5. Añadir la columna cod_oficina a la tabla FACTURAS.
alter table facturas add (cod_oficina numeric(4));
6. Añadir una clave foránea de FACTURAS hacia CLIENTES.
alter table facturas add CONSTRAINT FK_FACTURA_COMPRADORES FOREIGN KEY (CIF_Cliente) REFERENCES clientes(CIF_Cliente);
7. Renombrar la columna c_postal en COMPRADORES.
ALTER TABLE compradores change c_postal texto_codigo_postal varchar(5);
8. Añadir una restricción CHECK sobre cod_oficina.
alter table facturas add constraint cod_oficina check (cod_oficina between 1 and 1000);
9. Añadir clave primaria a FACTURAS_1.
alter table facturas_1 add constraint pk_factura_no_1 primary key (factura_no);
10. Añadir clave foránea a LINEAS_FACTURA_1.
alter table lineas_factura_1 add constraint fk_lineas_facturas_1 foreign key(factura_no) references facturas1(factura_no);
11. Añadir restricción UNIQUE a ARTICULOS_1.
alter table articulos_1 add constraint uq_articulos_descripcion_1 unique (descripcion_articulo);
12. Modificar el tipo de dato de Teléfono en COMPRADORES_1.
alter table compradores_1 modify Teléfono int;

¡Salud y coding!