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.
Full Transcript — Download SRT & Markdown
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...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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í
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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í
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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á
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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í
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:SQLMySQLBases de datos relacionalesInstalación MySQLMySQL WorkbenchComandos SQLJOINsProcedimientos almacenadosTransacciones SQLRespaldo y restauración de datos











