Modelado físico relacional de bases de datos

En SQL, los comandos para crear bases de datos y esquemas son parte de la categoría de comandos de definición de datos (DDL). A continuación te explico cómo utilizar estos comandos con ejemplos:


Comando CREATE DATABASE

El comando CREATE DATABASE se utiliza para crear una nueva base de datos.

Sintaxis básica:

1CREATE DATABASE nombre_base_de_datos;

Ejemplo: Si deseas crear una base de datos llamada escuela, usarías el siguiente comando:

1CREATE DATABASE escuela;

Este comando crea una base de datos vacía llamada escuela, que luego puede contener tablas, vistas, índices, etc.

Opciones adicionales:

  • Se puede especificar el conjunto de caracteres (por ejemplo, UTF-8).
  • O para especificar la intercalación, que afecta cómo se comparan y ordenan los datos.

Ejemplo con opciones:

1CREATE DATABASE escuela
2CHARACTER SET utf8mb4
3COLLATE utf8mb4_unicode_ci;

Este comando crea la base de datos escuela con un conjunto de caracteres específico (UTF-8) y una intercalación para comparar los datos.

🔹 Tipos comunes de collation (sufijos)

Sufijo Significado

  • _ci Case Insensitive (a = A)
  • _cs Case Sensitive (a ≠ A)
  • _ai Accent Insensitive (cafe = café)
  • _as Accent Sensitive (cafe ≠ café)
  • _bin Comparación binaria (muy estricta)

Comando CREATE SCHEMA

El comando CREATE SCHEMA se utiliza para crear un esquema dentro de una base de datos. Un esquema es un contenedor de objetos de base de datos (como tablas, vistas, procedimientos almacenados) y puede ayudar a organizar los objetos de la base de datos de manera más estructurada.

Sintaxis básica:

1CREATE SCHEMA nombre_esquema;
2-- Equivalente a: CREATE DATABASE nombre_esquema;

Ejemplo: Si quieres crear un esquema llamado academico dentro de la base de datos actual, usarías:

1CREATE SCHEMA academico;
2-- Equivale a: CREATE DATABASE academico;

Esto crea un esquema vacío llamado academico. Los esquemas pueden contener tablas y otros objetos, y pueden ayudar a organizar grandes bases de datos.

Opciones adicionales:

  • Definir el propietario: Puedes especificar el usuario propietario del esquema.
1-- ❌ No es compatible directamente con AUTHORIZATION.
2-- Puedes crear la base de datos (esquema) y luego asignar privilegios:
3
4CREATE SCHEMA academico;
5GRANT ALL PRIVILEGES ON academico.* TO 'usuario'@'localhost';

Este comando crea el esquema academico y asigna al usuario usuario como propietario del esquema.


Comando DROP DATABASE

El comando DROP DATABASE se utiliza para eliminar una base de datos completa, incluyendo todas sus tablas, vistas, procedimientos, etc. Ten cuidado, ya que este comando es irreversible.

Sintaxis básica:

1DROP DATABASE nombre_base_de_datos;

Ejemplo: Si deseas eliminar la base de datos escuela:

1DROP DATABASE escuela;

Este comando eliminará la base de datos escuela y todo su contenido.


Comando DROP SCHEMA

El comando DROP SCHEMA se utiliza para eliminar un esquema, junto con todos los objetos contenidos dentro de él.

Sintaxis básica:

1DROP SCHEMA nombre_esquema;
2-- Equivale a: DROP DATABASE nombre_esquema;

Ejemplo: Para eliminar el esquema academico:

1DROP SCHEMA academico;
2-- Equivale a: DROP DATABASE academico;

Este comando eliminará el esquema academico y todos los objetos que contiene, como tablas y vistas.

Comando ALTER SCHEMA (Modificar esquema)

Algunos sistemas de bases de datos, como PostgreSQL, permiten usar el comando ALTER SCHEMA para modificar un esquema existente, como cambiar su nombre o su propietario.

Sintaxis básica para cambiar el nombre del esquema:

1--❌MySQL no permite renombrar un SCHEMA (base de datos). Debes crear una nueva base y mover los objetos manualmente.

Ejemplo: Para cambiar el nombre del esquema academico a educacion:

1--❌MySQL no permite renombrar un SCHEMA (base de datos). Debes crear una nueva base y mover los objetos manualmente.

Comando COMMENT

El comando COMMENT se utiliza para agregar comentarios o descripciones a los objetos de una base de datos, como tablas, columnas o restricciones. Estos comentarios no afectan los datos ni la estructura funcional, pero proporcionan una forma de documentar los objetos para que los usuarios o administradores puedan entender mejor su propósito.

Sintaxis básica:

1--❌ No es compatible con COMMENT ON ...
2--Pero puedes agregar comentarios en la creación de objetos:
3CREATE TABLE ejemplo (
4  id INT COMMENT 'Identificador único'
5);
  • objeto: Puede ser una tabla, columna, índice, etc.
  • objeto_nombre: El nombre del objeto que se está comentando.
  • comentario: El texto descriptivo que explica el objeto.

Ejemplo: Agregar un comentario sobre la columna edad de la tabla estudiantes:

1--❌ No compatible con COMMENT ON COLUMN ....
2--Puedes usar COMMENT al crear o modificar la columna:
3ALTER TABLE estudiantes
4MODIFY COLUMN edad INT COMMENT 'Edad del estudiante en años.';

Este comando asigna un comentario a la columna edad de la tabla estudiantes, para que otros usuarios comprendan su propósito.


Comando RENAME

El comando RENAME se utiliza para cambiar el nombre de un objeto en la base de datos, como una tabla, columna o índice. Este comando permite modificar el nombre de manera sencilla, sin necesidad de eliminar y recrear el objeto.

Sintaxis básica:

1RENAME TABLE objeto_actual TO nuevo_objeto;
  • objeto_actual: El nombre actual del objeto.
  • nuevo_objeto: El nuevo nombre que se le asignará al objeto.

Ejemplo 1: Renombrar una tabla llamada estudiantes a alumnos:

1RENAME TABLE estudiantes TO alumnos;

Este comando cambiará el nombre de la tabla estudiantes a alumnos.

Ejemplo 2: Renombrar una columna edad en la tabla alumnos a edad_estudiante (esto puede variar según el sistema de base de datos, ya que algunos pueden no soportar esta operación directamente):

1--Desde MySQL 8.0+ sí es compatible con:
2ALTER TABLE alumnos RENAME COLUMN edad TO edad_estudiante;

Este comando cambiará el nombre de la columna edad por edad_estudiante en la tabla alumnos (aunque el comando exacto puede variar según el sistema de base de datos).


Resumen de comandos:

  • Crear base de datos: CREATE DATABASE nombre_base_de_datos;
  • Crear esquema: CREATE SCHEMA nombre_esquema;
  • Eliminar base de datos: DROP DATABASE nombre_base_de_datos;
  • Eliminar esquema: DROP SCHEMA nombre_esquema;
  • Modificar esquema (en algunos DBMS): ALTER SCHEMA nombre_antiguo RENAME TO nombre_nuevo;
  • Añade comentarios: COMMENT
  • Cambia el nombre de un objeto: RENAME
  • Loading...