Cours 2 : 10 septembre (révisions MySQL)

Voir le sujet précédent Voir le sujet suivant Aller en bas

Cours 2 : 10 septembre (révisions MySQL)

Message par Fab le Mer 10 Sep - 8:23

/* cours 2 : 10 septembre 2014*/

mysql -u root

CREATE DATABASE Sales;

USE Sales;

CREATE TABLE IF NOT EXISTS Salespeople(
Snum INT (4) NOT NULL AUTO_INCREMENT,
Sname VARCHAR (30) NOT NULL,
City VARCHAR (30) NOT NULL,
Comm INT (2) NOT NULL,
PRIMARY KEY (Snum)
)ENGINE=INNODB;

CREATE TABLE IF NOT EXISTS Customers(
Cnum INT (4) NOT NULL AUTO_INCREMENT,
Cname VARCHAR (30) NOT NULL,
City VARCHAR (30) NOT NULL,
Rating INT(3),
Snum INT (4) NOT NULL,
PRIMARY KEY (Cnum),
FOREIGN KEY (Snum) REFERENCES Salespeople(Snum)
)ENGINE=INNODB;

CREATE TABLE IF NOT EXISTS Orders(
Onum INT (4) NOT NULL AUTO_INCREMENT,
Amt DOUBLE NOT NULL,
Odate DATE,
Cnum INT (4),
Snum INT (4),
PRIMARY KEY (Onum),
FOREIGN KEY (Cnum) REFERENCES Customers(Cnum),
FOREIGN KEY (Snum) REFERENCES Salespeople(Snum)
)ENGINE=INNODB;

/*Questions :

1 : Liste de des vendeurs qui ont déjà vendu à des clients qui ne lui sont pas attitrés?*/
SELECT DISTINCT Sname FROM Salespeople WHERE Snum IN (
SELECT Orders.Snum FROM Orders INNER JOIN Customers ON Customers.Cnum = Orders.Cnum WHERE Customers.Snum != Orders.Snum)
ORDER BY Sname DESC;

/*2: Liste des clients qui n'ont pas de rating?*/
SELECT DISTINCT Cname FROM Customers WHERE Rating IS NULL;
SELECT * FROM Customers WHERE Rating IS NULL;

/*3: Liste des vendeurs dont le nom va de C à F compris.*/
SELECT DISTINCT Sname FROM Salespeople WHERE Sname LIKE 'C%' OR Sname LIKE 'D%' OR Sname LIKE 'E%' OR Sname LIKE 'F%' ORDER BY Sname ASC;
SELECT DISTINCT Sname FROM Salespeople WHERE Sname REGEXP '^C' OR Sname REGEXP '^D' OR Sname REGEXP '^E' OR Sname REGEXP '^F' ORDER BY Sname ASC;
SELECT DISTINCT Sname FROM Salespeople WHERE Sname REGEXP '^[c-fC-F]';
SELECT sname FROM Salespeople WHERE Sname BETWEEN 'C' AND 'G';
SELECT Sname FROM Salespeople WHERE Sname > 'C' AND  Sname < 'G';

/*4: Liste des ventes entre le 1er et le 30 janvier.*/
SELECT DISTINCT Onum FROM Orders WHERE Odate BETWEEN '2014-01-01' AND '2014-01-30';
SELECT * FROM orders WHERE Odate BETWEEN '2014-01-01' AND '2014-01-30';

/*5: La somme des ventes par jour et par vendeur pour autant que cette somme soit supérieure à 3000€*/

SELECT Odate, Snum, SUM(Amt) FROM Orders HAVING SUM(Amt) > 3000 GROUP BY Odate, Snum;
SELECT Odate, Snum, SUM(Amt) AS Somme FROM Orders GROUP BY Odate, Snum HAVING Somme > 3000;

/*6: Nom du vendeur, nom du client, montant de la vente et la date de la vente*/
SELECT Sname AS Vendeur, Cname AS Client, Amt AS Montant, Odate AS DateVente FROM Orders
LEFT JOIN Salespeople ON Salespeople.Snum = Orders.Snum
LEFT JOIN Customers ON Customers.Cnum=Orders.Cnum;

SELECT Sname, Cname, Amt, Odate FROM Customers, Salespeople, Orders
WHERE  Customers.Cnum=Orders.Cnum AND Salespeople.Snum=Orders.Snum;

/* Table EMP

ID Name Mail IDResponsable
1 Tintin NULL
2 Hadock 1
3 Milou 1
4 Castafiore 2

Je veux le nom de chaque employé et de son chef*/

SELECT TChef.name, TEmpl.name FROM EMP AS TChef, EMP AS TEmpl
WHERE TEmpl.IDResponsable=TChef.ID;

SELECT e1.name AS Employe, e2.Name AS Chef FROM EMP AS E1
INNER JOIN EMP AS e2 ON e1.IDResponsable=e2.ID;

/*7: Dans la table client, je veux les noms de ceux qui habitent dans la même ville*/

SELECT TVille.City, TClient.Cname FROM Customers AS TVille, Customers AS TClient
Where TVille.City = TClient.City AND TVille.Cnum < TClient.Cnum;

SELECT TVille.City, TClient.Cname FROM Customers AS TVille, Customers AS TClient
Where TVille.City = TClient.City AND TVille.Cnum > TClient.Cnum;

/*8: Le noms des clients avec leur ville suivi des noms des vendeurs avec leur ville*/
SELECT Cname AS Nom, City FROM Customers
UNION SELECT  Sname AS Nom, City FROM Salespeople;

/* UNION supprime automatiquement les doublons
Pour ne pas supprimer : UNION ALL*/

Fab

Messages : 350
Date d'inscription : 18/10/2013
Age : 32
Localisation : Hannut

Voir le profil de l'utilisateur http://ieps.forumgratuit.be/

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par NicolasD le Mer 10 Sep - 10:25

Merci beaucoup patron!

NicolasD

Messages : 91
Date d'inscription : 23/10/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par Fab le Mer 10 Sep - 21:04

C'est surtout pour ceux qui ne viennent (déjà) plus aux cours.

Note, vu le prix du minerval chez nous comparé à celui d'autres écoles, je peux comprendre la priorité... What a Face

Fab

Messages : 350
Date d'inscription : 18/10/2013
Age : 32
Localisation : Hannut

Voir le profil de l'utilisateur http://ieps.forumgratuit.be/

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par NicolasD le Jeu 11 Sep - 0:04

Very Happy Tu es fort médisant Fab Very Happy

NicolasD

Messages : 91
Date d'inscription : 23/10/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par Fab le Jeu 11 Sep - 0:16

Je ne médis pas, j'envisage une hypothèse afin d'expliquer l'apparente nonchalance voire le manque d’intérêt des absentéistes pour le cours du mercredi.

Fab

Messages : 350
Date d'inscription : 18/10/2013
Age : 32
Localisation : Hannut

Voir le profil de l'utilisateur http://ieps.forumgratuit.be/

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par NicolasD le Jeu 11 Sep - 1:52

Oh que c'est joliment dit!

NicolasD

Messages : 91
Date d'inscription : 23/10/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par Abdoula le Jeu 11 Sep - 3:32

J'ai failli me tordre le cou au premier mise à part sa ... RAS

Abdoula

Messages : 9
Date d'inscription : 09/09/2014

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par PhilippeL le Jeu 11 Sep - 5:59

merci fab, je confirme que Nico est nonchalant

PhilippeL

Messages : 119
Date d'inscription : 18/10/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par NicolasD le Jeu 11 Sep - 6:38

Monsieur Philippe L.,

Pourrais-je vous signaler, en tout bien tout honneur, que c'est votre propre personne qui était absente lors de ce dernier cours!

Cette nonchalance ne m'implique dès lors pas le moins du monde, tout du moins dans l'hypothèse de ma présence continue lors des prochains cours.

Je vous prie donc de cesser toute affabulation à mon égard.

Bien à vous,

Nicolas D.

NicolasD

Messages : 91
Date d'inscription : 23/10/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par NicolasD le Jeu 11 Sep - 21:16

Je viens de trouver la preuve sur internet que Phil est nonchalant !!!



Même coiffure, toussa toussa ;-)

NicolasD

Messages : 91
Date d'inscription : 23/10/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par PhilippeL le Ven 12 Sep - 1:27

hooo mais une présence physique ne signifie pas une présence active au cours mon cher Razz

PhilippeL

Messages : 119
Date d'inscription : 18/10/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par NicolasD le Ven 12 Sep - 1:43

Monsieur Philippe L.,

Sachez que ma participation aux cours est actuellement très bonne. Pourront en témoigner les quelques témoins qui ont bien voulu aller aux cours cette semaine.

Bien à vous,

Nicolas D.

NicolasD

Messages : 91
Date d'inscription : 23/10/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Cours 2 : 10 septembre (révisions MySQL)

Message par Contenu sponsorisé Aujourd'hui à 3:58


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum