Professional Documents
Culture Documents
columna siempre tiene que tener algn valor, no puede estar vaca. Ejemplo SQL NULL
CREATE TABLE personas { nombre varchar(255) NOT NULL, apellido1 varchar(255) NOT NULL, apellido2 varchar(255) }
Esta sentencia crea una tabla denominada 'personas', donde tenemos 3 columnas. Las columnas 'nombre' y 'apellido' llevan NOT NULL, esto quiere decir que cualquier fila insertada en esta tabla tiene que tener algn valor para las columnas 'nombre' y 'apellido1'. a restriccin UNIQUE identifica de manera nica a cada fila de una tabla. Puede haber varias restricciones UNIQUE en diferentes columnas de una tabla. Existen varias formas diferentes de sintaxis segn el sistema de base de datos utilizado: Ejemplo SQL UNIQUE para la base de datos MySQL
CREATE TABLE personas { identificador int NOT NULL, nombre varchar(255) NOT NULL, apellido1 varchar(255) NOT NULL, apellido2 varchar(255), UNIQUE (identificador) }
La sentencia anterior crea la tabla 'personas' con 4 columnas, donde la columna 'identifcador' tiene un valor diferente para cada fila de la tabla. Si intentamos insertar un fila con un identificador que ya exista, nos dar un error, y no nos dejar insertarlo. Ejemplo SQL UNIQUE para las bases de datos ORACLE, SQLSERVIR, ACCESS
CREATE TABLE personas { identificador int NOT NULL UNIQUE, nombre varchar(255) NOT NULL, apellido1 varchar(255) NOT NULL, apellido2 varchar(255), }
UNIQUEALTERTABLE La restriccin UNIQUE se puede aadir a una columna de una tabla, despus de ser creada, mediante
CREATE TABLE personas { identificador int NOT NULL, nombre varchar(255) NOT NULL, apellido1 varchar(255) NOT NULL, PRIMARY KEY (identificador) }
Ejemplo PRIMARY KEY , clave primaria en ORACLE, SQLSERVER, ACCESS
CREATE TABLE personas { identificador int NOT NULL PRIMARY KEY, nombre varchar(255) NOT NULL, apellido1 varchar(255) NOT NULL, }
La clave primaria (PRIMARY KEY) puede estar compuesta por varias columnas, por ejemplo por las columnas 'identificador' y 'nombre', entonces se define as:
CREATE TABLE personas { identificador int NOT NULL, nombre varchar(255) NOT NULL,
apellido1 varchar(255) NOT NULL, CONSTRAINT pers PRIMARY KEY (identificador, nombre) }
La clave primaria tambin se puede definir despus de haber creado la tabla, para eso utilizaremos el comando ALTER TABLE
Ejemplo PRIMARY KEY con ALTER TABLE ALTER TABLE personas ADD PRIMARY KEY (identificador) Ejemplo PRIMARY KEY multiple ALTER TABLE ALTER TABLE personas CONSTRAINT pers PRIMARY KEY (identificador, nombre)
FOREIGNKEY La clave externa o FOREIGN KEY, es una columna o varias columnas, que sirven para sealar cual es la clave primaria de otra tabla. La columna o columnas sealadas como FOREIGN KEY, solo podrn tener valores que ya existan en la clave primaria PRIMARY KEY de la otra tabla. Ejemplo de FOREIGN KEY Tabla "departamentos", con la clave primaria "dep"
dep 1 2 3
Tabla personas, con una clave externa FOREIGN KEY 'dep', que hace referencia a la clave primaria 'dep' de la tabla anterior 'departamentos' y por tanto, solo puede tener un valor de los que tiene en esa tabla
per 1 2 3
dep 1 2 4
CREATE TABLE departamentos { dep int NOT NULL, departamento varchar(255), PRIMARY KEY (dep) }
CREATE TABLE personas { per int NOT NULL, nombre varchar(255), apellido1 varchar(255), dep int NOT NULL, PRIMARY KEY (per), FOREIGN KEY (dep) REFERENCES departamentos(dep) }
Definiciones de FOREIGN KEY en CREATE TABLE para ORACLE, ACCESS, SQLSERVER
CREATE TABLE departamentos { dep int NOT NULL PRIMARY KEY, departamento varchar(255), } CREATE TABLE personas { per int NOT NULL PRIMARY KEY, nombre varchar(255), apellido1 varchar(255), dep int FOREIGN KEY REFERENCES departamentos (dep) }
Si la clave externa o fornea (FOREIGN KEY) est compuesta por varias columnas o queremos ponerle un nombre, utilizaremos la frmula siguiente:
ALTER TABLE ADD CONSTRAINT fkpersonas FOREIGN KEY (dep) REFERENCES departamentos(dep)
Para borrar un clave externa (FOREIGN KEY) utilizamos DROP, pero vara segn la base de dato:
Borrar FOREIGN KEY en MySQL ALTER TABLE personas DROP FOREIGN KEY dep
Borrar FOREIGN KEY en ORACLE, SQLSERVER y ACCESS
CREATE TABLE departamentos { dep int NOT NULL, departamento varchar(255), CHECK (dep>0) }
Ejemplo CHECK en ORACLE, SQLSERVER y ACCESS:
CREATE TABLE departamentos { dep int NOT NULL CHECK (dep>0) departamento varchar(255), }
Ejemplo CHECK en ALTER TABLE en MySQL
Existen diferentes formatos para almacenar las fechas y horas en los distintos sistemas de bases de datos. Los tipos de datos de cada columna se definen cuando se crea la tabla. Tipos de Datos para las fechas y horas en la base de datos MySQL
Formato YYYY-MM-DD
Ejemplo 2008-11-11
Muestra la fecha y hora actuales. Por ejemplo: 2008-11-11 12:45:34 Muestra la fecha actual. Por ejemplo: 2008-11-11 Muestra la hora actual. Por ejemplo: 12:45:34 Muestra la parte fecha de una expresin fecha/hora Muestra una parte de una expresin fecha/hora Muestra una fecha como suma de un intervalo de tiempo a una fecha Muestra una fecha como resta de un intervalo de tiempo a una fecha Muestra el nmero de das entre 2 fechas
Formato YYYY-MM-DD Formato YYYY-MM-DD HH:MM:SS Se genera un valor basado en la hora del sistema. Se actualiza automticamente.
Funciones para SQL Server sobre los tipos de datos de fecha y hora anteriores
GETDATE Muestra la fecha y hora actuales DATEPART Muestra parte de una fecha y hora
DATEADD Muestra una fecha como suma o resta de un intervalo de tiempo sobre una fecha DATEDIFF Muestra el tiempo entre 2 fechas CONVERT Muestra la fecha y hora en diferentes formatos
Ejemplos del uso de fecha y hora
CREATE TABLE pedidos ( idpedido int NOT NULL, nombreproducto varchar(50) NOT NULL, fechapedido datetime NOT NULL PRIMARY KEY (idpedido) )
idpedido 1
Si queremos almacenar solo la fecha (y no la hora) utilizaremos el tipo de datos 'date' en lugar de 'datetime'. VALORESNULL El valor NULL representa a un valor desconocido. Este valor NULL puede ser asignado como valor a cualquier columna de una tabla. Si el valor de una columna es opcional, quiere decir, que podemos insertar una fila en la tabla sin asignarle ningn valor a esa columna opcional, as que esa columna tomar el valor NULL. El valor NULL es un valor especial, y por tanto, no se puede comparar con los operadores aritmticos normales (=, >, <, <>), y en su lugar debemos utilizar los operadores IS y IS NOT. En la tabla personas, tenemos la columna 'apellido2' que es opcional y puede tener valores nulos: >
apellido2 PEREZ
edad 30 45 50
apellido2
edad 30 50
nombre LUIS
apellido1 LOPEZ
apellido2 PEREZ
edad 45