Modificacions de la base de dades VideoGames: claus foranes, restriccions i taules
Modificacions de la base de dades VideoGames
Aquesta guia recull les modificacions SQL aplicades a la base de dades VideoGames, incloent-hi claus foranes, restriccions i canvis d'estructura.
Afegir una clau forana a la taula Videojocs
Afegeix una clau forana a la taula Videojocs que enllaci la nova columna id_editor. Aquesta clau forana ha de tenir la política ON DELETE SET NULL.
alter table videojocs add column id_editor int, add constraint fk_editor foreign key (id_editor) references Editors(id_editor) on delete set null;
Modificar el valor predeterminat del preu
Modifica el valor predeterminat de la columna preu de la taula Videojocs perquè sigui 49.99 en lloc de 59.99.
alter table videojocs modify preu decimal(10,2) check (preu >= 0) default 49.99;
Eliminar la taula Generes
Elimina completament la taula Generes de la base de dades.
drop table generes; /* No es pot eliminar una taula que tingui claus foranes dependents */
Canviar el nom de la taula Desenvolupadors
Canvia el nom de la taula Desenvolupadors a Estudis.
rename table desenvolupadors to Estudis;
Afegir una restricció UNIQUE al títol
Afegeix una restricció UNIQUE a la columna títol de la taula Videojocs per assegurar que no hi hagi videojocs duplicats amb el mateix nom.
alter table videojocs add constraint unique_titol unique (títol);
Eliminar la columna país de Desenvolupadors
Elimina la columna país de la taula Desenvolupadors.
alter table desenvolupadors drop column país;
Claus foranes amb eliminació en cascada
constraint fk_genere foreign key (id_genere) references generes(id_generes) on delete cascade, constraint fk_desenvolupador foreign key (id_desenvolupador) references desenvolupadors(id_desenvolupador) on delete cascade,
preu decimal(10,2) check (preu >= 0) default 59.99,
Creació de la base de dades VideoGames
-- VideoGames Database create database VideoGames; use VideoGames; -- Creació de la taula generes create table generes ( id_generes int primary key, nom_genere varchar(50) not null unique ); -- Creació de la taula plataformes create table plataformes ( id_plataforma int primary key, nom_plataforma varchar(100) unique, fabricant varchar(100) not null, any_llançament year check(any_llançament > 1970) );
Creació de la taula Desenvolupadors
-- Creació de la taula desenvolupadors create table desenvolupadors ( id_desenvolupador int primary key, nom varchar(50) not null unique, país varchar(50) default 'Desconegut', any_fundació year check(any_fundació > 1900) );
Creació de la taula Videojocs
-- Creació de la taula videojocs create table videojocs ( id_videojoc int primary key, títol varchar(100) not null, id_genere int, id_desenvolupador int, id_plataforma int, data_llançament date not null, preu decimal(10,2) check (preu >= 0) default 59.99 );
Modificacions addicionals
Afegir la columna popularitat a Videojocs
Afegeix una columna popularitat a la taula Videojocs per emmagatzemar una puntuació entre 1 i 100.
alter table videojocs add column popularitat int not null check (popularitat >= 1 and popularitat <= 100);
Modificar la columna fabricant de Plataformes
Modifica la columna fabricant de la taula Plataformes perquè accepti fins a 150 caràcters en lloc de 100.
alter table plataformes modify fabricant varchar(150) not null;
Canviar el nom de la columna nom_genere
Canvia el nom de la columna nom_genere de la taula Generes a tipus_genere.
alter table generes change nom_genere tipus_genere varchar(50) not null unique;
Restricció CHECK a any_fundació
Afegeix una restricció CHECK a la columna any_fundació de la taula Desenvolupadors perquè només accepti valors superiors a 1950.
alter table desenvolupadors modify any_fundació year check(any_fundació > 1950);
Crear la taula Editors
Crea una taula Editors amb les columnes id_editor (INT, PRIMARY KEY) i nom_editor (VARCHAR(100)).
create table Editors ( id_editor int primary key, nom_editor varchar(100) );