-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSQL_scripts.txt
More file actions
205 lines (171 loc) · 4.95 KB
/
Copy pathSQL_scripts.txt
File metadata and controls
205 lines (171 loc) · 4.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
VIDEO 1
CREATE DATABASE DBCARRITO;
USE DBCARRITO;
CREATE TABLE CATEGORIA(
IdCategoria INT PRIMARY KEY AUTO_INCREMENT,
Descripcion VARCHAR(100),
Activo BIT DEFAULT 1,
FechaRegistro DATETIME DEFAULT NOW()
);
CREATE TABLE MARCA(
IdMarca INT PRIMARY KEY AUTO_INCREMENT,
Descripcion VARCHAR(100),
Activo BIT DEFAULT 1,
FechaRegistro DATETIME DEFAULT NOW()
);
CREATE TABLE CLIENTE(
IdCliente INT PRIMARY KEY AUTO_INCREMENT,
Nombres VARCHAR(100),
Apellidos VARCHAR(100),
Correo VARCHAR(100),
Clave VARCHAR(150),
Restablecer BIT DEFAULT 0,
FechaRegistro DATETIME DEFAULT NOW()
);
CREATE TABLE USUARIO(
IdUsuario INT PRIMARY KEY AUTO_INCREMENT,
Nombres VARCHAR(100),
Apellidos VARCHAR(100),
Correo VARCHAR(100),
Clave VARCHAR(150),
Restablecer BIT DEFAULT 1,
Activo BIT DEFAULT 1,
FechaRegistro DATETIME DEFAULT NOW()
);
CREATE TABLE DEPARTAMENTO (
IdDepartamento VARCHAR(2)
Descripcion VARCHAR(45),
);
CREATE TABLE PROVINCIA (
IdProvincia VARCHAR(4),
Descripcion VARCHAR(45),
IdDepartamento VARCHAR(2)
);
CREATE TABLE DISTRITO (
IdDistrito VARCHAR(6),
Descripcion VARCHAR(45),
IdProvincia VARCHAR(4),
IdDepartamento VARCHAR(2)
);
CREATE TABLE PRODUCTO(
IdProducto INT PRIMARY KEY AUTO_INCREMENT,
Nombre VARCHAR(500),
Descripcion VARCHAR(500),
IdMarca INT,
IdCategoria INT,
Precio DECIMAL(10,2) DEFAULT 0,
Stock INT,
RutaImagen VARCHAR(100),
NombreImagen VARCHAR(100),
Activo BIT DEFAULT 1,
FechaRegistro DATETIME DEFAULT NOW(),
FOREIGN KEY (IdMarca) REFERENCES MARCA(IdMarca),
FOREIGN KEY (IdCategoria) REFERENCES CATEGORIA(IdCategoria)
);
CREATE TABLE CARRITO(
IdCarrito INT PRIMARY KEY AUTO_INCREMENT,
IdCliente INT,
IdProducto INT,
Cantidad INT,
FOREIGN KEY (IdCliente) REFERENCES CLIENTE(IdCliente),
FOREIGN KEY (IdProducto) REFERENCES PRODUCTO(IdProducto)
);
CREATE TABLE VENTA(
IdVenta INT PRIMARY KEY AUTO_INCREMENT,
IdCliente INT,
TotalProducto INT,
MontoTotal DECIMAL(10,2),
Contacto VARCHAR(50),
IdDistrito VARCHAR(10),
Telefono VARCHAR(50),
Direccion VARCHAR (500),
IdTransaccion VARCHAR (50),
FechaVenta DATETIME DEFAULT NOW(),
FOREIGN KEY (IdCliente) REFERENCES CLIENTE(IdCliente)
);
CREATE TABLE DETALLE_VENTA(
IdDetalleVenta INT PRIMARY KEY AUTO_INCREMENT,
IdVenta INT,
IdProducto INT,
Cantidad INT,
Total DECIMAL(10,2),
FOREIGN KEY (IdVenta) REFERENCES VENTA(IdVenta),
FOREIGN KEY (IdProducto) REFERENCES PRODUCTO(IdProducto)
);
VIDEO 2
SELECT * FROM USUARIO;
INSERT INTO USUARIO(Nombres, Apellidos, Correo, Clave)
VALUES ('Adolfo', 'Rojas', 'adolfor202020@gmail.com', '08adecf8159077b7ebf728a48e64d4a4945854c144960214d4b4867ea875b620');
SELECT * FROM CATEGORIA;
INSERT INTO CATEGORIA(Descripcion)
VALUES ('Tecnología'),
('Muebles'),
('Dormitorio'),
('Deportes');
SELECT * FROM MARCA;
INSERT INTO MARCA(Descripcion)
VALUES ('SONY'),
('HP'),
('LG'),
('HYUNDAI'),
('CANON');
SELECT * FROM DEPARTAMENTO;
INSERT INTO DEPARTAMENTO(IdDepartamento,Descripcion)
VALUES ('01', 'PARICUTIN 37');
SELECT * FROM PROVINCIA;
INSERT INTO PROVINCIA(IdProvincia,Descripcion,IdDepartamento)
VALUES ('0101', 'Estado de México', '01');
SELECT * FROM DISTRITO;
INSERT INTO DISTRITO(IdDistrito,Descripcion,IdProvincia,IdDepartamento)
VALUES ('010101', 'Nezahualcoyotl', '0101', '01');
VIDEO 10
USE DBCARRITO;
-- Eliminamos versiones anteriores
DROP PROCEDURE IF EXISTS sp_RegistrarUsuario;
DROP PROCEDURE IF EXISTS sp_EditarUsuario;
-- Procedimiento: Registrar
CREATE PROCEDURE sp_RegistrarUsuario(
IN _Nombres VARCHAR(100),
IN _Apellidos VARCHAR(100),
IN _Correo VARCHAR(100),
IN _Clave VARCHAR(100),
IN _Activo BOOLEAN,
OUT _Mensaje VARCHAR(500),
OUT _Resultado INT
)
BEGIN
SET _Resultado = 0;
SET _Mensaje = '';
IF NOT EXISTS (SELECT 1 FROM USUARIO WHERE Correo = _Correo) THEN
INSERT INTO USUARIO(Nombres, Apellidos, Correo, Clave, Activo)
VALUES (_Nombres, _Apellidos, _Correo, _Clave, _Activo);
SET _Resultado = LAST_INSERT_ID();
ELSE
SET _Mensaje = 'El correo del usuario ya existe';
END IF;
END;
-- Procedimiento: Editar
CREATE PROCEDURE sp_EditarUsuario(
IN _IdUsuario INT,
IN _Nombres VARCHAR(100),
IN _Apellidos VARCHAR(100),
IN _Correo VARCHAR(100),
IN _Activo BOOLEAN,
OUT _Mensaje VARCHAR(500),
OUT _Resultado INT
)
BEGIN
SET _Resultado = 0;
SET _Mensaje = '';
IF NOT EXISTS (SELECT 1 FROM USUARIO WHERE Correo = _Correo AND IdUsuario != _IdUsuario) THEN
UPDATE USUARIO SET
Nombres = _Nombres,
Apellidos = _Apellidos,
Correo = _Correo,
Activo = _Activo
WHERE IdUsuario = _IdUsuario;
SET _Resultado = 1;
ELSE
SET _Mensaje = 'El correo del usuario ya existe';
END IF;
END;