· 6 years ago · Dec 04, 2019, 09:46 AM
1DROP DATABASE IF EXISTS tienda;
2CREATE DATABASE tienda CHARACTER SET utf8mb4;
3USE tienda;
4
5CREATE TABLE fabricante (
6 codigo INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
7 nombre VARCHAR(100) NOT NULL
8);
9
10CREATE TABLE producto (
11 codigo INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
12 nombre VARCHAR(100) NOT NULL,
13 precio DOUBLE NOT NULL,
14 codigo_fabricante INT UNSIGNED NOT NULL,
15 FOREIGN KEY (codigo_fabricante) REFERENCES fabricante(codigo)
16);
17
18INSERT INTO fabricante VALUES(1, 'Asus');
19INSERT INTO fabricante VALUES(2, 'Lenovo');
20INSERT INTO fabricante VALUES(3, 'Hewlett-Packard');
21INSERT INTO fabricante VALUES(4, 'Samsung');
22INSERT INTO fabricante VALUES(5, 'Seagate');
23INSERT INTO fabricante VALUES(6, 'Crucial');
24INSERT INTO fabricante VALUES(7, 'Gigabyte');
25INSERT INTO fabricante VALUES(8, 'Huawei');
26INSERT INTO fabricante VALUES(9, 'Xiaomi');
27
28INSERT INTO producto VALUES(1, 'Disco duro SATA3 1TB', 86.99, 5);
29INSERT INTO producto VALUES(2, 'Memoria RAM DDR4 8GB', 120, 6);
30INSERT INTO producto VALUES(3, 'Disco SSD 1 TB', 150.99, 4);
31INSERT INTO producto VALUES(4, 'GeForce GTX 1050Ti', 185, 7);
32INSERT INTO producto VALUES(5, 'GeForce GTX 1080 Xtreme', 755, 6);
33INSERT INTO producto VALUES(6, 'Monitor 24 LED Full HD', 202, 1);
34INSERT INTO producto VALUES(7, 'Monitor 27 LED Full HD', 245.99, 1);
35INSERT INTO producto VALUES(8, 'Portátil Yoga 520', 559, 2);
36INSERT INTO producto VALUES(9, 'Portátil Ideapd 320', 444, 2);
37INSERT INTO producto VALUES(10, 'Impresora HP Deskjet 3720', 59.99, 3);
38INSERT INTO producto VALUES(11, 'Impresora HP Laserjet Pro M26nw', 180, 3);
39
40select nombre from producto;
41
42select nombre,precio
43from producto;
44
45select * from producto;
46
47select nombre,precio as euro,precio*1.10 as dolar
48from producto;
49
50select distinct codigo_fabricante
51from producto;
52
53select nombre
54from fabricante
55order by nombre asc;
56
57select nombre,precio
58from producto
59order by nombre asc;
60
61select *
62from fabricante
63limit 5;
64
65select *
66from fabricante
67limit 3,2;
68
69select nombre,precio
70from producto
71where precio =(select min(precio)
72from producto);
73
74select nombre,precio
75from producto
76where precio =(select max(precio)
77from producto);
78
79select nombre,codigo_fabricante
80from producto
81where codigo_fabricante=2;
82
83select nombre,precio
84from producto
85where precio<=120;
86
87select nombre,precio
88from producto
89where precio>=400;
90
91select nombre,precio
92from producto
93where precio<400;
94
95select *
96from producto
97where precio between 80 and 300;
98
99select *
100from producto
101where precio>=60 and precio<=200;
102
103select *
104from producto
105where precio>200 and codigo_fabricante=6;
106
107select *
108from producto
109where codigo_fabricante in(1,3,5);
110
111select nombre,precio*100 as centavos
112from producto;
113
114select nombre
115from fabricante
116where nombre like("s%");
117
118select nombre
119from fabricante
120where nombre like("%e");
121
122select nombre
123from fabricante
124where nombre like("%w%");
125
126select nombre
127from producto
128where nombre like("%portatil%");
129
130select nombre
131from producto
132where nombre like("%monitor%") and precio<215;
133
134select nombre,precio
135from producto
136where precio>=180
137order by precio asc;
138#------------------------------
139#condicion del join
140from producto p inner join fabricante f
141on p.codigo_fabricante=f.codigo
142
143select p.nombre as producto,p.precio as precio,f.nombre as fabricante
144from producto p inner join fabricante f
145on p.codigo_fabricante=f.codigo;
146
147select p.nombre as producto,p.precio as precio,f.nombre as fabricante
148from producto p inner join fabricante f
149on p.codigo_fabricante=f.codigo
150order by f.nombre asc;
151
152select p.codigo,p.nombre,f.codigo,f.nombre
153from producto p inner join fabricante f
154on p.codigo_fabricante=f.codigo;
155
156select p.nombre,p.precio,f.nombre
157from producto p inner join fabricante f
158on p.codigo_fabricante=f.codigo
159where p.precio in(select min(p.precio) from producto p);
160
161select p.nombre,p.precio,f.nombre
162from producto p inner join fabricante f
163on p.codigo_fabricante=f.codigo
164where p.precio in(select max(p.precio) from producto p);
165
166select p.nombre,p.precio,f.nombre
167from producto p inner join fabricante f
168on p.codigo_fabricante=f.codigo
169where f.nombre="lenovo";
170
171select p.nombre,p.precio,f.nombre
172from producto p inner join fabricante f
173on p.codigo_fabricante=f.codigo
174where p.precio>200 and f.nombre="crucial";
175
176select p.nombre,f.nombre
177from producto p inner join fabricante f
178on p.codigo_fabricante=f.codigo
179where f.nombre in("asus","seagate","hewlett-packard");
180
181select p.nombre,p.precio,f.nombre
182from producto p inner join fabricante f
183on p.codigo_fabricante=f.codigo
184where f.nombre like("%e");
185
186select p.nombre,p.precio,f.nombre
187from producto p inner join fabricante f
188on p.codigo_fabricante=f.codigo
189where f.nombre like("%w%");
190
191select p.nombre,p.precio,f.nombre
192from producto p inner join fabricante f
193on p.codigo_fabricante=f.codigo
194where p.precio>180
195order by p.precio asc;
196
197#ESTO ES IMPORTANTE
198select distinct f.codigo,f.nombre
199from fabricante f inner join producto p
200where f.codigo in(select p.codigo_fabricante
201from producto p);
202
203select distinct f.codigo,f.nombre
204from fabricante f inner join producto p
205where f.codigo not in(select distinct p.codigo_fabricante
206from producto p);
207#FIN
208
209select f.codigo,f.nombre,p.nombre
210from fabricante f left join producto p
211on p.codigo_fabricante=f.codigo;
212
213drop view v1;
214create view v1 as
215select distinct f.codigo,f.nombre
216from fabricante f inner join producto p
217where f.codigo not in(select distinct p.codigo_fabricante
218from producto p);