Fullstack con Python
> Backend con Python
> Sesión 06
> Ejemplo-03
- Dado un modelo entidad-relación definir las tablas y sus relaciones con SQL
- Dado un formulario web agregar los datos a las tablas con SQL
-
Modelo de entidad-relación:
-
Carpeta de repo actualizada
-
Usar la carpeta de trabajo
Clase-06/Ejemplo-03
-
Crea la tabla Usuario usando el archivo
sql/tabla-usuario.sql
:Clase-06/Ejemplo-03 $ docker exec -i mariadb mysql -hlocalhost -uBiblioteca -pBiblioteca Biblioteca < sql/tabla-usuario.sql Clase-06/Ejemplo-03 $
Si no hay mensajes de error, entonces el comando se ha ejecutado con éxito.
-
Crear las tablas Prestamo y LibroPrestamo:
Conectándose a la base de datos:
Clase-06/Ejemplo-03 $ docker exec -it -e LANG=C.UTF-8 mariadb mysql -hlocalhost -uBiblioteca -pBiblioteca Biblioteca [...] MariaDB [Biblioteca]>
Creando la tabla Prestamo:
CREATE TABLE Prestamo (id INT PRIMARY KEY AUTO_INCREMENT, idUsuario INT NOT NULL, fechaPre DATE, fechaDev DATE); Query OK, 0 rows affected (0.105 sec)
Creando la tabla LibroPrestamo:
CREATE TABLE LibroPrestamo (idLibro INT NOT NULL, idPrestamo INT NOT NULL, PRIMARY KEY (idLibro, idPrestamo)); Query OK, 0 rows affected (0.036 sec)
Validando la creación de las tablas:
DESCRIBE Prestamo; +-----------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | idUsuario | int(11) | NO | | NULL | | | fechaPre | date | YES | | NULL | | | fechaDev | date | YES | | NULL | | +-----------+---------+------+-----+---------+----------------+ 4 rows in set (0.001 sec) DESCRIBE LibroPrestamo; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | idLibro | int(11) | NO | PRI | NULL | | | idPrestamo | int(11) | NO | PRI | NULL | | +------------+---------+------+-----+---------+-------+ 2 rows in set (0.001 sec)
-
Agregar los datos del siguiente formulario web a las tablas Prestamo y LibroPrestamo:
Fomulario:
Identificando datos relacionados con la tabla Prestamo:
Agregando datos a la tabla Prestamo:
INSERT INTO Prestamo VALUES (null, 1, "2019-06-05", null); Query OK, 1 row affected (0.001 sec)
Identificando datos relacionados con la tabla LibroPrestamo:
Agregando datos a la tabla LibroPrestamo:
INSERT INTO LibroPrestamo VALUES (1, 1), (2, 1); Query OK, 2 rows affected (0.001 sec) Records: 2 Duplicates: 0 Warnings: 0
Validando resultados:
select * from Prestamo; +----+-----------+------------+----------+ | id | idUsuario | fechaPre | fechaDev | +----+-----------+------------+----------+ | 1 | 1 | 2019-06-05 | NULL | +----+-----------+------------+----------+ 1 row in set (0.000 sec) select * from LibroPrestamo; +---------+------------+ | idLibro | idPrestamo | +---------+------------+ | 1 | 1 | | 2 | 1 | +---------+------------+ 2 rows in set (0.000 sec)