**Curso de SQL desde CERO — Transcript & Summary | SozAI**
Source: https://sozai.app/transcript/curso-sql-desde-cero/

Curso completo de SQL desde cero, cubriendo instalación, comandos básicos, relaciones, procedimientos almacenados y respaldo de datos.

## Key Takeaways

- SQL es un lenguaje universal aplicable en múltiples motores de bases de datos.
- Aprender SQL permite manipular, consultar y modificar datos de forma eficiente.
- La instalación correcta de MySQL y su administrador gráfico es fundamental para comenzar a trabajar.
- El curso cubre desde conceptos básicos hasta temas avanzados como transacciones y procedimientos almacenados.
- El conocimiento adquirido es aplicable en diversas áreas tecnológicas y de análisis de datos.

## What the video covers

- Introducción a SQL y motores de bases de datos como MySQL, Oracle, PostgreSQL y SQL Server.
- Definición y utilidad del lenguaje SQL para manejar bases de datos relacionales.
- Aplicaciones prácticas de bases de datos relacionales en desarrollo de software, análisis de datos y videojuegos.
- Proceso detallado de instalación de MySQL y MySQL Workbench en Windows.
- Explicación de comandos básicos: INSERT, UPDATE, DELETE, ALTER TABLE y SELECT.
- Uso de funciones de agrupamiento como COUNT, MAX, MIN, SUM y AVERAGE, y el operador GROUP BY.
- Creación y manejo de llaves foráneas para relacionar tablas y explicación de diferentes tipos de JOINs.
- Conceptos de cardinalidad en relaciones entre tablas (uno a uno, uno a muchos, muchos a muchos).
- Introducción a procedimientos almacenados (stored procedures) y su importancia en desarrollo.
- Temas avanzados como transacciones y respaldo/restauración de bases de datos para portabilidad.

Answers

## Questions about this video

¿Qué es SQL y para qué sirve?

SQL es el lenguaje estructurado de consultas que se utiliza para manejar bases de datos relacionales, permitiendo consultar, modificar y administrar datos organizados en tablas.

¿Cómo se instala MySQL y MySQL Workbench en Windows?

Se descarga el instalador MSI desde la página oficial de MySQL, se selecciona la opción Custom para instalar el servidor MySQL y MySQL Workbench, y se configura el usuario root con una contraseña para finalizar la instalación.

¿Qué temas se cubren en este curso de SQL?

El curso abarca desde la instalación, comandos básicos, funciones de agrupamiento, relaciones entre tablas con JOINs, procedimientos almacenados, hasta transacciones y respaldo de bases de datos.

## Full Transcript — Download SRT & Markdown

00:00

Speaker A

MySQL, Oracle, SQL Server, PostgreSQL, ¿te suenan familiares? ¿Qué tienen en común todas ellas? Que todas, absolutamente todas, utilizan SQL. Bienvenidos al curso de SQL, donde vas a aprender prácticamente desde cero. Y lo que mencioné previamente de SQL, Oracle, PostgreSQL, SQL Server, en realidad son motores de base de datos, y no debemos perder el foco: vamos a aprender el lenguaje estructurado de consultas SQL. Al final, cualquiera de estos motores siempre va a utilizar SQL. Así que todos los conocimientos que vas a adquirir aquí los podrás aplicar en diferentes motores de base de datos. Así que empecemos. Empezamos este nuevo curso de SQL y pongamos unas breves definiciones. ¿Qué es SQL? Bueno, el término obedece al lenguaje de consulta estructurado, o del inglés Structured Query Language. Principalmente, esto te sirve para poder manejar las bases de datos relacionales. ¿Qué quiere decir esto? Bases de datos que comprenden tablas, información que se va a relacionar una con la otra. Los términos principales que vas a toparte en el momento que trabajemos con ese tipo de base de datos son tablas, columnas, filas, registros, llaves primarias, foráneas, etcétera, cosas que iremos aprendiendo a medida que avancemos con el curso. Y te preguntarás, ¿dónde aplicamos las bases de datos relacionales? Bueno, como lo mencioné al inicio del video, las bases de datos SQL prácticamente están en todos lados. Se aplica en el desarrollo de software, en análisis de datos, hasta en videojuegos, etcétera. Prácticamente, cuando quieras hacer algún desarrollo o analizar un conjunto de datos a lo largo del tiempo, es muy probable que te topes con este tipo de base de datos. Y tienes que aprender a manipular los datos, tienes que aprender a poder modificarlos, consultarlos, agregarlos, etcétera. Y ¿qué es lo que vamos a aprender en el curso? ¿Cuáles son los temas que vamos a tocar? En todo este video ya hemos hablado un poco sobre lo que es SQL. Seguidamente, vamos a hacer el proceso de instalación tanto en Windows como Mac y en Linux, la creación de la base de datos, comandos como ALTER TABLE, comandos básicos para insertar, actualizar y eliminar datos, y algunas consideraciones a tener en cuenta ahí. El comando SELECT para hacer los queries y sus condiciones que esta pueda tener, funciones de agrupamiento calculadas como COUNT, MAX, MIN, SUM y AVERAGE, el famoso operador GROUP BY. Crearemos también llaves foráneas para ver cómo relacionamos dos tablas. Aprenderemos un poquito más sobre ALTER TABLE. Veremos los diferentes JOINs: INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN y todas sus consideraciones a tener en cuenta. Tocaremos el tema de las cardinalidades, cuando tenemos que hacer relaciones de muchos a muchos, de uno a uno, de uno a muchos y otras adicionales. Veremos también el tema de procedimientos almacenados o los famosos stored procedures, tema muy importante en el desarrollo de software. Y ya en las etapas finales estaremos viendo también temas de transacciones para poder tener ahí la precaución cuando un proceso pueda fallar o quieras confirmarlo realmente. Y por último, veremos cómo podemos hacer un respaldo y restauración de nuestros datos por si queremos llevarlo a otra máquina o poder hacer un poco más portable toda la información que hemos agregado en nuestra base de datos. Así que ponte cómodo porque te esperan casi dos horas para poder reforzar y aprender contenido sobre las bases de datos relacionales, específicamente el lenguaje SQL. Así que no te olvides suscribirte al canal, darle like, compartirlo con tus amigos y vamos al código. Para instalar MySQL en Windows, vamos a buscar en Google "MySQL Windows". Igual te voy a dejar el link en la descripción del video. Vamos a ir a la opción que dice "Download MySQL Installer", descargar el instalador de MySQL, y aquí tenemos un asistente, el cual vamos a tener que escoger esta opción que dice MSI Installer. Vamos a darle clic en descargar. Una vez descargado y ejecutado, la descarga vamos a ver estas opciones de configuración. Vamos a seleccionar aquí la opción Custom porque vamos a tener que instalar dos cosas en particular: el server de MySQL, es decir, el motor de la base de datos, y también un administrador gráfico para poder controlar la base de datos, que es el que se conoce como MySQL Workbench. Podremos instalar esto de manera separada, sí también, pero bueno, el instalador ya no va a ser todo automático. Así que vamos a seleccionar la opción Custom y aquí vamos a optar por esta versión de aquí, MySQL Server 8, la primera que es acorde a nuestro sistema operativo por 64 bits, que es lo más popular en todas las computadoras hoy por hoy. Vamos a arrastrarla aquí o, bueno, seleccionamos este botón de la derecha y ya está. Con eso es el motor de la base de datos. Luego vamos a ir a la opción que dice aplicaciones y vamos a escoger la opción que dice MySQL Workbench. Escogemos la primera opción y lo enviamos también para ese lado derecho. Por las demás opciones, no te preocupes, son opciones mucho más avanzadas, no es necesario por el momento instalar ello. Vamos a darle Next. Dice que va a descargar estas dos, ejecutar. Esperamos que termine sus descargas respectivas. Vamos a darle Next, vamos a dar clic en ejecutar y esperamos que termine el proceso de instalación. Esto puede tomar unos minutos. Siguiente, Next, siguiente y aquí está listo para configurar. Vas a dejar todo por defecto, vas a darle Next también y aquí vas a escoger una contraseña para tu usuario root, que es el usuario que viene por defecto en cualquier instalación de MySQL. Aquí está el usuario. Voy a ponerle una contraseña: 1 2 3 4 5 6 7 8. Ya, 1 2 3 4 5 6 7 8. Igual voy a repetir aquí: 1 2 3 4 5 6 7 8. Obviamente, esto es por temas didácticos, pero realmente ustedes deberían utilizar una contraseña mejor, ¿no? Si no quisieran que lo inyan de manera rápida. Listo, con esto vamos a darle Next. Y en esta opción es que si tú quisieras que MySQL, este servicio que has instalado en tu computadora, se inicie apenas levantes la computadora, o sea, apenas enciendas la computadora, inicie Windows y ya el servicio esté disponible. Si vas a usar MySQL constantemente, esta opción es altamente ideal que esté seleccionada. Si vas a usarlo esporádicamente, lo mejor sería que esté desactivada y tú lo inicies de manera manual para que no te consumas recursos de computador. Vamos a dejarlo por defecto activada para que tú lo tengas cada vez que se le prendas la computadora. Ahora, inicializado, vamos a darle Next, vamos a darle Next y ejecutar, y esto puede tardar unos minutos. Listo, le vamos a dar clic en Finish, Next y dice que inicie el Workbench, el administrador gráfico después de esta instalación. Vamos a darle Finish. Si todo es correcto, vamos a poder ver esta ventana y aquí detectó la instancia de SQL que acabas de instalar. Tú simplemente le das clic y colocas la clave que habías proporcionado: 1 2 3 4 5 6 7 8. Okay. Y con esto ya tienes el asistente, el administrador gráfico para poder controlar MySQL de una manera mucho más intuitiva. Si por alguna razón no te conectara a este MySQL Workbench, te da problemas de conexión, rechazado o algo por el estilo, te recomiendo presionar la combinación de teclas Windows + R y escribir services.msc. Te puede parecer muy extraño esto, pero básicamente estos son los servicios que se ejecutan en tu computadora y en muchas ocasiones se muestran cuáles son los que se inician apenas prendes ese computador. Aquí nosotros podemos buscar MySQL, MySQL 8.8.0 y está en ejecución. Si tienes problemas para iniciar Workbench, te sale problemas ahí, conexión o algo por el estilo, revisa siempre este apartado. Es probable que aquí esté detenido. Si lo está, clic derecho y le das iniciar. Sí. Si tienes problemas para iniciar, debes reinstalar el servicio de MySQL, pero por lo general esto debería estar en ejecución sin ningún problema. Y puedes ver aquí que ya puedo iniciar. Para instalar MySQL o MySQL, como quieran llamarlo, vamos a tener que ir directamente a la página de descargas. Para ello, vamos a Google y escribimos MySQL Community Downloads. Podrías utilizar cualquiera de estas dos opciones si empleamos la pr...

00:18

Speaker A

post sql server en realidad son motores de base de datos y no debemos perder el foco que vamos a aprender el lenguaje estructurado de consultas sql al final cualquiera de estos motores siempre va utilizar sql Así que todos los

00:32

Speaker A

conocimientos que vas a adquirir aquí los podrás aplicar en diferentes motores de base de datos Así que empecemos empezamos este nuevo curso de sql y pongamos unas breves definiciones qué es sql bueno el término obedece al lenguaje de consulta estructurado o del

00:50

Speaker A

inglés structured query Language principalmente esto te sirve para poder manejar las bases de datos relacionales Qué quiere decir esto base de datos que comprenden tablas información que se va se va a relacionar una con la otra los términos principales que vas a toparte

01:03

Speaker A

el momento que trabajemos con ese tipo de base de datos son tablas columnas filas registros llaves primarias foráneas etcétera cosas que iremos Aprendiendo a medida que avancemos con el curso y te preguntarás dónde aplicamos las base de datos relacionales

01:17

Speaker A

bueno como lo mencioné al inicio del video las bases de datos sql prácticamente están en todos lados se aplica en el desarrollo de software en análisis de datos hasta en videojuegos etcétera prácticamente cuando quieras hacer algún desarrollo o analizar un

01:32

Speaker A

conjunto de datos a lo largo del tiempo es muy probable que te topes con este tipo de base de datos Y tienes que aprender a manipular los datos tienes que aprender a poder modificarlos consultarlos agregarlos etcétera Y qué es lo que vamos a

01:46

Speaker A

aprender en el curso Cuáles son los ems que vamos a tocar en todo este video ya hemos hablado un poco sobre lo que es sql seguidamente vamos a hacer el proceso de instalación tanto en Windows como Mac y en Linux la creación de la

01:58

Speaker A

base de datos comandos como alter Table comandos básicos como para insertar actualizar y eliminar datos y algunas consideraciones a tener en cuenta ahí El Comando Select para hacer los queries y sus condiciones que esta pueda tener funciones de agrupamiento calculadas

02:12

Speaker A

como count Max min zoom y average el famoso operador Group vibe habin crearemos también llaves foráneas para ver cómo relacionamos dos tablas aprenderemos un poquito más sobre alter Table veremos los diferentes joints Inner joint left joint right joint Cross

02:29

Speaker A

joint join y todas sus consideraciones a tener en cuenta tocaremos el tema de las cardinalidades Cuando tenemos que hacer relaciones de muchos a muchos de uno a uno de uno a muchos y otras adicionales veremos también el tema de

02:42

Speaker A

Procedimientos almacenados o los famosos Store procedures tema muy importante en el desarrollo de software y ya en las etapas finales estaremos viendo también temas de transacciones para poder tener ahí la precaución cuando un proceso pueda fallar o quieras confirmarlo

02:55

Speaker A

realmente Y por último veremos Cómo podemos hacer un respaldo y restauración de nuestros datos por si queremos llevarlo a otra máquina o poder hacer un poco más portable toda la información que hemos agregado en nuestra base de datos así que ponte cómodo porque te

03:10

Speaker A

esperan casi 2 horas para poder reforzar aprender contenido sobre las bases de datos relacionales específicamente el lenguaje sql así que no te olvides suscribirte al Canal darle like compartirlo con tus amigos y vamos al código para instalar mysql en Windows

03:28

Speaker A

vamos a buscar en Google mysql Windows igual te voy a dejar el link en la descripción del video vamos a ir a la opción que dice Download mysql Installer Descargar el instalador de mysql y aquí tenemos un asistente el

03:43

Speaker A

cual vamos a tener que escoger esta opción que dice msi Installer Vamos a darle clic en descargar una vez descargado y ejecutado la descarga vamos a ver estas opciones de configuración vamos a seleccionar aquí la opción custom porque vamos a tener que instalar

03:58

Speaker A

dos cosas en particular el server de mysql es decir el motor de la base de datos Y también un administrador gráfico para poder controlar la base de datos que es el que conoce como mysql workbench podremos instalar esto de

04:11

Speaker A

manera separada Sí también pero bueno el instalador ya no va a ser todo bueno automático Así que vamos a seleccionar la opción custom y Aquí vamos a optar por esta versión de aquí mysql server 8 la primera que es acorde a nuestro

04:25

Speaker A

sistema operativo por 64 bits que es lo más populares en todas las computadoras hoy por hoy vamos a arrastrarla aquí o bueno seleccionamos este botón de la derecha y ya está con eso es el motor de la base

04:37

Speaker A

de datos luego vamos a ir a la opción que dice aplicaciones y vamos a escoger la opción que dice mysql workbench escogemos la primera opción y lo enviamos también para ese lado derecho por las demás opciones No te

04:52

Speaker A

preocupes son opciones mucho más avanzadas no es necesario por el momento instalar ello Vamos a darle next dice que va a descargar estas dos ejecutar Esperamos que termine sus descargas respectivas Vamos a darle next vamos a dar clic en ejecutar y Esperamos que

05:13

Speaker A

termine el proceso de instalación esto puede tomar unos minutos siguiente next siguiente y aquí está listo para configurar vas a dejar todo por defecto vas a darle next también y aquí vas a escoger una contraseña para tu usuario root que es el usuario

05:32

Speaker A

que viene por defecto en cualquier instalación de mysql aquí está el usuario voy a ponerle una contraseña 1 2 3 4 5 6 7 8 ya 1 2 3 4 5 6 7 8 igual voy a repetir aquí 1 2 3 4 5 6 7 8

05:45

Speaker A

obviamente esto es por temas didácticos pero realmente ustedes deberían utilizar una contraseña mejor no si no quisieran que lo inyan de manera rápido listo con esto Vamos a darle next y en esta opción es que si tú quisieras que mysql este servicio que

06:03

Speaker A

has instalado en tu computadora se inicie apenas levantes la computadora o sea apenas enciendas la computadora inicie Windows y ya el servicio esté disponible si vas a usar mysql constantemente esta opción es altamente ideal que esté seleccionada si vas a

06:18

Speaker A

usarlo esporádicamente lo mejor sería que esté desactivada y tú lo inicies de manera manual para que no te consumas recursos de computador vamos a dejarlo por defecto activada para que tú lo tengas cada vez que se le prendas la

06:29

Speaker A

computadora ahora inicializado vamos a darle next Vamos a darle next y ejecutar y esto puede tardar unos minutos listo le vamos a dar click en Finish next y dice que inicie el workbench el administrador gráfico después de esta

06:52

Speaker A

instalación Vamos a darle Finish si todo es correcto vamos a poder ver Esta ventana y aquí detectó la instancia de sql que acabas de instalar tú simplemente le das clic y colocas la clave que habías proporcionado 1 2 3 4 5

07:05

Speaker A

6 7 8 okay Y con esto ya tienes el asistente el administrador gráfico para poder controlar mysql de una manera mucho más intuitiva si por alguna razón no te conectara a este mysql warb te da problemas de conexión rechazado o algo

07:23

Speaker A

por el estilo te recomiendo presionar la combinación de teclas Windows r y escribir services.msc te puede parecer muy extraño esto pero básicamente estos son los servicios que se Ejecutan en tu computadora y muchas ocasiones se muestran Cuáles son los que se inician

07:40

Speaker A

apenas prend ese computador aquí nosotros podemos Buscar mysql mysql 8 8.0 y está en ejecución si tienes problemas para iniciar workbench te sale problemas ahí conexión o algo por el estilo revisa siempre este apartado Es probable que aquí esté detenido si lo

07:57

Speaker A

está clic derecho y le das iniciar sí Si tienes problemas para iniciar debes Reinstalar el servicio de mysql pero por lo general esto debería estar en ejecución sin ningún problema y puedes ver aquí que ya puedo iniciar para instalar mysql o mysql como

08:13

Speaker A

quieran llamarlo vamos a tener que ir directamente la página de descargas para ello Vamos a Google y escribimos mysql Community downloads podrías utilizar cualquiera de estas dos opciones si empleamos la primera directamente nos lleva a la página de descargas si por

08:27

Speaker A

ahí te topas con esta segunda vas a tener diferentes opciones para descargar básicamente tienes que utilizar la que dice mysql Community server de esa forma vas a poder escoger la versión de mysql que quieras utilizar para instalar en la

08:41

Speaker A

computadora recuerda Estamos instalando primeramente el Core el núcleo para poder trabajar con el lenguaje sql sí mysql es un proveedor de esto vamos a escoger la versión 8.0 que es una versión ampliamente conocida en la industria una versión estable en esta

08:59

Speaker A

ocasión vamos vamos a ver con macos en mi caso utilizo el Arm que es el chip de Apple Vamos a darle clic en esta opción que dice Download y nos va a descargar el instalador simplemente aquí te dice

09:08

Speaker A

si tú quisieras darte de alta crearte una cuenta yo simplemente le digo no Thanks Just Start my Download Vamos a darle permitir Y tenemos la descarga a continuación una vez descargado Vamos a darle doble clic y continuamos con el proceso de

09:24

Speaker A

instalación acá simplemente le das permitir y vamos a seguir el proceso de forma clásica continua Pues los términos de condiciones puedes leerlo siguiente acepto indicas dónde quieres instalar la base de datos voy a darle acá por defecto voy a seleccionar todo por

09:43

Speaker A

defecto tú puedes personalizar la ruta donde quisieras instalarlo Esto va a tomar su tiempo Simplemente hay que esperar aquí todo por defecto siguiente y acá te pide que coloques una clave para el usuario root Root es el usuario

09:56

Speaker A

básico es el usuario por defecto que se genera al momento de instalar una instancia de mysql Entonces como hemos instalado esto desde cero nos otorgan este tipo de usuario root vas a otorgarle una clave la que tú te acuerdes y recuérdalo por

10:12

Speaker A

siempre porque te va a pedir al momento que inicie sesión en la base de datos Aquí voy a ponerle 1 2 3 4 5 6 7 8 que es lo mínimo en caracteres que te pide aquí mantengo el check para que se

10:23

Speaker A

levante má sql después de la instalación Vamos a darle click en Finish y damos clic en cerrar puedes borrar el instalador ya no te va a servir y ahora sí cómo entramos a crear una base de datos Cómo sabemos si

10:39

Speaker A

todo está bien instalado una vez instalado el motor de base de datos ahora es importante ver cómo lo podemos administrar y vamos a hacerlo de una forma sencilla no nos vamos a complicar con comandos para ello vamos a emplear y

10:49

Speaker A

buscamos en internet mysql workbench Download Vamos a entrar a la primera opción y Aquí vamos a escoger de acuerdo a nuestro sistema operativo en este caso es macos vamos a utilizar el archivo de mg Este no es la única opción disponible

11:02

Speaker A

que tenemos para poder administrar una base de datos de manera visual también existe dber y otros gestores más pero mysql workbench es el de los más populares cuando queremos administrar este motor de base de datos acá Simplemente no voy a registrarme

11:18

Speaker A

simplemente hago no Thanks que empiece mi descarga y Esperamos que haga la descarga respectiva para poder hacer el proceso de instalación una vez finalizada la descarga Vamos a darle doble clic y aquí simplemente el proceso instalaci es demasiado sencillo abrimos

11:31

Speaker A

la carpeta de aplicaciones y simplemente tenemos que arrastrar a dicha carpeta se hace el proceso de instalación y una vez finalizado podemos abrir la aplicación buscamos mysql Word bench y este programita nos va a permitir de manera visual administrar la base de

11:50

Speaker A

datos de tipo mysql que hemos instalado también se podría por comando sin depender de este programa Pero sería las cosas mucho más complicadas así que como estamos a aprendiendo hay que apoyarnos en este software por defecto te reconoce ya una conexión una

12:04

Speaker A

instancia una instalación propia de msql Vamos a darle clic y te va a pedir la clave Que utilizaste al momento de la instalación 1 2 3 4 5 6 7 8 fue la que yo puse y ya tenemos la interfaz lista

12:17

Speaker A

para poder aprender sql con todos sus comandos si llegaste hasta aquí significa que la instalación está todo correcto y vamos a poder continuar con los demás capítulos de este curso y lo primero que vamos a hacer hacer es dirigirnos aquí a la vista de

12:30

Speaker A

esquemas te vas a dar cuenta que aquí se van a listar las diferentes bases de datos que tú tengas en esta computadora por defecto está la base de datos de sistema es la instalación propia de mysql no modifiquemos nada ahí por favor

12:43

Speaker A

y vamos a crear nuestra propia base de datos para ello vamos a a ver cómo creamos El Comando utilizamos create database y el nombre de la base de datos que vas a otorgarle en mi caso vamos a llamarle e-commerce porque vamos a hacer

12:56

Speaker A

unos ejercicios relacionados a producto categoría clientes como para aprender un poco sobre el sql ahora el uso del Comando create database y en general los comandos de sql no son obligatorios que estén en mayúsculas puede estar en minúscula solamente que hay una práctica

13:12

Speaker A

muy eh acostumbrada muy popular de que los comandos de sql se escriban en mayúscula no siempre va a ser así pero es muy popular encontrarse en el día día que los comandos estén expresados así okay repito no es obligatorio Así que

13:28

Speaker A

vamos a ejecutar aquí en este botón de Rayo o en el botón acá de Relámpago y listo tenemos en la parte inferior que se ejecutó El Comando Cómo puedo ver mi base de datos en la izquierda simplemente Vamos a darle refrescar clic

13:40

Speaker A

derecho refrescar y aquí puedo encontrar que ya tengo mi e-commerce mi base de datos llamada e-commerce no tiene tabla no tiene nada que todavía hemos creado pero por el momento ya está el espacio reservado bien entonces si tú quisieras

13:55

Speaker A

que los demás queries se ejecuten orientados a esta base de datos pues podremos usar un comando como use e-commerce para asegurarnos que las consultas que vengan a continuación se orienten a esta base de datos ves Estamos usando ahora e-commerce y lo

14:13

Speaker A

primero que vamos a hacer es crear una tabla pero primero tenemos que entender el contexto de Qué es una tabla para ello tengo una pequeña hoja de cálculos Por ejemplo si hablamos de producto Okay la tabla producto que suele tener un ID

14:27

Speaker A

que es el identificador del producto puede tener también algo conocido como el nombre del producto vamos a hacerlo en español en este curso por ejemplo el producto puede tener un precio Okay y el producto puede tener un estado como para

14:44

Speaker A

saber si el producto está válido o no O ya no existe no entonces podemos decir que por ejemplo tenemos el producto número uno que es un micrófono por ejemplo micrófono x pongamos un precio 59 pun 99 por ejemplo y el estado Vamos a ponerle true

15:09

Speaker A

Porque todavía es una es un producto que existe es un producto que está en stock podemos decirle que está true y así puedo tener diferentes datos no puedo tener el producto número dos podos colocarle acá monitor y precio

15:22

Speaker A

129 Sí 129.5 por ejemplo que también existe true y así sucesivamente Entonces esto vendría a ser una tabla Okay una tabla y la tabla qué tiene tiene columnas y los datos que tú asocias dentro de la tabla para cada columna son

15:43

Speaker A

las filas o los registros que van a ser los valores que tú vas a poder consultar motivo por el cual estás aprendiendo sql si yo quiero plasmar esto en má sql que es la herramienta que estamos optando en

15:54

Speaker A

este curso pues lo podemos hacerlo de la siguiente manera aprendamos primero por comandos Y luego vemos cómo lo podemos hacer de forma gráfica de manera muy sencilla para eso utilizo el comando create Table y coloquemos el nombre de

16:09

Speaker A

la tabla Vamos a ponerle producto Okay seguidamente de paréntesis donde vamos a indicar básicamente Cuál es la estructura que debe tener esta tabla Mira la importancia de los paréntesis y el punto coma y final cada punto y coma

16:24

Speaker A

sirve para expresar una línea de comandos no Aquí vamos vamos a decir por ejemplo que yo quiero indicarle vamos a poner una pequeña entación para dar un orden el ID que es de tipo numérico es un int vamos a decir también

16:40

Speaker A

eh el nombre nombre del producto este va a ser de tipo bar charar bar charar es para expresar una cadena de texto un texto que va a estar guardado aquí y por lo general suele expresarse la cantidad o

16:54

Speaker A

longitud de caracteres que va a aceptar esa cadena de texto coloquemos el valor 250 25 que es el valor por defecto que se le suele asociar los caracteres luego tuvimos un precio Okay un precio y ese precio es de tipo numérico pero ese

17:11

Speaker A

numérico aceptaba decimales podemos decirle aquí decimal y por ejemplo acá un 4,2 Qué significa esto por ejemplo si yo quiero expresar 9999 significa que estos cuatro son los caracteres que están acá los dígitos Okay pero dos de ellos serán aceptados

17:32

Speaker A

como decimales si quiero expresar más por ejemplo se significa que podré crear precios a esta altura Okay acá hay seis dígitos 2 4 6 pero dos de ellos son decimales entonces para mi precio va a mantener esta estructura para recibir

17:49

Speaker A

precios en ese Rango no luego habíamos dicho el valor estado el cual vamos a expresarlo como bullano de esa manera nosotros podemos decir que es true o false entre cada columna y columna siempre hay una coma no punto y coma

18:03

Speaker A

sino coma para poder expresar diferentes columnas Okay entonces cómo ejecutamos esto sombre la sentencia create Table y ejecutamos el Rayito y aquí tú te puedes dar cuenta que tenemos la tabla creada producto si yo refresco acá el tema del

18:24

Speaker A

e-commerce Vamos a darle refresh all te vas a dar cuenta que tengo en tabla producto la que Acabo de crear Sí y si por aquí yo la inspeccion acá en table maintenance para darle mantenimiento te vas a dar cuenta

18:40

Speaker A

que en las columnas tengo justamente lo que he expresado no la columna ID es de tipo int el nombre bar charar El decimal el precio y el estado un Tim in que también se le asocia como un bullano

18:50

Speaker A

para colocar valores de true o false si quisiéramos lograr esto la creación de una tabla pero de una manera más gráfica donde no dependamos de de tantos comandos Bueno se puede hacer fácilmente aquí en Tablas hacemos clic derecho

19:04

Speaker A

create Table y nos va a salir una interfaz para poder indicar las columnas de esta tabla yo estoy utilizando macos y aquí hay un pequeño problema Al momento de confirmar no se ve el botón explícitamente si estás en Windows es

19:16

Speaker A

más probable que sí lo veas el botón de aplicar o de aceptar entonces en columnas podemos a indicar solamente un ejemplo y de ejemplo y acá una columna nombre igual tú puedes indicar los tipos de datos No si es barchart decimal o

19:32

Speaker A

algún otro en particular indicar si es una llave primaria conceptos que iremos viendo un poco más adelante no te preocupes por el momento pero si quiero confirmar esos cambios para que se creede la tabla bueno en macos no veo Ese botón para

19:46

Speaker A

confirmar Pero curiosamente si yo presiono por aquí se activa una opción de opciones es un tema ya de la interfaz gráfica de esta herramienta con maos pero repito si estás en Windows es muy probable probable que todo lo veas de una manera

20:00

Speaker A

legible sí es quizás con el tiempo esto lo arreglen bueno y aquí está el nombre de la tabla Vamos a ponerle ejemplo y simplemente le damos a aplicar Esto me genera un comando es como lo he explicado hace poco Vamos a darle

20:12

Speaker A

aplicar y listo vemos aquí la nueva tabla ejemplo creada fácilmente con un asistente el asistente nos va a ayudar muchísimo pero la idea es que te vayas familiarizando con los comandos de sql puesto que cuando estés trabajando para

20:26

Speaker A

hacer queries o alterar alguna tabla dominar estos comandos va a ser de mucha ayuda porque así tú cambies de gestor gráfico Word bench por cualquier otro los comandos van a ser los mismos pero la asistente gráfico puede cambiar ya

20:39

Speaker A

hemos aprendido a crear nuestra primera tabla Qué pasaría si yo necesito modificarla agregar una columna más por ejemplo para eso vamos a utilizar una nueva sintaxis y utilicemos El Comando alter Table y el nombre de la tabla en

20:53

Speaker A

este caso la tabla se llama producto seguidamente vas a tener que indicar qué es lo que quieres agregar como un nuevo campo por ejemplo agreguemos la columna marca indiquemos también que es de tipo texto un barchart y en esta ocasión

21:08

Speaker A

vamos a considerar solamente que sea 15 puedes tenerlo en una sola línea o puedes darle un salto de línea no hay ningún problema podemos ejecutar esto aquí en el Rayito no se olviden de indicar siempre que están utilizando la

21:22

Speaker A

base de datos ucommerce Y aquí Ejecutan y Listo ya está esto establecido aquí en la parte izquierda vamos a ver de modo visual la tabla producto la despliego veo en columnas y ahora sí tengo la columna marca está establecida si por

21:39

Speaker A

alguna razón Yo ya no quisiera trabajar con esta tabla quisiera eliminarla podemos aprender el uso de otro Comando como Drop Table y seguidamente el nombre de la tabla ten presente que usar este Comando va a eliminar la tabla y

21:54

Speaker A

obviamente todo el contenido que tenga ahí más adelante aprenderemos a cómo insertar datos a la tabla y ten presente si ejecutas un Drop Table estos datos se perderán para siempre si es que no tienes un respaldo o una copia de

22:05

Speaker A

seguridad entonces ejecutamos y teas dar cuenta que funciona sin ningún problema ya no tengo la tabla producto eliminemos también la tabla ejemplo que era lo que habíamos hecho en el ejercicio pasado y ya está quiero que te des cuenta que cada vez

22:19

Speaker A

que yo ejecuto un comando no es necesario siempre utilizar use e-commerce o sea indicar la base de datos esto se hace una sola vez Pero puede que tú regreses a utilizar el mys huele workbench después no sé de unos

22:30

Speaker A

días hayas cerrado esto hayas reiniciado la computadora y es probable que te lo pida en una primera instancia bien Entonces vamos a generar nuevamente la tabla producto pero ahora vamos a personalizarlo un poquito más vamos a decirle aquí un 20 y agreguemos la

22:44

Speaker A

columna marca también como un barsar en este caso de 15 perfecto ejecutamos nuevamente create Table y ya tenemos nuestra tabla generada vamos a refrescar aquí y nuevamente tenemos la tabla producto funcionando con sus columnas indicadas lo que vamos a

23:03

Speaker A

aprender a continuación es ver cómo podemos insertar datos a esta tabla que acabamos de crear la tabla producto con la tabla creada ahora es importante almacenar datos en ella y para poder ingresar datos es muy sencillo simplemente utilicemos el

23:18

Speaker A

siguiente Comando insert into vamos a decir estamos insertando datos donde en la tabla producto en este caso se llama así y vamos a indicar entre paréntesis las columnas que vamos a querer insertar por ejemplo es ID nombre precio marca y estado seguidamente vamos

23:38

Speaker A

a indicar la palabra values y otra vez entre paréntesis vamos a indicar los valores asociados a cada elemento por ejemplo el id1 el nombre coloquemos aquí una televisión el precio supongamos un número 499 99 en marca vamos a colocarle aquí

24:02

Speaker A

una marca x okay Y en estado vamos a indicarle true como que está disponible esto punto y coma al final y ejecutamos todo esto en el rallito y vemos que se ha hecho la sentencia correctamente Cómo podemos darnos cuenta

24:19

Speaker A

que tenemos datos asociados bueno como todavía no hemos aprendido ese Comando podemos irnos aquí a la tabla producto hacer clic derecho y aquí tienes una opción llamada seleccionar las filas las primeras 1 filas vamos a ejecutarlo y aquí te das

24:37

Speaker A

cuenta la información asociada el id1 el nombre del producto el precio su marca y estado genial listo pero ten presente que si yo quisiera insertar otro elemento más por ejemplo aquí pongamos el número dos supongamos que aquí vamos a colocarle

24:54

Speaker A

una laptop un precio diferente Sí y una marca Z no es necesario que las que los comandos que estamos aprendiendo siempre estén uno debajo del otro o mantener un orden eso va a depender mucho de la situación Por ejemplo yo podría cortar

25:13

Speaker A

eso y pegarlo donde estuvimos al principio al inicio del curso Pero al final lo que manda es sombrear o seleccionar ese Comando que quieres ejecutar Y ves que funciona sí Esto no se lee de forma secuencial sino que es

25:29

Speaker A

más para poder ejecutar los comandos que tú quieres en ese momento salvo que quieras ejecutarlo todo de golpe ahí sí sería un poco más importante prevalecer el orden de los comandos pero en este caso estamos haciéndolo uno por uno

25:41

Speaker A

nuevamente podemos hacer clic derecho seleccionar a filas y nos damos cuenta que tenemos ahora los dos elementos no el producto uno y el producto dos muy bien perfecto pero hay una forma también un poco más resumida de poder insertar

25:54

Speaker A

los elementos supongamos que los números de ID quiero que sean correlativos yo sé siempre que se va a insertar el siguiente el siguiente y el siguiente sería tres luego sería cuatro luego Sería cco para yo no estar indicando de

26:06

Speaker A

forma explícita el número podríamos haber hecho un pequeño cambio supongamos que vamos a eliminar esta tabla eliminemos esta tabla producto sí para hacer algunos cambios sombre perfecto ya no hay tabla producto obviamente los datos ya no existen y lo

26:23

Speaker A

que vamos a hacer ahora es alterar el Script o el código de creación de T habla vamos a indicar que necesito decirle que esto de aquí No acepte nulos Qué significa la palabra not nul significa que cuando tú intentas

26:40

Speaker A

insertar algún valor a este campo obligatoriamente tienes que insertar algo no puedes dejarlo vacío no puedes dejarlo sin ningún elemento porque estaría generando un error Sí tú puedes colocarle ese campo no nul a los atributos que gustes Sí a las columnas

26:55

Speaker A

que gustes en mi caso voy a dejar nada más aquí el ID y vamos a adicionar una coma al final y vamos a decir esta palabra clave primary key y entre paréntesis el nombre de la columna que va a servir como llave primaria qué es

27:13

Speaker A

esto de llave primaria si es primera vez que están entendiendo esta parte de sql Miren la llave primaria viene a ser la columna principal por el cual tú identificas a cada registro supongamos que nosotros tenemos muchos productos Siempre vamos a tener un código que

27:30

Speaker A

identifica cada producto ese código es el representativo y con ese c a Qué producto me refiero entonces para mí la llave primaria va a ser el identificador inicial el número 1 2 3 4 etcétera Pero recuerdan también que yo les dije que

27:45

Speaker A

quiero que este número sea incrementado automáticamente entonces lo que vamos a hacer es después de este not nul utilizamos la palabra Auto increment con esto vamos a indicarle Al momento de ejecutar que se va a crear una tabla con estas columnas pero

28:04

Speaker A

indicando el identificador principal como llave primaria primer Ke y que sea autoincremental en qué me beneficia esto que yo al momento de querer insertar datos ya no voy a necesitar enviar el ID de manera explícita puedo prescindir de

28:19

Speaker A

él miren Okay y puedo insertar los dos datos de golpe miren pueden sombrear los dos ejecutar el Rayito y las sentencias fueron enviadas nuevamente vamos acá a refrescar las tablas veo producto clic derecho seleccionar las 1 filas y ahí

28:35

Speaker A

tengo los dos elementos uno y dos perfecto si quiero insertar un tercero Solamente pues copio pego y coloquemos aquí un teclado Sí y pongamos aquí simplemente 9.99 una marca H sí Entonces ejecutamos esto y nuevamente podemos hacer clic derecho seleccionar filas y

28:57

Speaker A

vemos que tenemos ahora el número tres es decir lo hecho autoincremental por cuenta propia Y esto es una práctica muy común cuando a veces tenemos que insertar varios registros en una tabla no es obligatorio pero es una característica que se ofrece en muchos

29:12

Speaker A

motores de base de datos ahora debemos aprender a Cómo modificar los valores cuando ya hemos hecho inserciones si por alguna razón te equivocaste en insertar el valor de un producto o el valor de lo que estés insertando puedes modificarlo no te

29:26

Speaker A

preocupes miren para no llenarnos tanto de código en la pantalla ustedes pueden Borrar todo esto y continuar con su trabajo o si gustan pueden también ir a file si en problema no es necesario seleccionarlo file guardar aquí en la

29:39

Speaker A

opción save Script y vas a tener que guardarlo con un nombre que te gustes podemos poner aquí Script 1 sql sí Con eso vas a poder guardarlo y podría cerrarlo y volvemos a generar un nuevo query ves un query dos si quieres abrir

29:58

Speaker A

el archivo que hemos guardado podemos hacer aquí la opción Open sql Script y ubicamos el archivo que has guardado Y de esa manera tienes nuevamente todo disponible en nuestro caso lo voy a hacer en un nuevo Script para mantener

30:13

Speaker A

todo ordenado ustedes podrían eh trabajar sobre el mismo no hay ningún problema vamos aquí y vamos a decir lo siguiente como ya conozco los datos vamos a actualizarlos y para actualizarlos utilizo la sentencia update luego seguidamente indicamos el

30:28

Speaker A

nombre de la tabla en este caso producto y por ejemplo vamos a actualizar el producto donde su ID sea uno y le cambiamos el precio recordemos Cuál es la información actual puedo hacer clic derecho ver las filas y tenemos que el

30:43

Speaker A

producto uno es televisión a 499 podemos hacer un cambio aquí actualizar la tabla producto indicamos con la palabra set el cambio aquí colocamos la columna que nosotros vamos a cambiar y el valor nuevo que deseamos actualizar por ejemplo a

30:59

Speaker A

599.99 seguidamente del we con el ID igual a 1 y esto lo he hecho para poder indicar de manera explícita cuál registro voy a modificar en este caso estoy diciendo Quiero actualizar en la tabla producto el campo precio a este

31:15

Speaker A

nuevo valor del ID que le corresponde el número uno lo ejecuto y Aparentemente ya hizo la acción vuelvo a producto hago refresco o si quiere clic derecho s y vemos aquí que ya tengo la nueva información 599.99 de esa manera he podido cambiar

31:34

Speaker A

la información de un elemento antes 499 ahora 599 Qué pasaría si es que quisiera cambiar más de una columna más de un valor podemos hacer aquí un set nombre por ejemplo donde decía teclado lo cambiamos ahora por teclado Gamer y

31:50

Speaker A

también actualicemos su precio el precio tenía un valor de 9.9 si mal no recuerdo actualicemos a 29 pun 99 pero no se olviden de indicar el identificador sobre cuál elemento van a hacer los cambios listo selecciono ejecuto y ya

32:05

Speaker A

está el update vuelvo a hacer el rayito en esta sentencia que vamos a explicarla o nuevamente clic derecho Select RS y vamos a ver que ahora tengo teclado Gamer de la columna dos o mira debió ser la columna 3 si te equivocaste bueno

32:22

Speaker A

lamentablemente no hay un control Z ya se cambiaron los datos de este producto vamos a hacer aquí un update producto set nombre y le vamos a poner aquí un mouse donde el ID sea igual a TR Recuerda que la mayúscula o minúscula es

32:42

Speaker A

indistinto guardamos ejecutamos perfecto nuevamente refrescamos aquí y tenemos el cambio pero qué pasaría si es que tú haces ahora un cambio de esta forma un update de producto dónde est c ig a 0 si ejecuto esto vamos a tener un pequeño error y este

33:02

Speaker A

resultado no siempre se refleja en todas las bases de datos en alguna base de datos suele ejecutarlo pero en otras hay una especie de protección lo que pasa es que si tú te olvidas el weare en un campo de tipo update puedes tener un

33:14

Speaker A

inconveniente de modificar todos los registros y no indicaste uno en particular si te das cuenta el error dice Estás usando el safe update Mode básicamente es como una protección para poder hacer el update sin olvidarte del we aquí tú ves el detalle del problema y

33:29

Speaker A

justamente menciona esto para deshabilitarlo tenemos que ir a preferencias sql editor dice Okay podemos ir a preferencias sql editor y por aquí vamos a tener seguramente la opción activada save updates rechaza los updates y delete que no tenga

33:51

Speaker A

restricciones es decir que te olvides de algún campo como Where para indicar que vas a eliminar o actualizar a un registro en particular vamos a quitar este comportamiento y ahora sí y antes de volver a ejecutarlo tenemos que

34:03

Speaker A

volvernos a conectar Así que lo que vamos a hacer es cerrar este local instance volver a conectarnos sí o puede cerrar el workbench y volver a abrirlo vamos a colocar la clave correctamente y bueno ahora sí ya con

34:19

Speaker A

esto nosotros podemos volver a ejecutar esto lanzamos y bueno ahora tengo un error que no seleccioné la base de datos podemos colocar use e-commerce la lanzamos y nos damos cuenta que ya estamos otra vez en la base de datos

34:30

Speaker A

ejecutamos esta sentencia y ahora sí tengo que todo se actualizó a cero si revisamos nuevamente la tabla producto nos damos cuenta que tengo ahora que todos están desactivados Están como en estado Cero tú le puedes volver a poner

34:43

Speaker A

uno y se activa nuevamente entonces las sentencias de update te sirven para modificar los elementos de todos los registros que tú tengas si te olvidas del we estarías alterando prácticamente de tu tablet habla es por eso que el we es muy

34:59

Speaker A

importante para indicar que solo afectes a determinados registros que cumplen con estas condiciones tú puedes poner en el Word que sea igual a un valor en particular en este caso hemos hecho que el ID sea igual a un número Pero puedes

35:10

Speaker A

poner que el nombre sea igual a esto puedes poner que otro atributo sea mayor o menor que algún cierto valor puedes poner muchas condiciones Pero siempre el we es importante para no alterar a todo el contenido de la tabla para eliminar

35:23

Speaker A

los registros utilizamos delete y vas a utilizar from la tabla en este caso la tabla producto que estamos trabajando si tú haces un delete from así directamente estás borrando todos los elementos de la tabla por eso se recomienda que siempre

35:37

Speaker A

se acompañe con la cláusula we y aquí tú indiques las condiciones para poder expresar Qué elemento vas a eliminar por ejemplo el ID que sea igual a uno con un nombre igual a televisor o con alguna condición que tú quisieras expresar Pero

35:51

Speaker A

recuerda que siempre el we es importante en un proceso de eliminación Pero recuerda que siempre el weare es importante en un proceso de eliminación si no te vas a borrar todos los datos de la tabla y no hay control Z salvo que

36:03

Speaker A

hagamos un rollback Pero eso lo vamos a ver un poquito más adelante cuando estemos viendo el tema de transacciones así que de momento yo no lo voy a ejecutar porque no quiero ir borrando los datos para poder aprovecharlo más

36:12

Speaker A

adelante en la tema de las consultas hasta el momento hemos aprendido Cómo crear una base de datos Cómo crear una tabla Cómo poder insertar elementos a ella y cómo poder modificar dichos elementos ahora vamos a poder a consultar los elementos hasta momento lo

36:27

Speaker A

que hemos hecho es simplemente ir a la sección de tablas clic derecho y seleccionar las filas y puedo ver aquí el resultado Pero si te fijaste fuiste muy observador en la parte superior menciona unas sentencias hay un celec

36:42

Speaker A

asterisco from e-commerce product básicamente la sentencia que vamos a aprender ahora es la sentencia Select el cual nos va a permitir poder revisar el contenido de una tabla la sentencia es así hacemos el uso de la palabra Select

36:58

Speaker A

seguidamente de asterisco y luego indicamos la palabra from y aquí debemos colocar la tabla de esta manera nosotros ejecutamos esta parte y vemos el resultado en la parte inferior si te diste cuenta tenemos los mismos elementos listados no fue necesario colocar la

37:18

Speaker A

palabra e-commerce porque ya estoy sobre entendiendo que estamos trabajando sobre esta base de datos pero aquí estamos viendo la información de la tabla producto Select asterisco fromont el asterisco es para indicar Quiero ver absolutamente todos los campos de esta

37:32

Speaker A

tabla si yo quisiera ver solamente algunos Campos podría decir lo siguiente Mira Quiero ver el ID y el nombre de la tabla producto selecciono ejecuto y ahora solamente veo esos tres puedo colocarle también el campo precio y el campo

37:53

Speaker A

estado ejecuto y ahora veo todos los valores Entonces esto de aquí se pudo haber resumido directamente con el asterisco y con eso obtengo toda la información esto puede ser muy útil cuando Quiero ver de golpe la información que tiene la tabla Pero

38:08

Speaker A

puede ser un poquito perjudicial Si es que tenemos muchos elementos llámese miles millones de registros que puede afectar un poco de rendimiento para tener el resultado ya hablaremos un poco más adelante sobre qué técnicas podríamos hacer para poder tener quizás

38:22

Speaker A

una pequeña porción de un conjunto de elementos pero de momento estamos Aprendiendo la sentencia celec que nos sirve para poder revisar el contenido de una tabla también es conocido saber que a la tabla le puedes colocar un apodo y

38:32

Speaker A

con ese apodo tú puedes empezar a indicar el contenido de cada columna por ejemplo p. nombre p pun estado también es otra forma para llegar al mismo resultado entonces recuerda el Select lo utilizamos para poder Consultar los elementos que tiene una tabla es muy

38:49

Speaker A

probable que cuando tengamos mucha información necesitemos tener algunas condiciones para poder filtrarla y es aquí donde Select le Podemos agregar dichas condiciones practiquemos con los siguientes ejercicios supongamos que nos piden encontrar los productos cuyo precio es mayor a 300 para ello

39:05

Speaker A

utilizamos la sentencia Select vamos a indicar asterisco para devolver todos los datos de la tabla producto Where aquí viene la condición el campo precio y cómo Expreso que sea mayor a 300 vamos a utilizar el símbolo de mayor de esa manera puedo indicar

39:26

Speaker A

aquí el número selecciono y ejecuto y nos damos cuenta que me sale solamente el producto uno que es 599 y Qué pasaría si me piden aquellos que son mayores a 300 y también su estado está activo o es uno puedo utilizar la

39:45

Speaker A

palabra reservada ant para poder unir con una condición más y decirle estado es igual a 1 de esa manera ejecuto y obtengo el mismo resultado porque también coincide tú puedes tener más condiciones para indicar and Sí más criterios de de

40:03

Speaker A

inclusión o también puedes utilizar el operador or para indicar o sucede esto o sucede lo otro por ejemplo si acá yo coloco cer0 voy a seguir teniendo respuesta porque o sucede lo mayor a 300 o sucede que el estado sea igual a cer0

40:17

Speaker A

Pero en cambio Si yo le coloco ant estamos diciendo que ambos condiciones tienen que cumplirse no hay ningún registro que cumpla esta condición por lo tanto tengo aquí ningú elemento mostrado de igual manera si es que me pidieran que sean productos mayores a

40:31

Speaker A

300 o mayores igual a 300 debemos utilizar el símbolo igual después del operador mayor ejecutas y el resultado va a ser también lo mismo para que esto se pueda visualizar de mejor manera voy a poner 599.99 ejecuto y sigo obteniendo

40:50

Speaker A

resultado pero si coloco mayores a 599 al no ser igual ya no lo toma como parte de la respuesta Lo mismo sucede en el caso de que tú quieras expresar menor Si consideras menor obviamente va a salir aquello que sea menor a 599 pero si

41:06

Speaker A

colocas menor igual va a salir todas las que coinciden Incluyendo a 599.99 y en los casos que nos pidan por ejemplo que el precio esté comprendido entre un Rango de valores podemos hacer lo siguiente vamos a copiar la base y

41:22

Speaker A

podríamos decir que este precio sea mayor a 20 pero menor que 100 bueno con lo que sabemos podríamos pensar hacer mayor que 20 y que el precio esté menor que 100 ejecutas y el resultado va a salir sí pero también esto se podría

41:42

Speaker A

reescribir de otra forma cómo se podría hacer muy sencillo vamos a conocer el operador bn este operador nos va a indicar justamente el mismo escenario de arriba Aquí vamos a decir que el precio esté comprendido entre 20 y 100 ejecuto

41:59

Speaker A

este Comando y obtengo el mismo resultado el teclado Gamer de 29.99 y listo con esto hemos aprendido las condiciones que podemos aplicarle a algunos temas numéricos y alguna otra condición se le podría hacer a campos de tipo textos sí miren por ejemplo podemos

42:15

Speaker A

hacer acá un Select asterisco from producto donde el nombre contenga por ejemplo la palabra Gamer si yo le hago igual a Gamer de esta forma estamos preguntando cualquier producto que tenga el nombre Gamer y no hay ninguno porque

42:34

Speaker A

si ustedes recuerdan los productos tienen nombres distintos es TV teclado Gamer y Mouse no se llama Gamer sino se llama teclado Gamer Pero cómo buscaría algún campo que pueda encontrar alguna coincidencia con esta palabra para eso vamos a aprender el uso del término like

42:51

Speaker A

y de esta manera tú vas a buscar las coincidencias ejecutas y no tienes resultado lo que pasa es que like se acompaña con un símbolo de porcentaje al inicio para decir que vas a encontrar algo que pueda comenzar con Gamer si

43:06

Speaker A

ejecutas obtienes aquí Gamer Pero qué pasaría si yo selecciono ga Así nada más ejecuto y nos damos cuenta que no tengo valores lo que pasa es que cuando tú quieras buscar ahora que independientemente la palabra empiece con ga o termine con ga o que contenga

43:24

Speaker A

ga vas a colocar los porcentajes a al inicio y el final y de esta manera buscará las coincidencias que pueda obtener esa columna en este caso Gamer lo contiene y si me preguntaran aquellos productos cuya marca sea distinta o

43:37

Speaker A

diferente a la marca Z Bueno podemos tener c asterisco Front producto donde la marca có indicamos que sea distinto o diferente a Z podemos utilizar este símbolo de menor y mayor y la letra Z que en este caso es el valor de la marca

43:54

Speaker A

ejecuto y me debería salir los demás resultados que es x y H de los otros productos y estas son algunas condiciones simples que podemos ir aprendiendo de momento a medida que avancemos en el curso podemos hacer algunos ejercicios donde vamos a ver

44:07

Speaker A

algunas condiciones un poco más complejas pero esto es la base para poder entenderlas y en este capítulo veremos funciones de agrupamiento estas funciones nos van a salvar la vida vamos a poder obtener cálculos de algún campo numérico podemos encontrar la suma de

44:22

Speaker A

todos los valores de un campo en particular el promedio la cantidad en fin nos van a ayudar muchísimo y cómo lo vamos a emplear hagamos un Select asterisco from producto y vamos a obviar las condiciones por el momento y vamos a

44:37

Speaker A

aprender Por ejemplo si quisiéramos contar la cantidad de elementos que hay en esta tabla puedo utilizar la función count Y si ejecuto esto me va a devolver el número resultante que es la cantidad de elementos que tiene esta tabla

44:51

Speaker A

Okay si yo quisiera ahora encontrar el precio máximo de todo tod los registros de esta tabla producto Bueno voy a utilizar Max pero ahora ya no vamos a utilizar el paréntesis asterisco sino que vamos a utilizar el nombre de la

45:06

Speaker A

columna por el cual yo le voy a sacar el máximo ejecuto y te vas a dar cuenta que aquí tengo el precio máximo lo mismo podríamos hacer con el precio mínimo ejecuto y sale 9.99 Sí y lo mismo podríamos hacer para

45:21

Speaker A

encontrar la sumatoria ejecuto y nos vamos a dar cuenta que 63 9.97 Y si quiero encontrar el promedio abg average selecciono ejecuto y obtengo hace sentido todos estos comandos y las condiciones también se pueden realizar Por ejemplo si yo quiero contar la

46:03

Speaker A

cantidad de coincidencias de esta condición todos los productos que coincidan con esto podemos decir que el estado sea igual a uno obviamente como todos los campos tienen ese valor tendré tres pero si es que yo coloco cer0 ningún campo va a cumplir con esta

46:19

Speaker A

condición Entonces el contador será en cero como resumen estas funciones de agrupación nos van a salvar la vida más de una vez van a ayudar muchísimo para poder obtener información calculada sobre Campos numéricos aprendamos a utilizar el comando Group vibe Por ejemplo si yo

46:34

Speaker A

quisiera agrupar los productos por marca y contarlos cuántos coinciden por esa agrupación podemos hacer lo siguiente Miren esta es la lista en general de los datos que tenemos para poder hacer una agrupación vamos a decir lo siguiente hagamos un Select asterisco from la

46:51

Speaker A

tabla se llama producto nosotros vamos a aplicar aquí el operador Group by y vamos a agruparlo por el campo marca de esta manera si yo intento ejecutar el código nos vamos a dar cuenta que tenemos un error en la parte inferior

47:09

Speaker A

debido a que nosotros cuando estamos utilizando el operador groupby debemos indicar aquí entre las columnas a mostrar el campo del cual estamos agrupando en este caso me están saliendo solamente las marcas x Z y H las que habíamos tenido pero como yo quiero

47:25

Speaker A

contar con las coincidencias que hay en cada una de ellas podríamos decir aquí un count asterisco okay Y de esa manera al ejecutar nosotros podemos saber cuántos elementos hay por cada una de ellas yo le puedo asociar a este con un asterisco

47:43

Speaker A

un apodo para que al momento de ejecutarlo podamos verlo y para establecer ese apodo un alias a la columna podemos utilizar el operador as y decir aquí cantidad ejecutamos y te das cuenta que ahora la columna resultante dice

47:59

Speaker A

cantidad y las marcas de cada uno de ellos como tenemos un solo producto por cada marca pues Sale este resultado si ustedes insertan más de la misma marca obviamente van a tener más valores Por ejemplo si yo quisiera

48:11

Speaker A

actualizar el estado de un producto a cero Sí pero solamente el que tenga el id3 Vamos a ponerle en cero solamente el id3 Okay listo Ahora sí si Si volvemos a ejecutar solamente este pedacito c asterisco for producto vemos que tenemos

48:32

Speaker A

dos elementos con un estado uno y un elemento con un estado en cero podríamos agruparlo de esta forma podríamos decir aquí quiero agruparlo por el estado vamos a colocarle un from la tabla producto Group estado Pero como me interesa saber

48:53

Speaker A

también Cuántos elementos hay de acuerdo a esta agrupación puedo también contar las coincidencias que tengan según el estado y vamos a ponerle también cantidad sí count ejecutamos y nos damos cuenta que tenemos aquí en el estado uno hay dos y

49:16

Speaker A

en el estado cero hay un elemento Y si yo quisiera saber por ejemplo el precio promedio de esta misma agrupación en lugar de count podríamos colocar aquí average pero vamos a indicar que el promedio sea sobre el campo precio y

49:32

Speaker A

aquí podemos ponerle precio promedio sí Simplemente hay una descripción ejecutamos y podemos decir que del Estado uno la sumatoria obviamente promedio y podemos decir que en el estado uno de esos dos productos el promedio es 3.14 con 99 y del cero

49:49

Speaker A

como solo hay un solo producto es 9.99 validamos nuevamente miren ejecutamos otra vez el cel aterisco fromont product y te puedes dar cuenta que en el estado cer hay 9.99 Y en el otro es la sumatoria en la división entre dos s el

50:03

Speaker A

promedio Entonces como resumen el campo Group by nos va a permitir agrupar bajo un criterio para que nosotros podamos aplicarle un campo calculado asociado a esa columna que estás agrupando Y tú puedes agruparlo no solamente por una sola columna miren vamos a agruparlo no

50:18

Speaker A

solamente por el estado sino también por la marca quiere decir que si yo quiero colocar un criterio más tamb es necesario que yo coloque aquí también en la cláusula Select lanzamos y vemos el resultado un poco más disperso te das

50:34

Speaker A

cuenta del Estado uno con la marca x Este es el precio promedio sí o si no si quieren contarlo para que sea un poco más sencilla la consulta vamos a contar aquellos productos que tengan una agrupación por marca y por estado sí por

50:50

Speaker A

estado y por marca en ese orden entonces de estado uno con la marca x hay un solo elemento lo que emos aquí cantidad también para poder serlo mucho más consecuente con esto y tenemos el estado uno la marca x un elemento el estado uno

51:03

Speaker A

con la marca Z otro elemento el estado cero con la marca H otro elemento intentan insertar más elementos del mismo estado con la misma marca y se van a dar cuenta que la cantidad aumenta hagan ese ejercicio antes de seguir con

51:16

Speaker A

los demás temas otra cláusula que nos va a servir muy bien y que se acompaña en muchas ocasiones con el Group vibe es el hing esta cláusula fue ag Ada porque el uso del condicional We no puede aceptar

51:29

Speaker A

campos de agregación Campos calculados como lo hemos estado viendo Entonces yo puedo decir lo siguiente miren Qué pasa si yo quiero agrupar los productos por marca y contarlos pero solo Mostrar aquellos que tengan más de dos elementos miren habíamos aprendido esto no un

51:45

Speaker A

Select marca contarlos le habíamos puesto cantidad Y bueno ya vamos a hacer un poco eh El Salto de de línea para poder ordenar un poco más las sentencias y vamos a decir de la tabla producto agrupado por la misma marca Okay con

52:06

Speaker A

nosotros esto habíamos tenido ello uno uno de cada uno pero si a mí me dijeran Oye yo quiero agruparlos pero solamente Muéstrame aquellos que tengan más de dos elementos en la marca Entonces yo no puedo agregar una cláusula

52:23

Speaker A

we y dec aquí donde el count sea mayor a dos Porque si intento ejecutar esto Tenemos aquí un error en la parte inferior es una cláusula inválida no puedo agrupar o no puedo utilizar estos estas funciones de calculadas de

52:45

Speaker A

agrupación dentro de una cláusula we solamente puedo utilizar directamente el campo más no una función entonces para esto existe esta expresión que Les acabo de decir que es having y vamos a decir aquí solamente Muéstrame aquellos que tengan

53:03

Speaker A

de este campo calculado mayor a 2 si ejecuto ahora sí esta parte sí punto y coma no recordamos también puede ser útil si lo ejecuto nuevamente no tengo ningún resultado porque Obviamente todos tienen un solo elemento cambiamos por

53:22

Speaker A

estado en lugar de marca quiero que me muestre solamente aquellos estados que tengan cantidad mayor a dos ejecuto Okay no ve un resultado Pero podemos ponerle mayor igual a 2 porque recordemos que el mayor a dos va a tomar

53:38

Speaker A

de tres hacia arriba al colocarle mayor igual a 2 ya puedo ver que los estados que tienen el valor uno hay dos de ellos y me muestran coincidencias podríamos hacer por ejemplo también el promedio Sácame el promedio de todos los precios

53:54

Speaker A

con el estado activo uno o desactivado cer sí podemos colocarle Aquí también la cláusula average precio y decir aquí solamente Muéstrame aquellos cuyos promedios sea mayor a 300 de esa manera yo ejecuto este código y nos damos cuenta que me da como resultado

54:16

Speaker A

aquellos que su precio es mayor a 300 está agrupando por el estado y solamente me va a mostrar en el resultado aquellos que esa agrupación en el promedio tenga más de 300 mayor o igual a 300 Entonces esta cláusula having es muy útil porque

54:31

Speaker A

te va a permitir filtrar adicionalmente luego de un criterio de agrupación vamos a borrar todo el código que teníamos hasta el momento y vamos a concentrarnos Cómo está la tabla actualmente tenemos estos columnas ID nombre precio marca y estado y unos

54:46

Speaker A

valores que hemos venido insertando a lo largo del curso podemos ver esto representado en una hoja de cálculo y si te fijas aquí tenemos la tabla producto con las cosas que hemos V venido trabajando No ID nombre precio marca y

54:57

Speaker A

estado Cuál es el concepto de este video Cuál es el concepto de esta parte del curso tenemos que aprender lo que se conoce como llaves foráneas es decir donde una tabla pueda referenciar a otra y cuál es el objetivo supongamos que

55:11

Speaker A

nosotros tenemos un sistema que va a crecer Con el tiempo eh yo puedo ir registrando los valores del producto con la marca x y sí pero qué pasaría si por ahí yo tengo que actualizar el nombre de la marca porque

55:27

Speaker A

ya no se va a llamar así se va a llamar de otra forma tendría que irme a fila por fila a registro por registro y cambiar el nombre de la marca en los lugares donde está afectado o sea

55:40

Speaker A

tendría que hacer varios updates fila por fila según la afectación entonces lo que podríamos hacer es una tabla independiente llamada marca lo voy a llamar así que va a tener su propia llave primaria que es ID también las

55:54

Speaker A

llaves primarias se suelen tomar bajo el concepto de PK primary key recordemos ello sí PK primary key y Aquí vamos a tener algunas columnas más por ejemplo el nombre de la marca podemos colocar aquí el país de origen de la marca y

56:08

Speaker A

algunos Campos que tú quisieras asociar a esta marca en nuestro caso simplemente vamos a considerar estas cuatro columnas y aquí nosotros vamos a decir por ejemplo para la primera marca de nombre x Sí el país de origen Vamos a ponerle

56:24

Speaker A

acá Estados Unidos y el estado que está en true o sea está vigente quiere decir ahora que esta marca ya no va a referenciar solamente al nombre sino que tiene que apuntar al valor de la llave primaria de la otra tabla Así que en

56:40

Speaker A

lugar de X va a ser uno porque uno es el valor de la marca que está aquí pero lo que se recomienda sí no es obligatorio s no es obligatorio pero se recomienda que la columna que representa el enlace para

56:54

Speaker A

con la otra tabla conserve un nombre representativo de ello no que pueda facilitar la búsqueda entonces podemos colocarle acá ID marca y acá ID podemos decirle Aquí también que esto sea un ID marca y aquí podemos colocarle y de

57:12

Speaker A

producto sí para que sea un poco más representativo más visual lo que estamos escribiendo entonces aquí en y podremos decir la marca número dos marca y el país va a ser Brasil podemos ponerle acá true y aquí podemos colocarle el ID de

57:30

Speaker A

marca número dos Entonces esto es una llave foránea este ID marca es una foreign key se suele representar con fk y es una columna por el cual estás enlazando a la llave primaria de otra tabla con el objetivo

57:48

Speaker A

de que pueda ser fácil la representación Y si por ahí con el tiempo quieres cambiar el nombre de la marca solamente tendrías que cambiar aquí porque ya todos los otros lugares estarían apuntando al mismo código de marca al

58:00

Speaker A

código uno así que solamente harías el cambio en un solo lugar esto que acabo de explicar lo vamos a llevar ahora a código y para hacerlo sencillo no estar haciendo muchas manipulaciones de tabla vamos a eliminar la tabla y volverla a

58:13

Speaker A

crear para ello vamos a hacer acá un Drop Table y la tabla producto recuerde que cuando utilizamos este Comando de de Drop Table la tabla se destruye conjuntamente con los datos que esta tenga ejecuto listo ya no hay tabla no

58:30

Speaker A

hay marcha atrás Entonces ya no tengo datos si yo hago un sisco from producto al ya no existir la tabla tengo un error porque no se encuentra ello vamos a crear la tabla vamos a hacerlo Pero ahora con estas

58:43

Speaker A

consideraciones recuerdan este Comando que habíamos hecho al principio del curso cre producto y la estructura de la tabla que estábamos trabajando Bueno vamos a modificarlo un poquito vamos a hacer acá ID producto Okay vamos a decirle que no sea nulo y

58:59

Speaker A

que sea autoincremental nombre precio marca Okay marca ahora sería ID marca pero ya no va a representar como un campo barchart va a ser un int porque va a representar una llave foránea y cómo indicamos esa representación de llave

59:17

Speaker A

foránea Bueno antes de expresar esto es necesario que la tabla marca primero exista porque yo no voy a poder asociar algo que no existe previamente entonces hagamos un create table marca y aquí coloquemos los valores de esta tabla y

59:36

Speaker A

de marca Vamos a ponerle int not nul auto increment OK Vamos a ponerle nombre coloquemos un barchart de 20 Vamos a ponerle un país origen como esta en el ejemplo barch Vamos a ponerle 25 Vamos a ponerle un estado que lo

59:59

Speaker A

habíamos considerado como bullano listo esto haría mi primera tabla marca coma no se olviden de Definir la llave primaria que en este caso sería ID de marca Ahora sí seleccionamos esta primera tabla la ejecutamos y Listo ya la debemos tener

60:18

Speaker A

aquí en el lado izquierdo vamos a refrescarla Y tenemos la tabla marca ahora cómo hacemos para que producto pueda indicar en esta columna una referencia foránea a esta otra recordemos que la llave primaria en esta ocasión se va a llamar ID

60:32

Speaker A

producto vamos a hacer aquí una coma después de primary Ke y vamos a escoger foring key y vamos a escoger entre paréntesis la columna que va a serer esa referencia foránea esa columna se llama ide marca y va a referenciar a la tabla

60:52

Speaker A

marca la tabla marca en la columna y de marca muy importante los nombres no tienen que ser exactamente igual pero es una práctica muy habitual para poder indicar que una llave primaria se relaciona con una forania también Entonces miren tenemos la tabla producto

61:10

Speaker A

estamos indicando que tiene su llave autoincremental que es una llave primaria su nombre su precio ahora el ide de marca ya no es una simple columna de tipo texto ya no es un marchar es un int el estado se mantiene primer key lo

61:22

Speaker A

hemos hecho y en el foring key hemos indicado que la columna I de marca dentro de producto este de aquí sirve para referenciar a i de marca de la otra tabla marca seleccionamos ejecutamos y Listo Ya lo tenemos

61:39

Speaker A

refrescamos y ahora tenemos dos tablas Y con estas dos tablas podemos insertar datos a cada una de ellas primero insertemos en Marca inserto marca vamos a colocar aquí el nombre Recuerda que el ID marca es autoincremental el país de

61:59

Speaker A

origen el estado y values para indicar valores Vamos a ponerle el nombre marca x Okay en país de origen Vamos a ponerle Estados Unidos en estado Vamos a ponerle true hacemos el proceso de inserción ejecutamos y Listo Ya tengo la

62:19

Speaker A

primera marca podemos repetir esto para hacer una segunda Marca marca y y colocamos aquí Brasil ejecutamos s seleccionamos ejecutamos y ya tengo la marca si le hago un Select asterisco from marca te vas a dar cuenta que como

62:38

Speaker A

resultado tengo los dos registros insertados Aquí está marca x y marca y perfecto ahora intentemos insertar un producto haremos un insert into producto coloquemos el nombre del producto el precio el ID marca y el estado asignemos en valores lo siguiente

63:03

Speaker A

el nombre del producto Vamos a ponerle acá una televisión de 45 45 pulgadas Okay listo Ese es el nombre del producto el precio coloquemos 149.99 el ID marca ahora tenemos que colocar aquí el valor que representa la llave foránea en este caso vendría a ser

63:28

Speaker A

los valores que tenemos de la marca un o de la marca dos vamos a hacer esto que sea de la marca un Y luego el estado que es true se asocia como un un o cer que es activado o desactivado no Okay Listo

63:43

Speaker A

ya tenemos todo lo necesario podemos ejecutarlo y te vas a dar cuenta que aquí si ejecuto un Select asterisco from producto lanzamos el código y tenemos nuestro producto con esta información el nombre del ID el nombre del producto el

64:02

Speaker A

precio la marca a cual está referenciando y el estado Yo podría hacer lo mismo si quisiera insertar un segundo producto podemos ponerle por acá un mouse Gamer Vamos a ponerle aquí un 39.99 de la marca 2 ejecutamos este

64:22

Speaker A

pedazo de código y ya tendríamos otro elemento consultamos nuevamente la tabla producto y ahí está el mouse Gamer que acabo de insertar Entonces lo bueno es que ya estamos indicando que el ID marca aquí sirve una referencia de la otra

64:37

Speaker A

tabla Pero qué pasaría en este último ejercicio si yo intento insertar por ejemplo aquí un teclado Gamer sí le coloco el precio 59.99 pero me olvido de mandar algo aquí no lo mando y tampoco ID de marca indico

64:59

Speaker A

que lo voy a mandar sucederá algún error Será algo incorrecto ejecutamos y no tengo ningún error pero si busco en producto te das cuenta que se ha insertado el teclado Gamer el precio el estado pero en de marca tienes algo

65:16

Speaker A

llamado como nul nul en programación es un dato inexistente un dato que no sido inicializado básicamente esto es como un vacío entre comillas okay No es que sea un texto en blanco simplemente es como que algo no ha sido inicializado es un

65:34

Speaker A

valor nulo así se le conoce por qué ha pasado esto si te das cuenta esto puede ser algo incongruente porque yo No sabría A qué marca le pertenece esto pero hay situaciones donde nosotros tenemos que representar llaves foráneas

65:47

Speaker A

y a veces van a ser pobladas y a veces no Sí o sea a veces puede que tengas la referencia a otra tabla y a veces no bajo alguna regla de lo que estás construyendo es por eso que es flexible

66:01

Speaker A

pero si nosotros quisiéramos que esto sea forzosamente obligatorio que siempre se envía aquí lo que hubiésemos puesto originalmente es aquí el momento de crear la tabla producto hubiéramos puesto un not null para que sí o sí vaya datos pero ahora como la tabla está

66:18

Speaker A

creada yo necesito modificar la tabla para aceptar que ya no envíe y para eso vamos a aprender el siguiente concepto necesito modificar la tabla producto después de haberla creado si yo le hago un Drop Table estaría borrando por completo la tabla y tengo que

66:36

Speaker A

generar otra vez información entonces mejor hagamos un alter table este Comando nos va a permitir poder modificar una tabla para poder agregarle o pues Modificar un poco las características de las columnas pero tenemos que pensar también en la

66:51

Speaker A

integridad de datos no puede comprometer nuestra modificación con los datos ya existentes es decir tú no puedes Por ejemplo indicarle que cambie el tipo de dato de cadena de texto a un número sabiendo que ya existen datos de tipo

67:06

Speaker A

texto Entonces lo primero que vamos a hacer acá es lo siguiente si yo quiero modificar la tabla producto vamos a decirle aquí que quiero modificar modify la columna y de marca el cual es de tipo int not nul si y ejecutar esto

67:25

Speaker A

voy a tener un error Por qué porque tengo un dato nulo y my sql la base de datos no va a saber qué hacer con ese dato yo tendría que primero trabajarlo quitarle el nul Entonces primero tenemos que modificar aquí el campo nulo por

67:40

Speaker A

alguna marca ya sabemos el uso de esos comandos para hacer una actualización podemos emplear acá un update la tabla producto vamos a indicarle un set y de marca Vamos a ponerle la marca número dos donde el ID de producto sea igual al

67:57

Speaker A

tres sí Recuerden el web para poder indicar específicamente un registro en particular Entonces al número tres se le va a poner la marca número dos listo la ejecutamos y ahora sí están los datos poblados con esta integridad ya podemos

68:13

Speaker A

hacer este cambio por qué Porque los campos ya no hay ninguno nulo y obedece Este cambio no haber ningún conflicto ejecutamos y El Comando fue creado exitosamente ya está ejecutado no hay ningún problema y cómo lo podemos probar

68:26

Speaker A

miren vamos a intentar ingresar Aquí vamos a ponerle un televisor sí de 32 pulgadas y coloquemos aquí pues 99.99 me estoy olvidando de la marca a propósito pero ahora como el campo tiene not nul debería tener conflicto y no

68:46

Speaker A

puedo insertar y acá abajo tú puedes ver que tengo un error el campo y de marca no tiene ningún valor por defecto Sí o sea bás bsicamente no hemos enviado nada y no y no sabe cómo la base de datos

68:57

Speaker A

otorgarle algún valor Entonces sí o sí necesitas pasarle el ID de marca para que esto funcione y Aquí vamos a ponerle la marca número uno por ejemplo listo ejecutamos y ahora sí funciona a la perfección consultamos la tabla producto y ahí está el nuevo

69:20

Speaker A

elemento hemos visto que podemos insertar en la tabla producto haciendo referencia a una llave foránea pero cada vez que yo busco en la tabla producto a un Select nos damos cuenta que solamente tengo el ID Cómo haría para poder ver el

69:37

Speaker A

nombre de la marca sin alterar la tabla es decir crear una consulta donde me pueda mostrar el nombre de la marca sí Solamente como consulta entonces lo que podemos hacer es aprender el uso de los joins específicamente Vamos a aprender

69:54

Speaker A

Inner joint para eso vamos aquí abajo y hagamos lo siguiente hagamos un Select asterisco Front y coloquemos la tabla producto Okay esto de aquí ya sabemos que me devuelve la información de dicha tabla pero yo quiero unirla quiero

70:10

Speaker A

enlazarla con la tabla marca para poder sacar de ahí el nombre para poder unirla utilizamos estas palabras especiales llamada Inner joint donde nosotros vamos a decir aquí la otra tabla que marca y tenemos que indicar a través de la

70:27

Speaker A

palabra on Cuáles son los campos en común de ambas tablas Cuál es el que hace el match la coincidencia entre la llave primaria y la forania básicamente es de la tabla producto punto y de marca igual a la

70:44

Speaker A

tabla marca punto y de marca si yo ejecuto todo esto nos damos cuenta que me sale como resultado de la cons resulta absolutamente toda la información de la tabla producto y de producto nombre precio y de marca y estado y también

71:01

Speaker A

toda la información de ID marca nombre país de origen y estado pero por ejemplo si solo me interesa tener toda la información de producto y reemplazar ID marca por nombre de la tabla marca Bueno lo puedo hacer Recuerda que no estoy

71:14

Speaker A

alterando las tablas solamente estoy mostrando resultados de una consulta y para eso vamos a colocarle un apodo a cada tabla hemos aprendido la palabra as para indicar dicho apodo pero también podremos decir directamente una p una e una x lo que tú gustes seguidamente de

71:29

Speaker A

la tabla para que indicar ese apodo y en marca Vamos a ponerle m de esa manera estamos indicando que ya no necesito colocar todo el nombre de la tabla sino que puedo apoyarme en dichos alias en estos apodos y solamente me interesa

71:44

Speaker A

extraer del campo de producto el ID producto me interesa extraer también el nombre de producto el precio de producto la marca estaría en la otra tabla nombre por eso coloco aquí m. nombre y por último el estado del

72:04

Speaker A

producto de esa forma yo ejecuto todo esto y nos damos cuenta que ahora tenemos este resultado y de producto nombre precio el nombre de la marca y el estado inclusive este le podríamos colocarle el apodo marca ves y está el nombre aquí no o también

72:26

Speaker A

recuerda que podrías utilizar as marca ejecutas y también está aquí entonces de esta manera Nosotros hemos construido un query utilizando la información que está en otra tabla gracias a que están relacionadas a través de una llave foránea y este uso

72:42

Speaker A

de lon es muy común y va a ayudarte demasiado cuando tú quieras sacar información de más tablas aquí en el ejemplo lo hemos hecho con dos pero si quisiéramos seguir ahondando agregando otras tablas hubiésemos colocado otro Inner Joy más y unirlo con la otra tabla

72:59

Speaker A

que nosotros necesitamos pero bueno de momento solo tenemos dos tablas y este sería su resultado hemos aprendido ler join Y esta es una imagen que suele estar muy popular en internet de diferentes colores pero al final la idea

73:10

Speaker A

es la misma las diferentes condiciones que podemos tener en cuanto a los joins Inner joint left joint right joint y full outter join básicamente es la manera de cómo se van agrupando las tablas para hacer uniones intersec iones

73:24

Speaker A

o tener mayor predominio entre una tabla y otra por ejemplo la Inner joint viene a ser la intersección entre dos tablas lo que hay en común una con la otra lo que hemos hecho en el ejercicio anterior se han dado cuenta que me he dado ambas

73:37

Speaker A

tablas cuando coinciden un registro con la otra para poder ver esto de una manera distinta vayamos al código y se acuerdan que nosotros habíamos modificado la tabla para que no acepte nulos Sí vamos a cambiar ahora esto y le

73:51

Speaker A

vamos a decir que acepte nulos Okay volvamos a esa parte vamos a ejecutarlo Listo Ya está ya puede aceptar nulos por lo tanto yo podría insertar un producto sin la necesidad de indicar una marca y por qué lo voy a hacer porque quiero

74:07

Speaker A

demostrar justamente estos de los joins vamos a cambiar Aquí vamos a quitarle y de marca intentemos insertar aquí eh sin el código de la marca un ps5 Okay Vamos a ponerle 499.99 no le voy a poner marca Sí porque

74:26

Speaker A

ya hemos alterado para que la tabla vuelva a aceptar nulos ejecutamos Listo Ya está podemos lanzar nuevamente el query de producto que habíamos hecho y fíjate bien que tengo el producto C ps5 con el campo ID marca nulo bien si yo ejecuto la sentencia

74:45

Speaker A

anterior de linear join nos damos cuenta que solamente tenemos cuatro registros en lugar de los cinco y Y por qué Porque si nos vamos a la Gráfica nuevamente solamente sale la intersección lo que hay en común en ambos Entonces como en producto los

75:02

Speaker A

cuatro primeros tenían asociación con marca Pues solamente se muestran esos cuatro El quinto al no tener nada que ver con marca porque estaba en nulo ya no había nada que Mostrar Por eso nos está mostrando aquí Entonces qué pasaría

75:15

Speaker A

si cambiamos el linear joint por el left join de esa manera estamos indicando que nos importa más o predomina más que se mantenga los datos de la tabla de la izquierda en este caso left está haciendo a producto independientemente

75:30

Speaker A

si en la derecha se presentan o no O sea en la tabla marca están o no Así que si ejecutamos esto nos damos cuenta que ahora sí sale la información de lo que tenga la tabla producto independientemente si es que lo

75:44

Speaker A

encontró o no en la tabla de marca y como te das cuenta salen los cuatro primeros con los nombres de la marca pero el quinto al no haber ningún registro se sigue manteniendo nulo pero aparece en los resultados y con eso

75:58

Speaker A

hemos visto aquí el left joint lo mismo aplicaría en la derecha va a importar lo que tenga la tabla marca en este caso independientemente de la tabla producto Vamos a ponerle aquí right ejecutamos y vemos que el resultado

76:15

Speaker A

cambia acá prevalecen más los nombres de la marca X y Y sí el elemento quinto no sale el que habíamos puesto p porque eso es parte de la tabla producto y no le interesa aquí más interesa que salga Sí

76:28

Speaker A

o sí las cosas de marca si hubiésemos tenido una marca que no tiene ninguna asociación por ejemplo intentemos crear acá una marca adicional una marca Z y le vamos a poner aquí país Perú ejecutamos y nuevamente lanzamos la

76:47

Speaker A

consulta con r join te vas a dar cuenta que tenemos la marca Z y los demás Campos como nulo porque no hay ninguna asociación con la otra tabla pero prevalece la respuesta por el right join Si volvemos nuevamente el ejercicio

77:02

Speaker A

left join va a importar más los campos de la izquierda en este caso la tabla producto y obtenemos el mismo resultado y as hacemos Inner join solamente aquellos Campos donde coincidan en ambas tablas solamente esos cuatro y repito el

77:18

Speaker A

r join solamente la tabla de la derecha que en este caso es marca Y por último el full join es una Unión total básicamente Esto es para poder indicar que me interesa todos los registros de ambas tablas Y por último tenemos el

77:31

Speaker A

full outer joint que mysql se expresa uniendo la unión de la izquierda con la derecha en otros motores de base de datos se suele utilizar esta palabra directamente pero acá en mysql se hace así Select from vamos a poner aquí left

77:45

Speaker A

join Okay y vamos a unirlo Union con el resultado de la de derecha es decir haciendo un right join Tenemos aquí con right join okay Entonces tenemos un left Y tenemos un right Y los estamos uniendo y con eso tenemos Prácticamente todo el

78:06

Speaker A

grupo ejecutamos y vemos el resultado en la parte de abajo me salen absolutamente todos los campos porque me interesa justamente este mismo concepto una unión entre todas las tablas un full outer joint bueno como consejo final diría que

78:21

Speaker A

lo más usual es hacerlo Inner joint cuando quieres tener registros coincidentes en ambas tablas y por ahí cuando quieras hacer alguna distinción entre una y otra left y right son de los más comunes no te recomiendo abusar mucho del full utter joint porque puede

78:35

Speaker A

haber problemas de rendimiento cuando la tabla contiene muchísimos datos Y antes de acabar este bloque aprendamos un join más pero este join Hay que tenerle muchísimo cuidado en realidad es el Cross joint Y esto es un producto cartesiano entre los elementos de ambas

78:52

Speaker A

tablas hay que tener muchísimo cuidado porque puedes tener muy serios problemas de rendimiento cuando las tablas tengan muchísimos datos Y bueno si tú necesitas tener esa característica de hacer algún producto cartesiano podríamos hacer esto vamos a copiar uno de ellos okay Y para

79:09

Speaker A

hacer el Cross join no necesito una columna de enlace O sea no necesito indicar en la cláusula on sobre dos columnas simplemente vamos a decirle aquí las columnas que yo quiero mostrar Sí esa es la tabla producto y vamos a

79:23

Speaker A

hacer darle un Cross join a la otra tabla que en este caso es marca listo selecciono veo resultado y tengo un producto cartesiano de todos los elementos de ambas tablas tengo muchísimo más registros y se están repitiendo por el producto

79:42

Speaker A

cartesiano Así que repito este Cross joint no necesitas indicar explícitamente la columnas de enlace solamente ambas tablas y las columnas que tú quieras Mostrar de ese resultado hay que tener mucho cuidado con esto esto debido a que puede ser muy

79:54

Speaker A

perjudicial a nivel de rendimiento hasta el momento hemos aprendido la interacción en dos tablas hemos visto ahí el concepto de las llaves foráneas pero en una situación más compleja en un ambiente laboral es probable que te topes con muchas tablas

80:08

Speaker A

y estas tengan relaciones y las relaciones pueden definir una cardinalidad y ese es el tema de este video y para ello tenemos que verlo de manera un poco más gráfica dentro de mysql Word rench he vuelto aquí a

80:21

Speaker A

Windows para poder mostrarles esto porque no me daba estas opciones visualmente muy claras Pero bueno tema es probable que sea un tema de mi máquina pero independientemente del sistema operativo van a encontrarlo aquí al momento de la casita en Home este

80:35

Speaker A

icono de diagramas y en la instalación por defecto suele agregar un diagrama que viene ahí de ejemplo dentro de la instalación de Word bench si le damos click y abrimos el diagrama te vas a dar cuenta que esto es un ejemplo de una

80:50

Speaker A

base de datos de películas hay información de venta de una película la información del país de la película de la película misma los actores etcétera etcétera y todo lo que estás viendo en pantallas es un modelo de entidad

81:03

Speaker A

relación básicamente Cómo se están interaccionando entre las tablas hay relaciones de uno a uno de uno a muchos de muchos a muchos etcétera este tipo de cardinalidades expresa el grado de pertenencia entre una tabla con la otra por ejemplo si queremos verlo esto de

81:22

Speaker A

una manera un poco más aterrizada según lo que hemos hecho vamos a crear nuestro propio diagrama vamos aquí nuevamente a este icono y hacemos clic en el botón más se abre un editor hagamos clic en agregar diagrama y aquí tenemos este

81:37

Speaker A

Lienzo para poder hacer esas gráficas Bueno a la parte derecha tenemos algunas tablas de plantillas pero nosotros vamos a tratar de hacer esto desde cero para entender un poco sobre ello no miren hago clic aquí selecciono ya tengo mi primera tabla la

81:53

Speaker A

tabla que hemos venido trabajando es la tabla marca y producto por ejemplo marca sí abajo podemos ir modificando algunas cosas y de marca es un tipo int es una llave primaria no nulos también teníamos el nombre una descripción podemos

82:11

Speaker A

ponerle que no acepte nulos y teníamos Aquí también un estado y Aquí vamos a ponerle que esto sea un campo de tipo bullano que tampoco acepte nulos bien teníamos la tabla producto podemos hacer aquí la otra tabla escogemos el nombre producto y

82:29

Speaker A

empezamos a agregarle sus características y de producto no nulos autoincremental también me había olvidado en la parte anterior volvemos a la tabla marca autoincremental la llave primaria en producto Vamos a ponerle nombre producto Vamos a ponerle aquí el

82:48

Speaker A

precio y también el ID de marca que era la llave foránea si usted recuerdan y el estado bueno los campos simplemente es para poder representar lo que ya hemos venido trabajando es decir tú puedes hacer esto de manera visual también

83:01

Speaker A

puedes personalizar la cantidad de caracteres en precio Vamos a ponerle un campo de tipo eh doble Sí para representar un poco de números en ID marca para mí va a ser una llave de tipo int para relacionarla más adelante y el

83:15

Speaker A

otro va a ser bullan en ID marca voy a hacer que no acepte nulos quiero obligar que siempre se vaya un código de marca y bueno nosotros vamos a decir también en los otros Campos que no se acepte nulos

83:29

Speaker A

Cómo expresamos que este ID marca sea una llave foránea Bueno nos vamos a la parte inferior que dice foreign Keys y Aquí vamos a ponerle un apodo una alias a esta llave el alas se suele indicar de esta manera fk producto marca o sea la

83:44

Speaker A

tabla principal hacia la otra tabla es el nombre que tú quieras otorgar la tabla referenciada quiero referenciar a la tabla marca y dentro de la tabla producto donde me encuentro vamos a indicar que el ID marca es el que hace

83:56

Speaker A

la referencia Okay el ID marca es el que hace la referencia con el mismo ID marca también de la otra tabla Y si te diste cuenta aquí tenemos una cardinalidad expresada básicamente lo que quiero dar a entender aquí es que una marca puede

84:11

Speaker A

tener muchos productos o muchos productos pueden pertenecer a una marca y esto hace sentido no en realidad no hay una regla que yo te pueda decir que siempre va a haber esta realidad en dos tablas de este tipo lo que tú quieras dar a entender

84:27

Speaker A

aquí va a depender de la necesidad de lo que estás programando de lo que estás diagramando para representar una realidad de una empresa de algún proceso vas a encontrar quizás recomendaciones de lo que se va haciendo en la industria

84:40

Speaker A

para determinados casos Pero al final es lo que tú quieras representar Por ejemplo si nosotros por ahí tenemos otra tabla llamada ventas vamos a crear por aquí la taa tabla ventas supongamos que esta tabla venta Vamos a ponerle por acá que tiene

84:57

Speaker A

el ID venta va ser una llave primaria no nula autoincremental y vamos a tener aquí la fecha de la venta Okay este va a ser un campo de tipo fecha se le suele otorgar daytime no nulo vamos a ponerle y vamos

85:16

Speaker A

a decirle Por ejemplo Qué producto se llevó pero bueno muchas ventas pueden tener muchos productos y De igual forma muchos productos pueden pertenecer a muchas ventas ahí hay una relación de muchos a muchos entonces si yo necesito expresar una relación de muchos a muchos

85:34

Speaker A

hay recomendaciones que se suelen hacer de crear una tabla intermedia para ello y la mano izquierda inferior vas a encontrar Estas cardinalidades que te estoy diciendo por ejemplo si nosotros quisiéramos expresar de muchos a muchos podríamos decir esta con

85:49

Speaker A

esta y te vas a dar cuenta que tenemos una una tabla intermedia generada automáticamente por mysql Para proponer este tipo de relaciones de muchos a muchos y aquí estoy diciendo que producto tiene venta No acá le podemos poner un nombre un poco más

86:04

Speaker A

adecuado producto venta y aquí están las referencias a ambas tablas y tú puedes agregarle más Campos a esa tabla por si tú quisieras expresar algunas cosas más por ejemplo el precio que se vendió en esa venta puedes agregarle quizás un

86:18

Speaker A

descuento en fin Eso ya depende de lo que tú quisieras ir agregando Pero esto también lo pude haber hecho de otra forma yo puedo prescindir de esto okay lo borro y podríamos tener una tabla también indicada detalle venta y

86:35

Speaker A

podríamos hacer lo siguiente detalle venta tiene la columna y de venta y de detalle Okay también podemos tener la columna producto o sea el el producto que se está llevando y también podemos decir aquí el precio de venta y podemos

86:54

Speaker A

colocarle el descuento y bueno más cosas que tú quisieras ir otorgando no aquí podemos ponerle un doble aunque también hay mejores tipos como decimal o tipo moneda Pero bueno Aquí vamos a ponerle doble para hacerlo sencillo y Aquí vamos

87:09

Speaker A

a ponerle un int y de venta no tendría que ser la llave primaria únicamente porque se estaría repitiendo con esta parte sino que el conjunto de ambas serían las llav primaria compuesta es decir la unión de estos dos vendría a

87:27

Speaker A

darme una identidad de esta llave yo puedo decir para el primer detalle de la venta uno tiene esta información para el detalle dos de la venta uno también tiene esta información para el detalle tres de la venta uno tien esa

87:39

Speaker A

información en fin la llave primaria compuesta es un concepto donde tú quieres dar a entender que la agrupación de dos columnas hace la unicidad de un registro hace que no se repita ese registro y bueno aquí tú también puedes

87:53

Speaker A

relacionar el tema de venta con detalle venta podríamos ir acá a la parte de foreign Keys y decir aquí fk detalle Sí con venta por ejemplo vamos a referenciar a la tabla venta y decirle que la columna de enlace y de

88:10

Speaker A

venta porque estamos enlazándolos tienes una relación nueva una venta tiene muchos detalles ves una venta Acá hay un palito tiene muchos detalles como una patita de gallo mucho muchos detalles entonces también es una forma de cómo yo puedo expresarlo y en

88:27

Speaker A

producto con detalle venta también hay otra relación con esta tabla te das cuenta miren entramos a detalle venta agregamos otra llave foránea fk detalle producto y aquí lo enlazamos con la tabla producto específicamente con esta columna perfecto y ahí está algo muy

88:47

Speaker A

similar lo caso anterior que teníamos una tabla intermedia para representar esta relación de muchos a muchos en de detalle aquí también Debería ser int para mantener un mejor orden en esta parte okay Entonces tú puedes tener muchísimas tablas y relacionarlas unas

89:04

Speaker A

con la otra la cardinalidad la vas a indicar tú de acuerdo a lo que quieras expresar de una realidad de una problemática de lo que quieras resolver ya con el tiempo te vas a estar dando cuenta en qué momento agregar esas

89:15

Speaker A

llaves foráneas en qué momento agregar esas llaves primarias compuestas en qué momento hacer una relación partida para poder hacer mucho a muchos eso es cuestión de práctica te recomiendo también profundizar esto con lecturas adicionales como la teoría de la

89:28

Speaker A

normalización de base de datos te va a ayudar muchísimo para poder mantener una congruencia cohesión y Claridad Al momento de diseñar tus modelos de base de datos y bueno Esto de aquí no solamente queda en dibujitos podemos generar el contenido sql de esto podemos

89:45

Speaker A

ir aquí a la sección de file export y bueno muy aparte de exportarlo como una imagen en el diagrama podemos a hacer gener el Script damos clic en esta opción y vas a ubicarlo en una carpeta de tu agrado en

89:58

Speaker A

mi caso Vamos a ponerle por acá sql y podemos ponerle aquí e-commerce sql listo todas estas opciones no escojas ninguna manten así por defecto siguiente exportas todas las tablas y mira aquí está el Script que se está generando para poder diseñar esta

90:21

Speaker A

estructura aquí está la creación de la tabla detalle de venta la creación de la tabla venta y sus relaciones llave foráneas a que se referencia una con la otra prácticamente tú puedes empezar diagramando el modelo y generando el

90:34

Speaker A

Script a partir de ella para que no tengas que estar haciendo los comandos manualmente que hemos venido trabajando desde el comienzo del curso no create Table alter Table y todo ello volviendo al código ahora vamos a ver el tema de

90:46

Speaker A

los procedimientos almacenados o en inglés Store procedures estos objetos de base de datos nos van a servir para encapsular una consulta que puede ser de la más sencilla a la más compleja y realmente Para qué nos sirve bueno

90:59

Speaker A

muchas ocasiones no es necesario volver a escribir todo el código de la consulta Para volver a ejecutarlo las veces que yo quisiera sino que podríamos atrapar todo esto en una especie de variable objeto llamémoslo así para poder ejecutarlo en el momento que nosotros

91:15

Speaker A

gustemos por ejemplo este código que es relativamente complejo cómo lo vamos a encapsular dentro de un procedimiento almacenado vamos a hacer lo siguiente vamos a colocar Aquí esta sintaxis colocamos create procedure Vamos a ponerle el nombre del procedimiento voy a ponerle listar

91:35

Speaker A

producto marca el nombre es lo de menos Aunque es usual ver la palabra SP como prefijo en los procedimientos almacenados por el nombre Store procedure vamos a indicar aquí begin Y por último un bloque end ahora vamos a a

91:52

Speaker A

también que expresar un bloque delimitador es decir necesitamos colocar un delimiter que básicamente son unos caracteres que va a indicar el inicio y el fin de todo este bloque que estás escribiendo aquí colocamos esto y de limiter punto y coma todo esto que ves

92:10

Speaker A

aquí es meramente sintaxis de mysql cómo trabaja este tema de los procedures yo puede haber puesto esto acá y aquí también trabajarlo de esa manera no hay ningún inconveniente pero vamos a dejarlo con esos Slash dentro del Bin es

92:25

Speaker A

aquí donde vamos a colocar todo el código de la consulta que nosotros gustamos vamos a ponerlo por aquí y si te fijas se está como que englobando a la consulta Dentro de este bloque llamado SP listar producto marca sombre

92:40

Speaker A

todo esto ejecutamos y nos dice que el procedur ha sido creado correctamente Cómo invocamos ahora el resultado de esto utilizamos call y el nombre del procedimiento listo con esto y punto y com al final ejecutamos y vemos el resultado del

93:00

Speaker A

procedimiento que es básicamente la consulta interna que este tiene y es como si hubiera invocado esta consulta pero ahora Estamos resumiendo a través de este breve llamado y cuando tú trabajas con algún lenguaje de programación a veces hay situaciones

93:13

Speaker A

donde tienes un queri tan complejo que tiene muchos años en la empresa y que muchas aplicaciones lo utilizan es por eso que se emplea un procedimiento almacenado para que pueda ser consumido por diferentes tipos de aplicaciones es algo muy usual ver ello y Qué pasaría si

93:27

Speaker A

el procedimiento necesita parámetros podríamos hacer algo diferente claro miremos podemos copiar todo este mismo bloque para generar un nuevo procedimiento vamos a ponerlo acá abajo y vamos a decir aquí SP punto listar producto y vamos a recibir un nombre

93:46

Speaker A

para que esto pueda tener un poco de de diferencia Este es un parámetro de entrada podemos colocarle aquí eh product name esta variable que sea de tipo bar charar Vamos a ponerle aquí que por ahí tenga 50 Okay perfecto este

94:03

Speaker A

product name es la variable que va a llegar al procedimiento Cómo haría para recibirla bueno cambiamos el query y hagamos uno más sencillo un Select asterisco from producto donde el nombre del producto sea igual a la variable que

94:19

Speaker A

estamos recibiendo en el procedimiento coloquemos product name es decir este nombre viene la variable product name lo he puesto en inglés para ver una breve diferencia con los columnas que estamos trabajando en la base de datos sombre todo ejecutamos ya está el procedimiento

94:35

Speaker A

creado ahora lo llamamos con SP listar producto y me faltaría mandarle aquí entre simple comillas el nombre del producto teníamos un producto si mal no recuerdo ps5 podemos hacer aquí el Call enviamos Y tenemos el resultado de lo que estaba

94:56

Speaker A

en el elemento número cinco teníamos otro producto llamado Mouse Gamer lanzamos y aquí está el resultado Entonces como ven los procedimientos almacenados son como porciones de código que encapsulan algún query que tú quisieras resolver más adelante para que

95:13

Speaker A

con una simple llamada tú puedas tener resultado lo que es programado internamente ahora veamos el uso de las transacciones hay ocasiones donde nosotros tenemos que procesar datos Pues esta información puede ser un poco sensible si es que nos equivocamos

95:28

Speaker A

Entonces es conveniente abrir una transacción confirmarla cuando estamos seguros o hacer una marcha atrás llamada rollback en el caso nos hayamos equivocado cómo lo vamos a lograr Bueno vamos a iniciar una transacción utilizando esta palabra reservada Start transaction seguidamente debajo de esta

95:49

Speaker A

vamos a hacer las cláusulas que nosotros quisiéramos a trabajar por ejemplo vamos a actualizar los campos de producto sí update producto set estado igual a 0 ejecutamos esta primera línea y ya tenemos una transacción iniciada ahora vamos a actualizar todas las columnas

96:09

Speaker A

estados de la tabla producto a cero Listo Ya está actualizado si es que yo hago un Select asterisco fromont producto nos vamos a dar cuenta de los valores que tenemos y te das cuenta que todos están en cero Pero qué pasaría si

96:25

Speaker A

es que yo abro una nueva sesión de la base de datos aquí vuelvo a conectarme tengo una nueva instancia Esta es la anterior esta es la nueva vamos a conectarnos a e-commerce perfecto ahora consultemos a la tabla producto de esta manera te vas a dar

96:44

Speaker A

cuenta que todos tienen el estado número un Pero por qué si aquí sale que es cer0 miren vuelvo a ejecutar en la primera sesión siguen siendo cero pero en la segunda siguen estando en uno qué es lo que pasa que en la primera sesión el

96:58

Speaker A

cambio se mantiene en este contexto no está confirmado todavía para confirmarlo necesito utilizar esta palabrita llamada commit simplemente la ejecuto y con eso ya confirmé el cambio Ahora sí vuelvo a hacer Cele asterisco for producto en la sesión uno salen cero me voy a la sesión

97:19

Speaker A

dos vuelvo a consultarlo y ahora sí sale en cero porque ya fue confirmado el cambio para que pueda estar modificado en la base de datos Y qué pasaría en la situación donde yo quizás me equivoque en algo supongamos que yo quiero hacer

97:32

Speaker A

un Drop de la tabla producto vamos a iniciar nuevamente la transacción Okay y vamos a hacer no un Drop sino un delete vamos a borrar la Data un delete from producto Entonces yo puedo ejecutar esto y sale que las sentencias fueron

97:51

Speaker A

eliminadas si busco en producto no tengo datos pero si busco en la otra sesión Ahí están los datos lo mismo si por alguna razón Yo me equivoqué y quiero hacer como una especie de control Z de este último proceso en lugar de

98:06

Speaker A

confirmarlo con comit utilicemos un rollback punto y coma lanzamos esto y los cambios anteriores no fueron efectuados volvemos a preguntar en producto en la sesión uno y aquí están nuevamente los datos y preguntamos en la sesión dos siguen los datos entonces

98:24

Speaker A

repito este tema de las transacciones puede ser muy útil cuando nosotros queremos hacer algún proceso hacer la confirmación de manera manual con un comit o hacer una marcha atrás con un rollback por último Vamos a aprender a cómo poder generar un backup una copia

98:39

Speaker A

de seguridad de la base de datos que hemos estado trabajando y también Cómo poder restaurarla para ello nos encontramos en la sesión donde estamos trabajando y vamos a la parte que dice administración ubicamos el punto que menciona sobre Data export hacemos clic

98:56

Speaker A

y escogemos la base de datos que queremos exportar seleccionamos las tablas que queremos también indicar en esta exportación en este caso marca y producto vamos a exportarlo en un archivo de extensión sql en mi caso vamos a ubicarlo en un directorio aparte

99:12

Speaker A

voy a ponerlo en documentos y coloquemos aquí e-commerce sql listo ahora empezamos y generamos con Start export listo la exportación fue exitosa si buscamos en la carpeta documentos vamos a encontrar aquí que tenemos el archivo ecommerce puns lo voy

99:31

Speaker A

a abrir con un editor y vemos que aquí me ha generado la exportación de los comandos para poder crear la tabla que hemos trabajado para poder la tabla producto marca y empezar a insertar los datos miren inserito producto la

99:45

Speaker A

información que hemos estado trabajando Esta es otra forma de ser inserto no colocar varios valores en la misma expresión value y también arriba tenemos la marca no la marca que se ha insertado para marca x y y z genial ahora cómo

99:57

Speaker A

hacemos para poder restaurar esto vamos a crear una nueva base de datos para ver cómo podemos restaurar esta copia que hemos hecho este backup Así que para esto vamos a hacer aquí El Comando que ya habíamos aprendido create database y

100:12

Speaker A

le vamos a poner tienda nombre diferente ejecutamos listo podemos hacer un refresh aquí y vamos a ver la nueva base de toos tienda perfecto Cómo podríamos hacer la importación Bueno vamos a hacer aquí administración Data import un restored y vamos a importarlo mediante

100:35

Speaker A

un archivo buscamos el archivo en nuestro caso es el ecommerce.sagaji.com.mx Ahora sí yo puedo hacer las consultas respectivas podemos hacer acá use tienda y si hacemos el Select asterisco from producto te vas a dar cuenta que hay tabla producto pero ahora en la base

101:09

Speaker A

de datos tienda vemos acá en esquemas refrescamos y vemos que dentro de tienda están las tablas que también hemos creado en la base de datos e-commerce Y de esa manera hemos aprendido como exportar nuestra Data y volver a

101:23

Speaker A

importarlo para tenerlo ahí como un respaldo Gracias por llegar hasta aquí y suscribirte al Canal con todo lo he aprendido en este curso Ahora sí realmente sabes sql gracias Nos vemos hasta la próxima

Topics: SQL MySQL Bases de datos relacionales Instalación MySQL MySQL Workbench Comandos SQL JOINs Procedimientos almacenados Transacciones SQL Respaldo y restauración de datos

Estudia este vídeo

- [Tarjetas de estudio de este vídeo](https://sozai.app/es/tools/ai-flashcard-generator/?from=transcript&id=75722)
- [Cuestionario de este vídeo](https://sozai.app/es/tools/quiz-generator/?from=transcript&id=75722)

Gratis, hecho por IA a partir de esta transcripción. Sin registro.


---
This is the markdown twin of https://sozai.app/transcript/curso-sql-desde-cero/ — the same content, without the markup.
Published by SozAI (https://sozai.app). Reuse and quotation are allowed with attribution and a link back.
Machine-readable index: https://sozai.app/llms.txt · data API: https://sozai.app/api/
