Cómo crear una base de datos en MySQL (Crear MySQL Mesas)

⚡ Resumen inteligente

Creando una base de datos en MySQL sigue dos rutas probadas: ejecutar una instrucción CREATE DATABASE o generar esquemas físicos a partir de un modelo ER a través de MySQL Ingeniería directa en el banco de trabajo. Ambos enfoques producen mesas idénticas, listas para la producción.

  • 🗄️ Creación de base de datos: Ejecutar películas CREATE DATABASE; o CREATE SCHEMA, que MySQL trata como sinónimo.
  • 🛡️ Repeticiones seguras: Agregue IF NOT EXISTS para que un script repetido omita la creación en lugar de generar un error de nombre duplicado.
  • 🌐 Conjunto de caracteres: Elija utf8mb4 con utf8mb4_0900_ai_ci para datos multilingües; latin1 con latin1_swedish_ci es adecuado para esquemas heredados solo en inglés.
  • 🧱 Creación de tabla: La instrucción CREATE TABLE define el nombre de cada campo, el tipo de datos, la CLAVE PRIMARIA y el motor de almacenamiento, normalmente InnoDB.
  • 🔢 Tipos de datos: Los tipos de columna se clasifican en numéricas, de texto y de fecha u hora, además de las variantes ENUM, SET, BOOL y binarias.
  • ⚙️ Ingeniería avanzada: MySQL Workbench convierte un modelo ER aprobado en scripts SQL ejecutables y los sube a un servidor en producción.

Pasos para crear una base de datos en MySQL

Una base de datos en MySQL Es un contenedor con nombre para tablas, vistas y objetos relacionados. Puedes crear uno de dos maneras:

1) Ejecutando una consulta SQL simple

2) Mediante el uso de ingeniería avanzada en MySQL Banco de trabajo

As principiante en SQL, veamos primero el método de consulta.

Cómo crear una base de datos en MySQL

Aquí se explica cómo crear una base de datos en MySQL:

CREATE DATABASE es el comando SQL utilizado para crear una base de datos en MySQL.

Imagina que necesitas crear una base de datos con el nombre “películas”. Puedes crear una base de datos en MySQL ejecutando el siguiente comando SQL.

CREATE DATABASE movies;

Nota: También puede utilizar el comando CREATE SCHEMA en lugar de CREATE DATABASE.

La instrucción solo funciona una vez. Si se ejecuta de nuevo, se produce un error, así que vamos a mejorar la consulta añadiendo más parámetros.

SI NO EXISTE

Un único MySQL Un servidor puede albergar varias bases de datos. Cuando varias personas comparten ese servidor, es posible que intentes crear una base de datos con el nombre de una ya existente.

SI NO EXISTE instruye al MySQL El servidor debe verificar si existe una base de datos con el mismo nombre antes de crearla. La base de datos se crea solo si el nombre está libre; sin esta cláusula, MySQL arroja un error.

CREATE DATABASE IF NOT EXISTS movies;

Una vez que el nombre de la base de datos sea seguro, la siguiente decisión es cómo MySQL Debe almacenar y comparar el texto que contiene.

Cotejo y conjunto de caracteres

A conjunto de caracteres decide qué caracteres puede almacenar una columna, mientras que un colación es el conjunto de reglas utilizadas en la comparación y ordenación. Ambas se pueden definir en cuatro niveles: servidor, base de datos, tabla y columna.

La intercalación que elija depende del conjunto de caracteres. Por ejemplo, el conjunto de caracteres latin1 utiliza el latin1_swedish_ci intercalación, que es el orden sueco que no distingue entre mayúsculas y minúsculas.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci;

Para idiomas locales como el árabe o el chino, seleccione Unicode. utf8mb4 conjunto de caracteres, que almacena todos los caracteres Unicode, incluidos los emojis. En MySQL 8.0, utf8mb4 es el conjunto de caracteres predeterminado y utf8mb4_0900_ai_ci la intercalación predeterminada.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

Puede encontrar la lista de todas las intercalaciones y conjuntos de caracteres. aquí.

Puede ver la lista de bases de datos existentes ejecutando el siguiente comando SQL.

SHOW DATABASES;

Una vez creada la base de datos, ya puede añadir las tablas que contendrán los registros.

Cómo crear una tabla en MySQL

El comando CREATE TABLE se utiliza para crear tablas en una base de datos.

Crear tabla en MySQL

Como muestra el diagrama, cada tabla pertenece a una base de datos. Las tablas se crean con la Crear mesa declaración, que tiene la siguiente sintaxis.

CREATE TABLE [IF NOT EXISTS] `TableName` (`fieldname` dataType [optional parameters]) ENGINE = storage Engine;

AQUÍ

  • La instrucción “CREATE TABLE” es la responsable de la creación de la tabla en la base de datos.
  • “[IF NOT EXISTS]” es opcional y solo crea la tabla si no se encuentra ningún nombre de tabla coincidente.
  • “`fieldName`” es el nombre del campo, y “data Type” define la naturaleza de los datos almacenados en él.
  • “[parámetros opcionales]” es información adicional sobre un campo, como “AUTO_INCREMENT” o NOT NULL.
  • El "motor de almacenamiento" gestiona la tabla, normalmente InnoDB, que admite transacciones y claves foráneas.

MySQL Crear ejemplo de tabla

A continuación se muestra un MySQL Ejemplo para crear una tabla en una base de datos:

CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (
  `membership_number` INT AUTO_INCREMENT ,
  `full_names` VARCHAR(150) NOT NULL ,
  `gender` VARCHAR(6) ,
  `date_of_birth` DATE ,
  `physical_address` VARCHAR(255) ,
  `postal_address` VARCHAR(255) ,
  `contact_number` VARCHAR(75) ,
  `email` VARCHAR(255) ,
  PRIMARY KEY (`membership_number`) )
ENGINE = InnoDB;

Nota: lo correcto MySQL la palabra clave es AUTO_INCREMENT con un guion bajo. AUTOINCREMENT pertenece a SQLite y genera un error de sintaxis en MySQL.

Cada columna tiene un tipo de dato, así que elija con cuidado: no subestime ni sobreestime el rango de datos que espera.

MySQL Tipos de datos

Los tipos de datos definen la naturaleza de los datos que se pueden almacenar en una columna determinada de una tabla.

MySQL tiene 3 principales categorías de tipos de datos, a saber:

  1. Numérico
  2. Texto
  3. Fecha y hora

Tipos de datos numéricos

Los tipos de datos numéricos se utilizan para almacenar valores numéricos. Es muy importante asegurarse de que el rango de los datos se encuentre entre los límites inferior y superior del tipo de dato numérico seleccionado.

PEQUEÑOINT( ) -128 a 127 normales
0 a 255 SIN FIRMAR.
PEQUEÑO( ) -32768 a 32767 normales
0 a 65535 SIN FIRMAR.
MEDIO( ) -8388608 a 8388607 normales
0 a 16777215 SIN FIRMAR.
EN T( ) -2147483648 a 2147483647 normales
0 a 4294967295 SIN FIRMAR.
EMPEZANDO( ) -9223372036854775808 a 9223372036854775807 normales
0 a 18446744073709551615 SIN FIRMAR.
FLOAT Un pequeño número aproximado con un punto decimal flotante.
DOBLE( , ) Un número grande con un punto decimal flotante.
DECIMALES( , ) Un valor DOUBLE almacenado como una cadena, con un punto decimal fijo. Ideal para almacenar valores monetarios.

Tipos de datos de texto

Como su nombre indica, estos tipos de datos se utilizan para almacenar valores de texto. Asegúrese siempre de que la longitud de sus datos de texto no supere la longitud máxima de la columna.

CARACTERÍSTICA ( ) Una sección fija de 0 a 255 caracteres de longitud.
VARCHAR( ) Una sección variable de 0 a 255 caracteres de longitud.
TEXTO PEQUEÑO Una cadena con una longitud máxima de 255 caracteres.
TEXTO: Una cadena con una longitud máxima de 65535 caracteres.
BLOB Una cadena con una longitud máxima de 65535 caracteres.
TEXTO MEDIO Una cadena con una longitud máxima de 16777215 caracteres.
GLOBO MEDIANO Una cadena con una longitud máxima de 16777215 caracteres.
TEXTO LARGO Una cadena con una longitud máxima de 4294967295 caracteres.
BOB LARGO Una cadena con una longitud máxima de 4294967295 caracteres.

Tipos de datos de fecha y hora

Los tipos de datos de fecha y hora almacenan los valores del calendario y del reloj en un formato fijo, lo que garantiza la fiabilidad de la ordenación y la comparación.

FECHA AAAA-MM-DD
Fecha y hora AAAA-MM-DD HH: MM: SS
TIMESTAMP AAAAMMDDHHMMSS
DE ESPERA EN HH: MM: SS

Otros tipos de datos

Aparte de lo anterior, hay otros tipos de datos en MySQL.

ENUM Para almacenar un valor de texto elegido de una lista de valores de texto predefinidos.
SET Esto también se utiliza para almacenar valores de texto elegidos de una lista de valores de texto predefinidos. Puede tener múltiples valores.
BOOL Sinónimo de TINYINT(1), utilizado para almacenar valores booleanos
BINARIO Similar a CHAR; la diferencia es que los textos se almacenan en formato binario.
VARBINARIO Similar a VARCHAR; la diferencia es que los textos se almacenan en formato binario.

Ahora veamos una consulta para crear una tabla que utilice todos los tipos de datos. Estúdiala e identifica cómo se define cada tipo de dato en la siguiente consulta CREATE TABLE. MySQL ejemplo.

CREATE TABLE `all_data_types` (
    `varchar` VARCHAR( 20 )  ,
    `tinyint` TINYINT  ,
    `text` TEXT  ,
    `date` DATE  ,
    `smallint` SMALLINT  ,
    `mediumint` MEDIUMINT  ,
    `int` INT  ,
    `bigint` BIGINT  ,
    `float` FLOAT( 10, 2 )  ,
    `double` DOUBLE  ,
    `decimal` DECIMAL( 10, 2 )  ,
    `datetime` DATETIME  ,
    `timestamp` TIMESTAMP  ,
    `time` TIME  ,
    `year` YEAR  ,
    `char` CHAR( 10 )  ,
    `tinyblob` TINYBLOB  ,
    `tinytext` TINYTEXT  ,
    `blob` BLOB  ,
    `mediumblob` MEDIUMBLOB  ,
    `mediumtext` MEDIUMTEXT  ,
    `longblob` LONGBLOB  ,
    `longtext` LONGTEXT  ,
    `enum` ENUM( '1', '2', '3' )  ,
    `set` SET( '1', '2', '3' )  ,
    `bool` BOOL  ,
    `binary` BINARY( 20 )  ,
    `varbinary` VARBINARY( 20 )
) ENGINE = MYISAM;

Mejores prácticas para crear una MySQL Database

Algunas convenciones ayudan a que tus guiones sean legibles:

  • Utilice letras mayúsculas para las palabras clave SQL, por ejemplo: “DROP SCHEMA IF EXISTS `MyFlixDB`;”
  • Finaliza todos tus comandos SQL con punto y coma.
  • Evite usar espacios en los nombres de esquemas, tablas y campos. En su lugar, utilice guiones bajos para separarlos.
  • Para las tablas nuevas, es preferible usar InnoDB en lugar de MyISAM, ya que InnoDB admite transacciones, bloqueo a nivel de fila y claves foráneas.

El método de consulta está completo. La segunda ruta accede a la misma base de datos desde un modelo visual en lugar de mediante SQL escrito manualmente.

Cómo crear MySQL Diagrama ER de Workbench Ingeniería directa

MySQL Banco de trabajo tiene utilidades que respaldan la ingeniería avanzada. Ingeniería avanzada es el término técnico que describe el proceso de traducir automáticamente un modelo lógico en una implementación física.

Creamos un Diagrama ER en nuestro Modelado de salas de emergencia lección. Ahora utilizaremos ese modelo ER para generar los scripts SQL que crearán nuestra base de datos.

Creando la base de datos MyFlix a partir del modelo MyFlix ER

Paso 1) Abra el modelo ER de la base de datos MyFlix. que creó anteriormente.

Paso 2) Seleccionar ingeniero avanzado

Haz clic en el menú Base de datos y selecciona Ingeniero de reenvío.

Seleccione ingeniero de vanguardia en MySQL Banco de trabajo

Paso 3) Opciones de conexión

La siguiente ventana le permite conectarse a una instancia de MySQL servidor. Haga clic en la lista desplegable de conexiones almacenadas y seleccione host local. Haga clic en Ejecutar.

Opciones de conexión en el asistente de ingeniería avanzada

Paso 4) Seleccione las opciones que se muestran a continuación.

Seleccione las opciones que aparecen a continuación en el asistente. Haga clic en Siguiente.

Opciones de ingeniería avanzada para la base de datos MyFlix

Paso 5) Mantenga las selecciones por defecto y haga clic en Siguiente.

La siguiente pantalla muestra el resumen de los objetos en nuestro diagrama EER. Nuestra base de datos MyFlix tiene 5 tablas. Mantenga las selecciones predeterminadas y haga clic en Siguiente.

Resumen de objetos en el diagrama EER de MyFlix

Paso 6) RevVer el script SQL

La ventana que aparece a continuación muestra una vista previa del script SQL que crea nuestra base de datos. Guarda el script en un archivo *.sql o cópialo al portapapeles y, a continuación, haz clic en Siguiente.

Vista previa del script SQL generado.

Paso 7) Confirmar el progreso

La ventana que aparece a continuación se muestra una vez que se crea la base de datos en la ubicación seleccionada. MySQL Instancia del servidor. Las tablas del modelo ER ahora existen físicamente en el servidor.

Ventana de progreso de compromiso de ingeniería directa

La base de datos junto con datos de ejemplo se adjunta. Usaremos esta base de datos en las lecciones siguientes. Simplemente impórtela en MySQL Mesa de trabajo para empezar.

Haga clic aquí para descargar MyFlixDB

Preguntas Frecuentes

No hay diferencia en MySQL. CREATE SCHEMA es un alias de CREATE DATABASE, y ambos construyen el mismo objeto. En otros sistemas, como OracleUn esquema y una base de datos siguen siendo conceptos separados.

Ejecutar DROP DATABASE IF EXISTS movies; desde el cliente o desde MySQL Banco de trabajoEste comando elimina permanentemente la base de datos y todas las tablas que contiene, así que primero haga una copia de seguridad.

La cuenta necesita el privilegio CREATE a nivel global. Los administradores lo otorgan con GRANT CREATE ON *.* TO 'user'@'localhost';. Sin ese privilegio, el servidor devuelve un error de acceso denegado.

Sí. Los asistentes de IA convierten una simple descripción de tus entidades en scripts CREATE TABLE con claves y tipos de datos. Revisa siempre los tipos, longitudes y restricciones generados antes de ejecutar el script en un servidor de producción.

Las funciones de IA en los clientes de bases de datos modernos leen su Diagrama ER o bien, consulta el historial y sugiere correcciones de normalización, posibles índices y correcciones de tipos de datos. Las sugerencias agilizan las revisiones de diseño, pero cada cambio debe ser aprobado por una persona.

Resumir este post con: