Comandos SQL: CREATE, DROP, ALTER y Tipos de Datos
Clasificado en Informática
Escrito el en español con un tamaño de 5,54 KB
Este documento describe los comandos básicos de SQL para la manipulación de bases de datos y la definición de datos, junto con los tipos de datos más comunes.
Comandos DDL (Data Definition Language)
CREATE
CREATE tipo_objeto Nombre Definición
. Crea un objeto de un determinado tipo (DATABASE, TABLE, INDEX, etc.) con un nombre (por ejemplo, Actores o Personajes) y una definición (CodigoPersonaje, Nombre, etc.).
DROP
DROP tipo_objeto Nombre
. Elimina un tipo de objeto especificado mediante un nombre. Por ejemplo, la sentencia DROP TABLE Actores
, borraría de la base de datos la tabla Actores junto con todos sus datos.
ALTER
ALTER tipo_objeto Nombre Modificación
. Modifica la definición de un objeto. Por ejemplo, la sentencia ALTER TABLE Actores DROP COLUMN Fecha
, eliminaría la columna Fecha de la tabla Actores.
Ejemplos de Comandos SQL
- Crear base de datos:
CREATE DATABASE Startrek CHARACTER SET Latin1 COLLATE latin1_spanish_ci;
- Usar base de datos: Por ejemplo, para empezar a manipular la base de datos Startrek, habrá que ejecutar el comando
USE Startrek;
- Ver bases de datos:
SHOW DATABASES;
El comando ALTER DATABASE
permite cambiar las características de funcionamiento de una base de datos.
Ejemplo: ALTER DATABASE Startrek COLLATE latin1_spanish_ci;
- Cambia el tamaño del fichero de datos del sistema:
SQL> ALTER DATABASE DATAFILE '/var/oracle/datos/jardineria/systemOl.dbf' SIZE 1G;
- Cambia el modo de acceso a la base de datos a solo lectura:
SQL> ALTER DATABASE open read only;
- Desactiva la opción de recuperación rápida:
ALTER DATABASE flashback off;
- Borrar base de datos:
drop database Proveedores;
Tipos de Datos y Atributos
NUMERIC(5,0)
de MySQL, puesto que los códigos postales tienen 5 dígitos enteros y 0 decimales.NOT NULL
yNULL
especifican si la columna admite o no admite valores nulos, es decir, si un campo puede quedar sin valor, o con valor desconocido.DEFAULT
indica el valor por defecto que toma el campo si no es especificado de forma explícita.
Restricciones de Clave Foránea
- Si se usa
NO ACTION
y se intenta un borrado o actualización sobre la tabla padre, la operación se impide, rechazando el borrado o la actualización. - Si se especifica
CASCADE
, la operación se propaga en cascada a la tabla hija, es decir, si se actualiza la tabla padre, se actualizan los registros relacionados de la tabla hija, y si se borra un registro de la tabla padre, se borran aquellos registros de la tabla hija que estén referenciando al registro borrado. - Si se indica
SET NULL
, se establece aNULL
la clave foránea afectada por un borrado o modificación de la tabla padre.
Claves Primarias y Foráneas
PRIMARY KEY
sirve para especificar la creación de una clave primaria a nivel de tabla:dni int(5) primary key
- Clave foránea:
foreign key (cliente) references clientes(dni)
.
Tipos de Datos Numéricos
TINYINT
,SMALLINT
,MEDIUMINT
,INT
,BIGINT
,INTEGER
: Enteros.DOUBLE
Real Aproximado,FLOAT
Real Aproximado.DECIMAL
,NUMERIC
,NUMBER(longitud[,decimales])
Real Exacto Variable
Tipos de Datos de Fecha y Hora
DATE
Fecha 'aaaa-mm-dd'TIME
Hora 'hh:mm:ss'TIMESTAMP
Fecha y Hora 'aaaa-mm-dd hh:mm:ss'DATETIME
Fecha y hora 'aaaa-mm-dd hh:mm:ss'
Tipos de Datos de Cadena
CHAR
: Longitud fijaVARCHAR
Longitud variableVARCHAR2(longitud)
caracteres Longitud Variable
Tipos de Datos BLOB, TEXT y CLOB
BLOB
Objetos binarios Longitud VariableTEXT
Campos Memo Longitud VariableCLOB
Campos Memo Longitud Variable
Tipos de Datos ENUM y SET
ENUM(valor1,valor2,valor3...)
Enumeraciones Lista de valoresSET(valorl, valor2, valorS...)
Conjuntos Conjuntos de valores.
Atributo AUTO_INCREMENT
AUTO_INCREMENT
indica que ese campo es autoincrementado después de cada inserción. Un campo definido como AUTO_INCREMENT
debe ser numérico. Auto_increment=valor
Atributos de Tabla
CHARACTER SET
Especifica el conjunto de caracteres para la tabla yCOLLATE
define la colación por defecto de la tabla.COMMENT
es un comentario para la tabla, hasta 60 caracteres.Checksum
: suma de verificación para todos los registros.ENGINE= nombre_motor
se indica el motor de almacenamiento para la tabla.MAX_ROWS
es el máximo número de registros que se quiere almacenar en la tabla.MIN_ROWS
es el mínimo número de registros que se planea almacenar en la tabla.IF NOT EXISTS
, se cree la tabla si no está creada previamente.