Advertisement
Guest User

SQL Polola Hermosa

a guest
Jun 16th, 2019
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.90 KB | None | 0 0
  1. /*
  2. https://www.lucidchart.com/invitations/accept/f4b6437b-fd3d-4402-b331-80e0d0ee5a35
  3. */
  4.  
  5. -- DDL ---
  6.  
  7. CREATE DATABASE tienda;
  8.  
  9. USE tienda;
  10.  
  11. -- Tabla Productos
  12. CREATE TABLE productos (
  13.     id_producto INT PRIMARY KEY AUTO_INCREMENT,
  14.     nombre VARCHAR(50),
  15.     marca_id INT,
  16.     precio INT,
  17.     familia_id INT
  18. );
  19.  
  20. -- Tabla Marcas --
  21. CREATE TABLE marcas (
  22.     id_marca INT PRIMARY KEY AUTO_INCREMENT,
  23.     nombre VARCHAR(50),
  24.     pais VARCHAR(50)
  25. );
  26.  
  27. -- Tabla Familias --
  28. CREATE TABLE familias (
  29.     id_familia INT PRIMARY KEY AUTO_INCREMENT,
  30.     nombre VARCHAR(50),
  31.     dcto FLOAT
  32. );
  33.  
  34. -- Agregar Clave Foránea --
  35. ALTER TABLE productos
  36.     ADD CONSTRAINT fk_marca FOREIGN KEY (marca_id) REFERENCES marcas(id_marca);
  37.  
  38. ALTER TABLE productos
  39.     ADD CONSTRAINT fk_familia FOREIGN KEY (familia_id) REFERENCES familias(id_familia);
  40.  
  41. ALTER TABLE familias MODIFY dcto FLOAT DEFAULT (0.0);
  42.  
  43. -- DML --
  44. /*
  45. C Create - INSERT
  46. R Read - SELECT
  47. U Update - UPDATE
  48. D Delete - DELETE
  49. */
  50.  
  51. INSERT INTO marcas(nombre, pais)
  52. VALUES
  53.     ("Xiaomi", "China"),
  54.     ("Huawei", "China"),
  55.     ("Apple", "USA"),
  56.     ("Razer", "USA"),
  57.     ("Samsung", "Corea"),
  58.     ("Sony", "Japón"),
  59.     ("Fujifilm", "Japón"),
  60.     ("Daewoo", "Japón"),
  61.     ("Roccat", "Alemania"),
  62.     ("Nintendo", "Japón"),
  63.     ("Microsoft", "USA"),
  64.     ("Google", "USA");
  65.  
  66. INSERT INTO familias(nombre)
  67. VALUES
  68.     ("Smartphone"),
  69.     ("Computación"),
  70.     ("Videojuegos"),
  71.     ("Cámaras"),
  72.     ("Sonido"),
  73.     ("Periféricos");
  74.  
  75. INSERT INTO familias(nombre, dcto)
  76. VALUES
  77.     ("Televisores", 0.4);
  78.    
  79. UPDATE familias
  80. SET dcto = 0.05
  81. WHERE id_familia = 3;
  82.  
  83. INSERT INTO productos(nombre, marca_id, precio, familia_id)
  84. VALUES
  85.     ("Redmi Note 7", 1, 199990, 1),
  86.     ("Mate 30 pro", 2, 599990, 1),
  87.     ("iPhone 8", 3, 399990, 1),
  88.     ("Galaxy S9", 5, 699990, 1),
  89.     ("MacBook Pro 13.3", 3, 699990, 2),
  90.     ("Surface Pro 2", 11, 999990, 2),
  91.     ("Switch", 10, 229990, 3),
  92.     ("XBox One", 11, 429990, 3),
  93.     ("Snapshot 360", 7, 129990, 4),
  94.     ("CyberShot 2600", 6, 199990, 4),
  95.     ("Kraken 2", 4, 88990, 5),
  96.     ("ClearView 46", 5, 159990, 7);
  97.    
  98. DELETE FROM productos
  99. WHERE id_producto = 11;
  100.    
  101. SELECT * FROM productos
  102. WHERE familia_id = 1;
  103.  
  104. SELECT * FROM productos
  105. ORDER BY precio ASC;
  106.  
  107. SELECT * FROM productos
  108. ORDER BY nombre ASC;
  109.  
  110. SELECT COUNT(*) FROM productos;
  111.  
  112. SELECT AVG(precio) FROM productos;
  113.  
  114. SELECT SUM(precio) FROM productos;
  115.  
  116. SELECT AVG(precio) AS 'Promedio Cámaras' FROM productos
  117. WHERE familia_id = 4;
  118.  
  119. SELECT p.nombre, m.nombre, m.pais FROM productos p
  120. LEFT JOIN marcas m
  121. ON p.marca_id = m.id_marca;
  122.  
  123. SELECT p.nombre, f.dcto FROM productos p
  124. LEFT JOIN familias f
  125. ON p.familia_id = f.id_familia
  126. WHERE f.dcto != 0;
  127.  
  128. SELECT
  129.     p.nombre AS 'Producto',
  130.     m.nombre AS 'Marca',
  131.     m.pais AS 'Origen',
  132.     f.nombre AS 'Familia'
  133. FROM productos p
  134. LEFT JOIN marcas m
  135. ON p.marca_id = m.id_marca
  136. LEFT JOIN familias f
  137. ON p.familia_id = f.id_familia;
  138.  
  139. SELECT * FROM marcas;
  140. SELECT * FROM familias;
  141. SELECT * FROM productos;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement