Problème sur la base de donnée

Fermé
rose - 18 nov. 2014 à 15:48
 Venusia95 - 20 nov. 2014 à 14:37
slt

voila ma base de donné
/***** CREATION DE LA BASE DE DONNEES ************/


create database TRANSPORT_URBAIN;


/*** utilisation de la base de données TRANPORT_URBAIN ***/


use TRANSPORT_URBAIN;


/*** creation des tables ***/



/*********** LA TABLE LIGNE *************/


create table LIGNE(
code_ligne int not null primary key,
départ varchar(24) not null,
arrivée varchar(24) not null,
distance real not null)


/*********** LA TABLE BUS *************/

create table BUS(
immat varchar(12) not null primary key,
nb_pl_ass int not null,
nb_pl_deb int,
code_ligne int not null,
foreign key(code_ligne)references LIGNE)



/*********** LA TABLE ARRET *************/

create table ARRET(
nom_arret varchar(25)primary key)



/*********** LA TABLE CONDUCTEUR *************/

create table CONDUCTEUR(
code_conducteur int not null primary key,
nom_c varchar(24) not null,
prénom_c varchar(24) not null,
adresse_c varchar(12) not null,
expérience real not null)




/*************** LA TABLE CONDUIT ***************/


create table CONDUIT(
code_conducteur int not null,
immat varchar(12) not null,
primary key(code_conducteur, immat),
foreign key(code_conducteur)references CONDUCTEUR,
foreign key(immat)references BUS)








/*************** LA TABLE PASSER_PAR ***************/


create table PASSER_PAR(
code_ligne int not null,
nom_arret varchar (25)not null,
primary key(code_ligne, nom_arret),
foreign key(code_ligne)references LIGNE,
foreign key(nom_arret)references ARRET)


et j'ai deux questions et j'espère bien que vous me répondez
1- Créer par une requête SQL une nouvelle colonne dans la table BUS appelée catégorie_bus dans laquelle on lit l'une des valeurs suivantes : 'mini_bus' si la capacité est inférieure à 30, 'capacité_moyenne' si la capacité se situe entre 30 et 60, 'grande_capacité' si la capacité est supérieure à 60.
2- Supprimer de cette base de données tous les bus datant de moins de 2000

Merci.

1 réponse

Salut

Pour ta première partie (je ne sais pas si c'est la solution la plus "propre" :
ALTER TABLE TRANSPORT_URBAIN ADD Categorie_bus AS 
CASE
 WHEN nb_pl_ass < 30 THEN 'Mini Bus' 
 WHEN nb_pl_ass > 0 THEN 'Grand Capacité'
 ELSE 'Capacité Moyenne'
END

Après, si dans capacité, tu prend en compte le nombre de place debout, tu fait nb_pl_ass + nb_pl_deb

Pour ta deuxième question, ce n'est pas très clair :
" tous les bus datant de moins de 2000 "

2000 quoi ? Les bus qui existe depuis avant l'an 2000?
Si c'est ca, je n'ai pas vu dans ta base de données une donnée faisant référence à l'année (mais je peux avoir mal lu)

Bon courage !

PS : Pour avoir plus de réponse, je te conseil de mettre des titres plus précis car ici ce n'est pas ta base de donnée qui pose problème. Par exemple, j'aurais mis "Insérer colonne avec données selon condition"
1