fork download
  1. -- ==========================================
  2. -- SCRIPT DE CREATION DE LA BDD DU TP7 BDD (Sub-Queries) -EMSI
  3. -- Préparé par Pr. BOUKHDIR
  4. -- 11 May 2026
  5. -- ==========================================
  6.  
  7. DROP DATABASE IF EXISTS gestion_commerciale;
  8. CREATE DATABASE gestion_commerciale;
  9. USE gestion_commerciale;
  10.  
  11. -- ==========================================
  12. -- SUPPRESSION DES TABLES
  13. -- ==========================================
  14.  
  15. DROP TABLE IF EXISTS Approvisionnement;
  16. DROP TABLE IF EXISTS Fournisseur;
  17. DROP TABLE IF EXISTS Ligne_Commande;
  18. DROP TABLE IF EXISTS Commande;
  19. DROP TABLE IF EXISTS Client;
  20. DROP TABLE IF EXISTS Produit;
  21. DROP TABLE IF EXISTS Categorie;
  22.  
  23. -- ==========================================
  24. -- CREATION DES TABLES
  25. -- ==========================================
  26.  
  27. CREATE TABLE Categorie (
  28. id_cat INT PRIMARY KEY,
  29. nom_cat VARCHAR(50) UNIQUE NOT NULL,
  30. description TEXT
  31. );
  32.  
  33. CREATE TABLE Produit (
  34. id_prod INT PRIMARY KEY,
  35. nom_prod VARCHAR(50) NOT NULL,
  36. prix DECIMAL(10,2) CHECK (prix > 0),
  37. stock INT CHECK (stock >= 0),
  38. id_cat INT,
  39. FOREIGN KEY (id_cat) REFERENCES Categorie(id_cat)
  40. );
  41.  
  42. CREATE TABLE Client (
  43. id_client INT PRIMARY KEY,
  44. nom VARCHAR(50) NOT NULL,
  45. prenom VARCHAR(50) NOT NULL,
  46. email VARCHAR(100) UNIQUE NOT NULL,
  47. ville VARCHAR(50)
  48. );
  49.  
  50. CREATE TABLE Commande (
  51. id_cmd INT PRIMARY KEY,
  52. date_cmd DATE NOT NULL,
  53. statut VARCHAR(20) DEFAULT 'En cours',
  54. id_client INT,
  55. FOREIGN KEY (id_client) REFERENCES Client(id_client)
  56. );
  57.  
  58. CREATE TABLE Ligne_Commande (
  59. id_cmd INT,
  60. id_prod INT,
  61. quantite INT CHECK (quantite > 0),
  62. PRIMARY KEY (id_cmd, id_prod),
  63. FOREIGN KEY (id_cmd) REFERENCES Commande(id_cmd),
  64. FOREIGN KEY (id_prod) REFERENCES Produit(id_prod)
  65. );
  66.  
  67. CREATE TABLE Fournisseur (
  68. id_fourn INT PRIMARY KEY,
  69. nom_fourn VARCHAR(50) NOT NULL,
  70. ville VARCHAR(50),
  71. telephone VARCHAR(20) UNIQUE
  72. );
  73.  
  74. CREATE TABLE Approvisionnement (
  75. id_appro INT PRIMARY KEY,
  76. date_appro DATE NOT NULL,
  77. qte INT CHECK (qte > 0),
  78. id_prod INT,
  79. id_fourn INT,
  80. FOREIGN KEY (id_prod) REFERENCES Produit(id_prod),
  81. FOREIGN KEY (id_fourn) REFERENCES Fournisseur(id_fourn)
  82. );
  83.  
  84. -- ==========================================
  85. -- INSERTION DES CATEGORIES
  86. -- ==========================================
  87.  
  88. INSERT INTO Categorie VALUES
  89. (1, 'Informatique', 'Ordinateurs et peripheriques'),
  90. (2, 'Bureautique', 'Materiel de bureau'),
  91. (3, 'Mobilier', 'Mobilier informatique'),
  92. (4, 'Reseau', 'Equipements reseau'),
  93. (5, 'Composants', 'Pieces hardware'),
  94. (6, 'Accessoires', 'Accessoires divers'),
  95. (7, 'Audio', 'Materiel audio'),
  96. (8, 'Video', 'Materiel video'),
  97. (9, 'Logiciels', 'Applications et licences'),
  98. (10, 'Vide', 'Categorie vide');
  99.  
  100. -- ==========================================
  101. -- INSERTION DES PRODUITS
  102. -- ==========================================
  103.  
  104. INSERT INTO Produit VALUES
  105. (1, 'Clavier Mecanique', 120.00, 50, 1),
  106. (2, 'Souris sans fil', 45.00, 100, 1),
  107. (3, 'Ecran LED', 300.00, 0, 8),
  108. (4, 'Cable HDMI', 15.00, 200, 6),
  109. (5, 'Chaise Ergonomique', 450.00, 20, 3),
  110. (6, 'Bureau Gamer', 600.00, 15, 3),
  111. (7, 'Routeur WiFi', 80.00, 30, 4),
  112. (8, 'Casque Audio', 150.00, 40, 7),
  113. (9, 'Webcam HD', 60.00, 0, 8),
  114. (10, 'Produit A', 25.00, 100, 6),
  115. (11, 'Imprimante Laser', 150.00, 15, 2),
  116. (12, 'Ramette Papier', 5.00, 500, 2),
  117. (13, 'Cle USB 64Go', 10.00, 300, 1),
  118. (14, 'Produit Jamais Commande', 50.00, 10, 1),
  119. (20, 'Produit B', 30.00, 50, 6);
  120.  
  121. -- ==========================================
  122. -- INSERTION DES CLIENTS
  123. -- ==========================================
  124.  
  125. INSERT INTO Client VALUES
  126. (1, 'El Idrissi', 'Yassine', 'yassine.elidrissi@mail.com', 'Midelt'),
  127. (2, 'Alaoui', 'Salma', 'salma.alaoui@mail.com', 'Souk Laarbaa'),
  128. (3, 'Benjelloun', 'Imane', 'imane.benjelloun@mail.com', 'Imlil'),
  129. (4, 'Tahiri', 'Hamza', 'hamza.tahiri@mail.com', 'Tabant'),
  130. (5, 'Berrada', 'Siham', 'siham.berrada@mail.com', 'Tioumliline'),
  131. (6, 'Amrani', 'Zakaria', 'zakaria.amrani@mail.com', 'Ain Taoujtat'),
  132. (7, 'Skalli', 'Nadia', 'nadia.skalli@mail.com', 'Badis'),
  133. (8, 'Lahlou', 'Karim', 'karim.lahlou@mail.com', 'Louizia'),
  134. (9, 'Tazi', 'Meriem', 'meriem.tazi@mail.com', 'Khmis Louta'),
  135. (10, 'Inactive', 'Client', 'inactive@mail.com', 'Oud Kennar');
  136.  
  137. -- ==========================================
  138. -- INSERTION DES COMMANDES
  139. -- ==========================================
  140.  
  141. INSERT INTO Commande VALUES
  142. (1, '2023-01-15', 'Livree', 3),
  143. (2, '2023-02-20', 'Livree', 1),
  144. (3, '2023-03-10', 'Livree', 2),
  145. (4, '2024-01-05', 'En cours', 3),
  146. (5, '2024-02-15', 'Livree', 4),
  147. (6, '2024-03-20', 'Expediee', 1),
  148. (7, '2024-04-10', 'En cours', 2),
  149. (8, '2024-05-01', 'Livree', 7),
  150. (9, '2024-06-15', 'En cours', 8),
  151. (10, '2024-07-20', 'En cours', 9);
  152.  
  153. -- ==========================================
  154. -- INSERTION DES LIGNES COMMANDES
  155. -- ==========================================
  156.  
  157. INSERT INTO Ligne_Commande VALUES
  158. (1, 1, 2),
  159. (2, 3, 1),
  160. (3, 5, 1),
  161. (4, 4, 3),
  162. (5, 11, 2),
  163. (6, 10, 1),
  164. (7, 20, 1),
  165. (8, 6, 1),
  166. (9, 10, 15),
  167. (10, 2, 1),
  168. (1, 10, 1),
  169. (2, 5, 1),
  170. (3, 10, 1);
  171.  
  172. -- ==========================================
  173. -- INSERTION DES FOURNISSEURS
  174. -- ==========================================
  175.  
  176. INSERT INTO Fournisseur VALUES
  177. (1, 'AtlasTech', 'Midelt', '0611111111'),
  178. (2, 'MaghrebSupply', 'Souk Laarbaa', '0622222222'),
  179. (3, 'NordicInfo', 'Imlil', '0633333333'),
  180. (4, 'SaharaDistrib', 'Tabant', '0644444444'),
  181. (5, 'HighTech Maroc', 'Tioumliline', '0655555555'),
  182. (6, 'DigitalNet', 'Ain Taoujtat', '0666666666'),
  183. (7, 'SmartPro', 'Badis', '0677777777'),
  184. (8, 'FutureTech', 'Louizia', '0688888888'),
  185. (9, 'InactiveFourn', 'Oud Kennar', '0699999999'),
  186. (10, 'CyberEquip', 'Khmis Louta', '0600000000');
  187.  
  188. -- ==========================================
  189. -- INSERTION DES APPROVISIONNEMENTS
  190. -- ==========================================
  191.  
  192. INSERT INTO Approvisionnement VALUES
  193. (1, '2023-01-10', 50, 1, 1),
  194. (2, '2023-02-15', 100, 2, 1),
  195. (3, '2023-03-20', 200, 4, 2),
  196. (4, '2023-04-25', 15, 6, 3),
  197. (5, '2024-01-10', 30, 7, 4),
  198. (6, '2024-02-15', 40, 8, 5),
  199. (7, '2024-03-20', 100, 10, 1),
  200. (8, '2024-04-25', 50, 20, 2),
  201. (9, '2024-05-10', 10, 3, 1),
  202. (10, '2024-06-15', 15, 11, 4);
  203.  
  204. COMMIT;
Success #stdin #stdout #stderr 0.01s 5292KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Error: near line 7: near "DATABASE": syntax error
Error: near line 8: near "DATABASE": syntax error
Error: near line 9: near "USE": syntax error
Error: near line 204: cannot commit - no transaction is active