No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de SQL y MySQL

Curso de SQL y MySQL

Alberto Alcocer (Beco)

Alberto Alcocer (Beco)

Comando CREATE

7/24
Recursos

Aportes 95

Preguntas 18

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hola a todos! Me gustaría compartir con ustedes un tutorial que elaboré para entender mejor el tema de InnoDB y MyISAM, sus ventajas y como podemos implementarlo en nuestras propias bases de datos 💪🏼

InnoDB y MyISAM: El ying yang de MySQL ☯🐬

Sin menospreciar, creo que el profesor tiene mucha experiencia pero en términos pedagógicos esta tomando los temas muy rápidos y la experiencia de aprendizaje deja mucho que desear. Espero puedan rehacer el curso.

Tipos de tablas de Bases de datos

**MyISAM **

  • Muy directa
  • Muy rapida
    -Las operaciones son 1:1
    - La velocidad de Lectura y escritura es mayor

** InnoDB**

  • Es más nueva
    -Es mas robusta
  • Mas recuperable(En caso de falla en el Disco Duro)
    ** - Es mas lenta**

RESUMEN:


En esta clase empezaremos creando las diferentes tablas que requerimos para las operaciones. La cantidad de tipos de datos en MySQL es enorme, en el sistema de archivos está la lista de de tipos y subtipos de datos.
Dos principales tipos de tablas por defecto:
innoDB y Myisam
InnoDb es un tipo de tabla robusta, segura en caso de fallas en disco duro y es lenta.
Myisam es una tabla directa, sencilla, y las operaciones y transaccional 1 a 1. La lectura y escrituro es mayor.

Estas condiciones afectan la estrategia en el momento de crear la base de datos.

***Tablas que crecen lento: Hacerlas en innoDB para realizarlas robustas.
***Tablas que crecen rápido, utilizamos mucho y tienen acceso a disco duro: Hacerlas en Myisam para darles agilidad al sistema

La clase se debería llamar motores de almacenamiento

2 Tipos de Tablas en MySQL :

  • InnoDB .- Es una tabla de BD, mas nueva, mas robusta, mas recuperable en caso de que haya alguna falla en el disco duro pero es un poco mas lenta.

  • MyISAM .- Es una tabla de BD muy directa, muy sencilla, muy rápida y las operaciones y transacciones son completamente uno a uno. La velocidad de lectura y escritura es mayor.

INDICES

Un índice es un puntero, que es básicamente un espacio en memoria, que en MySQL hace referencia a a los datos de cierta cantidad de filas o tuplas de una serie de columnas.
Ahora en MySQL existen diferentes formas de representar un índice:

  1. INDEX (NON-UNIQUE): Este es un índice normal. Como es no-único, entonces varios registros o filas pueden tener el mismo índice. Las ventajas de esto es que puede acelerar el tiempo de ejecución a la hora de hacer consultas. A partir de este tipo de índice viene un tema interesante que se llama indexacion en MySQL… Por ejemplo, en el caso de un catálogo de libros se crearía un INDEX que contenga los indices A,B,C,D,E,… .
  2. UNIQUE: Este tipo de índice lo que permite hacer es que que las celdas de una columna no tengan el mismo valor. Por ejemplo ,en caso de los correo electrónico no puede haber dos personas que estén usando el mismo correo electrónico.
  3. PRIMARY: Este tipo de índice , por defecto, también es de tipo único (UNIQUE). La llave primaria (PRIMARY KEY) nos permite que cada fila o tupla tenga algo que lo identifique como en el caso de nosotros es nuestro DNI.
  4. FOREIGN: La llave foránea es aquella llave primaria de otra tabla que lo que nos permite realizar es relacionar ambas tablas. Con la relación de tablas, nos permite hacer consultas(QUERYS).
  5. FULLTEXT: Este tipo de índice se emplea para realizar búsquedas sobre texto (CHAR, VARCHAR y TEXT). Estos índices se componen por todas las palabras que están contenidas en la columna (o columnas) que contienen el índice. Se emplea simplemente para mejorar el tiempo de ejecución de las consultas. Este tipo de índices sólo están soportados por InnoDB y MyISAM en MySQL 5.7.
  6. SPATIAL: Este tipo de índice se emplea para realizar búsquedas sobre datos que componen formas geométricas representadas en el espacio. Este tipo de índices sólo están soportados por InnoDB y MyISAM en MySQL 5.7.

Considero que este curso, aunque toca temas muy básicos, como en la explicación del comando CREATE; Sí requiere que ya se tenga algo de conocimiento respecto a las bases de datos para poder entender a la perfección los statements y referencias que el profesor realiza. Así que recomiendo leer bastante sobre bases de datos, DDL, DML y tipos de bases de datos para poder comprender mejor estas clases.

Una buena práctica pedagógica es mostrar lo que se está explicando, lo mínimo que podría hacer Alberto es mostrar los nombre InnoDB y MyISAM.

5- Tipos de Tablas de MySQL y Estrategias. Tipos de datos

Dos tipos de tablas por defecto en MySQL:

-. InnoDB

Es una tabla de bases de datos más nueva y robusta, recuperable en caso de falla de disco duro pero es un poco más lenta.

-. MyISAM

Es un tipo de tabla directa, sencilla, más rápida y las transacciones son completamente uno a uno

  • En la vida real usamos las tablas con dos propósitos:

-. Catálogo

crecerá en un orden lento, según las necesidades de la propia BD. (Listado de Usuarios, InnoDB)

-. Operación

se enfocan a lectura, mayor acceso a disco duro. (Préstamos de libros, MyISAM)
https://www.webreunidos.es/blog/myisam-vs-innodb/

Hola, consulta los tipos de tablas más comunes desde el punto de vista del diseño son:
TABLAS DE CATÁLOGO (MyISAM)
TABLAS DE OPERACIÓN (InnoDB)
esto es asi? porque en una pregunta que me hicieron en el examen me da error…por favor verificar las respuesta…

Creo que el título de esta clase está mal

Características de MyISAM:
Se establece por defecto cuando se crea una tabla, salvo que se indique lo contrario.
Soporta transacciones.
Realizar bloqueo de registros.
Soporta un gran número de consultas SQL, lo que se refleja en una velocidad de carga muy rápida para nuestra web.
Como desventaja, señalamos que no realiza bloqueo de tablas, esto puede ser un problema si como se ha mencionado anteriormente hay un acceso simultáneo al mantenimiento de registros por parte de varios usuarios.

Características de InnoDB
Bloqueo de registros. Importante para accesos múltiples al mantenimiento de tablas, es decir, ejecuciones de sentencias tipo INSERT o UPTATE, éstas ejecuciones tienen una velocidad optimizada.
Capacidad para soportar transacciones e integridad de datos, es decir previene el alta de datos no adecuados.
Aplica las características propias de ACID (Atomicity, Consistency, Isolation and Durability), consistentes en garantizar la integridad de las tablas.

Hay dos tipo de tablas en nuestra arquitectura que obedecerán a nuestra estrategia: 1.Catálogo esta usará InnoDB porque es lento su crecimiento y operación, por ejemplo: tabla client , 2.Operación está usará MyISAM esta será porque su operación es constante, ejemplo: operations

####Motores de base de datos
Los motores de base datos más conocidos son Innodb y Myissam, entre ambos existen ciertas diferencia notables que vale la pena mencionar para saber cual eligir.

Innodb considerado como un motor de base de datos transaccional conforme ACID con la capacidad de commit, rollback, recuperación de fallos.

Myissam es un motor de base de datos que trata tablas no transaccioneles lo cual lo hace más rapido en la lectura y escritura de datos.

#####Algunas ventajas y desventajas
Innodb

  • Soporte de transacciones.
  • Bloqueo de registros.

Myissam

  • Mayor velocidad en la recuperación de datos.
  • Recomendable para aplicaiones donde predominan la sentencia select que los inserts/updates.

si la velocidad de lectura y escritura es lo que importa ¿ por que las tablas del tutorial fueron creadas como INNODB? Quien me puede aclarar esa duda

En que caso usamos tablas de tipo MyISAM o InnoDB?

Otra alternativa de solución para acceder a la consola de MySQL es instalando WAMPSERVER 2.5, una vez instalado seleccionar la carpeta MySQL y listo les dejo el enlace:

https://wamp-server-wamp5.uptodown.com/windows

2 Tipos de Tablas en MySQL :

- InnoDB .- Es una tabla de BD, mas nueva, mas robusta, mas recuperable en caso de que haya alguna falla en el disco duro pero es un poco mas lenta.

- MyISAM .- Es una tabla de BD muy directa, muy sencilla, muy rápida y las operaciones y transacciones son completamente uno a uno. La velocidad de lectura y escritura es mayor.

Hola a todos,

Les dejo unas Ventajas y Desventajas que encontré de cada MyISAM e InnoDB

Dos tipos de tablas por defecto en MySQL: •MyISAM: directa, sencilla, más rápida y las transacciones son completamente uno a uno: •InnoDB: nueva, recuperable en caso de falla de disco duro pero es un poco más lenta. En la vida real usamos las tablas con dos propósitos: •Catalogo: crecerá en un orden lento, según las necesidades de la propia BD. (Listado de Usuarios, InnoDB) •Operación: se enfocan a lectura, mayor acceso a disco duro. (Prestamos de libros, MyISAM).

La siguiente es una instrución para crear una tabla especificando que se usará el motor de almacenamiento InnoDB:

CREATE TABLE customers (a INT, b CHAR (20), INDEX (a)) ENGINE=InnoDB;

A partir de esto (que en la instrucción CREATE TABLE se permita elegir el motor) entiendo que en una base de datos determinada es posible usar ambos motores.

Dos tipos bases de datos de tablas:
InnoDB: es una base de datos tipo tabla , más robusta, más recuperables en caso de que existe una falla en el disco duro, pero es un poco más lenta.

  • Tabla de Catálogo. Esta tabla crece a una orden lenta. Ejemplo, el número de usuarios no crecerá a una velocidad que el número e préstamos del número de libros que hay en la biblioteca.

MyISAM: Es una tabla muy directa y sencilla muy rápida y las operaciones y transacciones es completamente una a una, la velocidad de lectura y escritura es mayor, esto afecta la estrategia.

  • Tabla de Operación: Esta tabla crece mucho, para darle más agilidad a nuestro sistema.

queries copia a la consola

  • InnoDB
    • Tabla de catalogo
    • Escribe lento
  • MyISAM
    • Escribe rápido
    • Es mas difícil de recuperar
    • Se usa cuando necesitas consultar y escribir mayor numero de veces o a una razón mas grande.

INNODB ES UNA TABLA MAS SEGURA, PERO MAS LENTA
MyISAM ES MAS RAPIDA PERO MENOS SEGURA

InnoDB
El bloqueo se hace por registro. Cuando se realiza una inserción o actualización del registro de una tabla de este tipo, únicamente se bloquea ese registro y no la tabla, como sucedía en MyISAM. Por lo que otros usuarios podrán hacer uso de manera simultánea de la base de datos.

No se, eso de que mis tablas transaccionales como la tabla PRESTAMO este en MyISAM no me convence, considerando que quien garantiza la integridad de la información cuando se hace varios UPDATE,INSERT y DELETE es el INNODB.

MyISAM sera la elección adecuada si eres nuevo con MySQL y para aplicaciones webs simples o poco definidas, por poner ejemplos de aplicaciones que deberían utilizar MyISAM: CMS (content management systems), simples motores de búsqueda ó blogs.
(Ref: http://www.tufuncion.com/mysql-innodb-myisam)

Hola ! Luego de la instalación, quede con el prompt en MySQL JS >
Como continuo para poder comenzar a manipular una DB?

Mi primera ejecucion
</
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
±-------------------+
6 rows in set (0.01 sec)

mysql> use sakila;
Database changed
mysql> show tables;
±---------------------------+
| Tables_in_sakila |
±---------------------------+
| actor |
| actor_info |
| address |
| category |
| city |
| country |
| customer |
| customer_list |
| film |
| film_actor |
| film_category |
| film_list |
| film_text |
| inventory |
| language |
| nicer_but_slower_film_list |
| payment |
| rental |
| sales_by_film_category |
| sales_by_store |
| staff |
| staff_list |
| store |
±---------------------------+
23 rows in set (0.01 sec)

mysql> select database();
±-----------+
| database() |
±-----------+
| sakila |
±-----------+
1 row in set (0.00 sec)``>

Muy interesante la parte de las tablas.
InnoDB y MyISAM: El ying yang de MySQL

Una base de datos no es nada si no la podemos convertir en información

Los tipos de tablas más comunes desde el punto de vista del diseño son:

TABLAS DE CATÁLOGO (MyISAM)
TABLAS DE OPERACIÓN (InnoDB)

Al instalar mysql me da un error 1042 y no me deja iniciar el servidor

Estrategia para saber cuál tabla será MyISAM o InnoDB

InnoDB

MyISAM

InnoDB: tipo de tabla de base de datos, más robusta, más recuperable ante fallo, pero más lenta.

Dos tipos de tablas: Tabla de catálogo y tabla de operación.

Les dejo el enlace donde pueden ver los dos tipos de tablas MySQL
https://platzi.com/tutoriales/1272-sql-mysql/4484-innodb-y-myisam-el-ying-yang-de-mysql/

No sé si el profe se equivoco, pero si es así pues cualquiera lo puede hacer, dejo un gran post de @facmartoni de platzi, donde podemos ver en que casos usar InnoDB y MyIsam.

Les dejo mis notas; obviamente solo agregué lo que yo consideraba importante; si necesitan más información, busquen en internet. ![](https://static.platzi.com/media/user_upload/InnoDB%20VS%20MyISAM-3a37bfcf-e4cd-4ecf-99c0-1043969fc589.jpg) ![](https://static.platzi.com/media/user_upload/InnoDB%20VS%20MyISAM%20%282%29-bcd00fb5-3080-47c3-9b0a-dc5c028afc0f.jpg) ![](https://static.platzi.com/media/user_upload/InnoDB%20VS%20MyISAM%20%283%29-6ae338b9-2c0b-4314-9ced-1cbe954a014b.jpg)
## 👾Sintaxis e Instrucciones Básicas de SQL ### ✨**CREATE TABLE** Esta instrucción crea una nueva tabla. **Sintaxis del código:** `CREATE TABLE nombre_tabla (` ` columna1 tipo_de_dato,` ` columna2 tipo_de_dato,` ` ...` `);` Esta instrucción nos ayudará a crear una tabla “clientes” con dos columnas: `CREATE TABLE clientes (` ` id int,` ` nombre varchar(255)` `);` ### ✨**INSERT INTO** Esta instrucción inserta datos en una tabla. **Sintaxis del código:** `INSERT INTO nombre_tabla (columna1, columna2, ...)` `VALUES (valor1, valor2, ...);` Esta instrucción nos ayudará a insertar dos filas en la tabla “clientes”: `INSERT INTO clientes (id, nombre)` `VALUES (1, 'Iris Barrios'),` ` (2, 'Kevin Ceferino');` ### ✨**SELECT** Esta instrucción consulta datos de una tabla. **Sintaxis del código:** `SELECT columna1, columna2, ...` `FROM nombre_tabla;` Esta instrucción nos retornará todos los datos de la tabla “clientes”: `SELECT *` `FROM clientes;` La instrucción SELECT tiene muchos usos, también podemos consultar datos específicos de una tabla: `SELECT nombre` `FROM clientes;` ### ✨**UPDATE** Esta instrucción actualiza datos en una tabla. **Sintaxis del código:** `UPDATE nombre_tabla` `SET columna1 = valor1,` ` columna2 = valor2,` ` ...` `WHERE condición;` Con esta instrucción se actualizará el nombre del cliente con el ID 1 a “Kevin Ceferino”: `UPDATE clientes` `SET nombre = 'Kevin Ceferino'` `WHERE id = 1;` ### ✨**DELETE** Esta instrucción elimina datos de una tabla. **Sintaxis del código:** `DELETE FROM nombre_tabla` `WHERE condición;` Esta instrucción nos permitirá eliminar todos los clientes con el nombre “Iris Barrios”: `DELETE FROM clientes` `WHERE nombre = 'Iris Barrios';`
Lo que debe de haber pasado al peder una base de datos completa

Al diseñar una BD es importante saber que existen 2 principales tablas (innoDB y Myisam) que provee MySQL por defecto, innoDB es una tabla de BD màs nueva y robusta, màs recuperable en caso de una falla en disco duro, pero es un poco màs lenta, Myisam es una tabla muy directa y sencilla y muy ràpida y las transacciones son completamente uno a uno, la velocidad de lectura y escritura es mayor.

Poderoso

seguimos aprendiendo

Estrategia,
La tabla catalogo, las que crecen lento, tenerlas en InnoDB.
Las tablas que crecen mucho, y con acceso frecuente al disco duro, serán de tipo MyISAM.
“La velocidad de lectura y escritura es lo que importa”

SENTENCIA CREATE TABLE

  • La sentencia CREATE TABLE es utilizada para crear una tabla en una base de datos.

  • Las tablas se organizan en filas y columnas; y cada tabla debe tener un nombre.

  • SINTAXIS PARA LA SENTENCIA CREATE TABLE
    CREATE TABLE table_name

(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
  • Los parámetros “column_name” especifican los nombres de las columnas de las tablas.

  • Los parámetros “data_type” especifican que tipo de datos puede haber en esa columna (ej. varchar, integer, decimal, date, etc.).

  • El parámetro “size” especifica la longitud máxima de la columna de la tabla.

  • Ejemplo de la sentencia SQL CREATE TABLE:
    Ahora vamos a crear en el esquema “eli”, una tabla llamada “publisher”, que contiene cuatro columnas; idpublisher, name, address, and phone.

En el MySQL Workbench escribimos la instrucción CREATE TABLE:

InnoDB y MyISAM

En este capitulo difiero un poco con el comentario de la utilización de MyISAM y InnoDB, en una tabla altamente transaccional es mejor usar InnoBD ya que es muy rápida para aceptar inserciones al contrario de MyISAM para las de tipo catálogo, pero si me ponen a escoger me voy por InnoDB como estándar ya que a futuro puedo hacer replicaciones y más robustas ante fallos.

Como que todo se me va aclarando D;

Vaya son conceptos que no sabía.

Aquí les dejo uin link para que si tienen una duda con los comandos, la vean
https://desarrolloweb.com/articulos/2408.php

Hola, tengo tarea en la Uni 😄

Acá les dejo el link de la documentación de MYSQL si saben inglés pueden pasar a mirarlo. Está buenisimo, explica todo muy claro CON EJEMPLOS!!
(https://dev.mysql.com/doc/refman/8.0/en/tutorial.html)

No se desconcentraron con el libro detras de Alberto, like si eres fan de Game of Thrones

MyISAM orientado a transacciones y ahorro de recursos.
InnoDB orientado a catalogo de datos, es mas robusta pero mas lenta para transacciones.

Gracias !!

Estimado prof. Alcocer. Tengo una duda conceptual en cuanto a las entidades y relaciones en MySQL. Por ejemplo en la tabla books y la tabla authors, veo que coloca dentro de tabla books el authors_id que seria el vinculo o la relacion con authors.** No deberia existir una tabla enlace (relacion), que se llamara por ejemplo writers, entre books y authors que tuviese solamente los campos claves authors_id y books_id en una relacion muchos a muchos??** Gracias

hola, alguien me podría decir como se limpia pantalla?

Tipos principales de tablas: 1) MyISAM 2) InnoDB

buenas clases

EXCELENTE CURSO

¿eres dislexico? oy bientam

Super importante el tipo de almacenamiento de las tablas. Desconocía por completo este tema.

Muy buena clase.

El comando CREATE TABLE se utiliza para crear una tabla llamada nom_sql con los campos especificados al pasar una o más definicion_columna

Buenas, tengo una duda serian tipos de tablas o tipos de motor de almacenamiento cuando hablamos de InnoDB y MyISAM?.

Wow, siempre usaba InnoDB en todas las tablas, ahora entiendo porque va lento en algunas oportunidades

Genial el dato de los motores de bases de datos MyIsam y InnoDB

¿Cuáles son los tipos de tablas?

Que es un Índice, una llave primaria y una llave foránea.

Siempre aprendiendo.

Una cosa importante a la hora de diseñar nuestra BD es saber que existen dos principales tipos de tablas propietarias (Existen más):

  • **InnoDB:**Es un tipo de tabla más nueva, robusta y recuperable en caso tal haya fallas en el disco duro; pero es un poco más lenta.
  • Myissam: Es un tabla muy directa, muy sencilla, rápida y las transacciones y operaciones son de uno a uno; Entonces la velocidad de Escritura y lectura es mayor.

Aprendiendo nuevas cosas

no he podido abrir sql desde mi terminal en Mac ayuda¡

Tipos de tablas:

Entiendo que el InnoDB superan a las MyISAM, y están siendo más usadas en la actualidad.

Si tienen problemas para iniciar mysql desde la terminal con mac. Les recomiendo mucho este video: https://www.youtube.com/watch?v=TPEnVbMBgsM

Existen dos tipos de tablas innoDB, myisamDB

Existen dos tipos de estrategia, tabla catalogo, y tabla operación, Catalogo crece orden lento por lo que es innoDB Operaciones crece rápido por lo que es myisamDB

Carácteristicas InnoDB

MyISAM: Sencilla y rapida.

Carácteristicas MyISAM

Resumen

Debemos empezar por crear las tablas que necesitamos.

Principales tipos de tablas:

  1. InnoDB Es más robusta pero más lenta. Por lo tanto, aquella información que crece lenta deberá ser creadas con estas tablas.
  2. My ISAM Es una tabla más directa y rápida. Aquellas que requieran de consultas más agiles deberán ser creadas con estas tablas.

As of MySQL Version 3.23. 6, you can choose between three basic table formats ( ISAM , HEAP and MyISAM . Newer MySQL may support additional table type ( BDB , or InnoDB ), depending on how you compile it.

Chicos! quienes tengan dudas de como estar a la par del profe con windows y en consola, pueden usar este video: https://www.youtube.com/watch?v=UIz8sO3yefg&t=327s
a mi me sircio muchisimo, pero tienen que instalar wampp, suerte! Sigamos aprendiendo :3

Tabla de catalogo => crece a un orden lento
Tabla de operación => crece de manera rapida

Perfecto saber este tipo de información ya que uno cuando es jr nos daba igual en que BD montabas las tablas.
Gracias profesor, bien explicado

Tipos de tablas de bases de datos que tiene my sql.
**INNO DB: **
Nueva en cuanto a temporalidad de creación.
Robusta en cuanto a recuperación de tablas.
Mas lenta al acceso de datos.
Para tablas que crecen de manera más lenta hay que
ponerla en INNODB.

**MY ISAM: **
	Mas rápida en la lectura y escritura de datos.
	Para la tablas de datos de mayor crecimiento más rápido.

++ InnoDB++
El bloqueo se hace por registro. Cuando se realiza una inserción o actualización del registro de una tabla de este tipo, únicamente se bloquea ese registro y no la tabla, como sucedía en MyISAM. Por lo que otros usuarios podrán hacer uso de manera simultánea de la base de datos.
También hace control de transacciones, para entenderlo imaginemos la tabla de clientes de un banco, en el que se transfiere dinero de un cliente a otro, para ello se deben completar dos pasos:
1. La cantidad debe sumarse en la cuenta de destino
2. Restarse en la de origen.
En caso de interrupción de la energía del servidor, no podría quedarse a medias el proceso ya que la transacción (los dos pasos) deben cumplirse. Por lo tanto la transacción o se completa o no.

++ MyISAM++
Es la evolución de ISAM, mejora la velocidad y la optimización del espacio. Además, es el tipo predeterminado de tablas que utiliza MySQL. En el caso de que intentes crear otro tipo específico de tablas (y en caso de que MySQL no pueda crearlas), MySQL creará este tipo de tablas.
Otra característica, es que si realizas una inserción o actualización de un registro de la tabla, MySQL bloquea la tabla hasta que se complete la tarea. Por lo que nadie más podrá hacer actualizaciones o inserciones durante ese tiempo.

Me iba a quedar pegado en muchas cosas solo porque no se explicaron cosas que se utilizan de una forma en mac y de otra en windows

El único comentario que tengo hasta ahora, es que el curso no parece estar pensado para gente que apenas comienza en SQL, si no que ya deberían tener cierto conocimiento previo. Es bueno, porque puedes ir más rápido, pero a la vez es contraproducente porque no le da chance a los nuevos.