DDL
DDL nos permite crear y definir la estructura que va a tener cada base de datos.
DDL tiene más diferencias que SQL entre los diferentes motores de bases de datos. Los ejemplos que vamos a ver a continuación aplican únicamente para PostgreSQL.
Las operaciones más comunes con DDL son:
- Crear bases de datos con
CREATE DATABASE
; - Crear tablas con
CREATE TABLE
. - Eliminar tablas con
DROP TABLE
. - Cambiar tablas con
ALTER TABLE
.
Creando bases de datos con CREATE DATABASE
La sintaxis para crear una base de datos es la siguiente:
CREATE DATABASE <nombre>;
Por ejemplo:
CREATE DATABASE myhotels;
Creando tablas con CREATE TABLE
La sintaxis más básica para crear una tabla es (asumiendo que queremos tener una llave primaria llamada id
que sea autonumérica):
CREATE TABLE <nombre> (
id serial PRIMARY KEY,
<columna2> <tipodedato>,
...
);
Por ejemplo:
CREATE TABLE hotels (
id serial PRIMARY KEY,
name varchar(255) NOT NULL,
stars int
);
El NOT NULL
al final del campo name
le dice a PostgreSQL que ese campo no acepta valores nulos.
Tipos de datos
PostgreSQL tiene una gran variedad de tipos de datos pero vamos a ver los principales:
integer
oint
: campo numérico.decimal
: número con decimales.serial
: numérico autoincremental.varchar
: texto con límite.text
: texto sin límite.timestamp
: fecha y hora.date
: fecha sin hora.time
: hora sin fecha.boolean
obool
Existen muchos más tipos pero estos son los que se usan la mayor parte del tiempo y se encuentran en la mayoría de motores.
Llaves foráneas
Para crear una llave foránea puedes utilizar la palabra clave REFERENCES
como en el siguiente ejemplo:
CREATE TABLE rooms (
id SERIAL PRIMARY KEY,
hotel_id int REFERENCES hotels (id) ON DELETE CASCADE,
number varchar(10)
);
REFERENCES hotels (id)
crea la llave foránea.
ON DELETE CASCADE
es opcional y le dice a la tabla que cuando eliminen un registro en hotels
, también elimine todos los registros relacionados en rooms
.
Eliminando tablas con DROP TABLE
La sintaxis para eliminar una tabla es:
DROP TABLE <tabla>;
Por ejemplo:
DROP TABLE rooms;
Cambiando tablas con ALTER TABLE
La sintaxis de ALTER TABLE
cambia dependiendo de los que queramos hacer. Veamos las tres tareas más comunes:
Para agregar una columna a una tabla utilizamos la siguiente sintaxis:
ALTER TABLE <tabla> ADD <columna> <tipodedatos> <restricciones>;
Para eliminar una columna de una tabla utilizamos la siguiente sintaxis:
ALTER TABLE <tabla> DROP COLUMN <columna>;
Para modificar el tipo de datos de una columna utilizamos la siguiente sintaxis:
ALTER TABLE <tabla> MODIFY <columna> <tipodedatos> <restricciones>;
Ejemplos:
ALTER TABLE hotels ADD address varchar(255) NOT NULL;
ALTER TABLE hotels DROP COLUMN address;
ALTER TABLE hotels MODIFY address varchar(100) NOT NULL;