Fundamentos de Bases de datos

1

C贸mo dise帽ar bases de datos y hacer queries efectivos

2

C贸mo identificar y organizar datos en bases de datos

3

Introducci贸n pr谩ctica a SQL y bases de datos relacionales

4

Trabajo Directo con MySQL: Cliente, Servidor y Manejo de Errores

5

Instalaci贸n de MySQL en varios sistemas operativos

Quiz: Fundamentos de Bases de datos

Introducci贸n a Bases de Datos Relacionales

6

Conceptos b谩sicos de bases de datos: columnas, tuplas y relaciones

7

Creaci贸n de Tablas en MySQL con Tipos de Datos Esenciales

8

Creaci贸n de tablas en MySQL con Primary Key y Timestamp

9

Normalizaci贸n y relaciones en bases de datos relacionales

10

Creaci贸n y visualizaci贸n de bases de datos con DBML y DBDiagram

Quiz: Introducci贸n a Bases de Datos Relacionales

Manipulaci贸n de Datos

11

C贸mo crear tablas y utilizar 'Foreign Keys' en MySQL

12

Crear tablas y establecer llaves for谩neas en SQL

13

Tipos de tablas en una base de datos relacional

14

C贸mo Modificar Tablas en SQL con ALTER TABLE

15

C贸mo Insertar Datos y Manejar Errores en MySQL

16

Creaci贸n Avanzada de una Tabla Products en MySQL

17

Uso pr谩ctico del WHERE en SQL para filtrar datos con precisi贸n

18

Gu铆a pr谩ctica para modificar datos usando UPDATE en SQL

19

C贸mo eliminar datos en SQL: m茅todos l贸gicos y f铆sicos

20

Uso Avanzado del Comando SELECT en SQL

Quiz: Manipulaci贸n de Datos

Agrupaci贸n de Datos

21

Funciones agregadoras en MySQL para an谩lisis eficiente de datos

22

Insertar datos desde otra tabla en MySQL con Insert Into Select

23

C贸mo utilizar Left Join en bases de datos relacionales

24

C贸mo consultar y relacionar tablas en MySQL

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesi贸n a prueba de IA

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

0 D铆as
5 Hrs
24 Min
55 Seg

Creaci贸n Avanzada de una Tabla Products en MySQL

16/24
Resources

Approaching a realistic database involves thinking about how to design tables closer to the practical needs of the market. You will learn how to rebuild a products table incorporating fundamental elements such as SKU and automatic timestamps, as well as understand how to correctly optimize the massive insertion of data.

How to create a realistic products table in MySQL?

A useful and real-world structure of a products table must include certain key elements. These elements allow you to clearly identify each product and manage its information efficiently in everyday situations.

  • product ID: integer, unsigned, primary key autoincremental.
  • SKU: globally unique product identifier, varchar type.
  • name: descriptive name of the product.
  • slug: URL friendly identifier, unique.
  • description: detailed text about the product.
  • price: monetary value of the product, can be optional.
  • created_at and modified_at: timestamps for automatic tracking.

The appropriate SQL statement to create this table would be a simple but powerful structure:

CREATE  TABLE IF NOT EXISTS products  (  product_ID INTEGER UNSIGNED PRIMARY  KEY AUTO_INCREMENT,  SKU  VARCHAR(20) NOT  NULL UNIQUE,  name  VARCHAR(50) NOT  NULL,  slug  VARCHAR(50) NOT  NULL UNIQUE,
  description  TEXT,  price  DOUBLE(10,2),  created_at TIMESTAMP NOT  NULL DEFAULT CURRENT_TIMESTAMP,  modified_at TIMESTAMP NOT  NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);

What is the optimal way to insert a lot of data?

When handling the insertion of thousands of records, it is critical to understand the importance of efficient management of system resources. Doing this correctly ensures overall performance stability, especially in real productions where multiple users are connected simultaneously.

The recommended practice is to insert in small blocks or chunks:

  • Insert in smaller blocks (e.g., 100 records per block).
  • Avoid inserting thousands of data in a single transaction so as not to hog all system resources.
  • Alternate inserts with other requests (user selects, new inserts).

How to insert data with the terminal in MySQL?

A valuable skill in development is to manage databases through the terminal. To insert data from an external file into MySQL, the example would be as follows:

  • Create SQL file:
echo "INSERT INTO products (SKU, name, slug, description, description, price) VALUES (...)" > file.sql
  • Insert from the terminal:
mysql -u user -p -D database < file.sql

This method allows you to execute SQL commands directly and is useful for large volumes of data or automated scripts.

What happens in case of data conflicts?

When bulk inserting it is usual to encounter conflicts such as duplicates in single columns (e.g. SKU or slug). You can easily handle this situation by using the INSERT IGNORE statement, which ignores and continues with the insertion of valid records, omitting only the conflicting rows.

Finally, analyzing how many records were actually inserted is accomplished with a simple query:

SELECT COUNT(*) FROM products;

What techniques do you currently use to optimize your databases? Share your strategies in the comments.

Contributions 4

Questions 0

Sort by:

Want to see more contributions, questions and answers from the community?

El Warning que le sali贸 al profe despu茅s de crear la tabla precios, es porque especificar la precisi贸n en double est谩 en desuso y quedar谩 obsoleto en versiones futuras de mysql, lo recomendable es, a la hora de requerir precisi贸n usar DECIMAL(10,2).
Un antipatron que se debe evitar al realizar inserciones a la base de datos a trav茅s de batch directas es el uso de transacciones masivas sin dividirlas en lotes m谩s peque帽os. Esto puede provocar un alto consumo de recursos, lentitud en la respuesta del sistema y bloqueos, especialmente en bases de datos que est谩n en producci贸n. Es recomendable dividir las inserciones en bloques de un tama帽o manejable (por ejemplo, 100 o 200 filas) para optimizar el rendimiento y minimizar el impacto en la base de datos.
Volviendo al tema de las analog铆as, me gusta pensar en esta clase como: Insertar datos en chunks es como comer una **hamburguesa gigante**: si lo haces de golpe, colapsas (o colapsa tu DB). Pero si lo partes en bocados, todo fluye mejor. 馃崝
Tal como dice el profesor lo mejor es tener aprobado ya el curso de linux, y wsl (si est谩s en Windows) para realizar estos pasos, **sin embargo**, aqu铆 no nos quedamos parados por nada!, veamos como puedes cumplir con la clase usando PowerShell o CMD si a煤n no estas usando una terminal: Primero lo primero, hay que verificar cual es tu usario en mysql, seguramente lo sepas pero si no, usa en my sql el comando: `SELECT CURRENT_USER();` * Ahora si vamos a powershell o cmd y usamos el comando `mysql -u usuario -p -D base_datos < archivo.sql`, si te sale un error, probablemente sea que no tienes agregada la instaalacion de mysql al path del sistema, teclas win + s y busca variables de entorno luego en la secci贸n de path agrega uno nuevo y pega la ruta donde est谩 el .exe, la instalaci贸n de mysql, para que lo busques de referencia normalmente es: *C:\ProgramFiles\MySQL\MySQLServer\bin\\.* Ahora deber铆as poder ejecutar el comando de clase sin problema con tu nombre de usuario. **Notas importantes** que te pueden servir: \- en Powershell no puedes usar el simbolo `<` para eso puedes irte a cmd o bien, cmd `/c "mysql -u tu_usuario -D tu_base_de_datos -p < tu_archivo.sql"` \- En Windows, para salir de MySQL en la otra terminal usa la palabra exit. Creo que eso es todo, **recuerda** que esto es para que termines la clase y no parar de aprender pero lo recomendable es **aprender terminal, linux y WSL cuanto antes!馃殌**