Vous êtes sur la page 1sur 4

Borrar filas (DELETE)

La sentencia DELETE elimina filas de una tabla.


Origen es el nombre de la tabla de donde vamos a borrar, podemos indicar un nombre de
tabla, incluir la clusula IN si la tabla se encuentra en una base de datos externa, tambin
podemos escribir una composicin de tablas.
- La opcin tabla.* se utiliza cuando el origen est basado en varias tablas, y sirve para
indicar en qu tabla vamos a borrar.
- La opcin * es opcional y es la que se asume por defecto y se puede poner unicamente
cuando el origen es una sola tabla.
- La clusula WHERE sirve para especificar qu filas queremos borrar. Se eliminaran de la
tabla todas las filas que cumplan la condicin. Si no se indica la clusula WHERE, se borran
TODAS las filas de la tabla.
- En la condicin de bsqueda de la sentencia DELETE, se puede utilizar una subconsulta.
En SQL standard la tabla que aparece en la FROM de la subconsulta no puede ser la misma
que la tabla que aparece en la FROM de la DELETE pero en el SQL de Microsoft Jet s se
puede hacer.
- Una vez borrados, los registros no se pueden recuperar.

NOTA. EN LA CLAUSULA DELETE DEBERAS GENERAR UNA COPIA DE CADA TABLA PARA
AS PODER LLEVAR A CABO LA ELIMINACION DE FILAS. PARA HACER LA COPIA UTILIZA
LA SIGUIENTE INSTRUCCION. EJEMPLO:
1. SELECT * INTO PEDIDOS1
FROM PEDIDOS
SOBRE LA TABLA PEDIDOS1 DEBERAS HACER LA CONSULTA DE ELIMINACION OK.
EJEMPLO:
2. DELETE *
FROM PEDIDOS1
WHERE CLIE IN (2108, 2118)
LA TABLA EN LA QUE VERAS EL RESULTADO ES PEDIDOS1 Y NO PEDIDOS QUE ES LA
TABLA
ORIGINAL.

Ejemplo:
Elimina todo de la tabla pedidos donde el cliente sea 2108 y 2118

DELETE * FROM pedidos WHERE clie IN (2108, 2118)


EJERCICIOS.
3.
4.
5.
6.
7.

Elimina todo de la tabla empleados1 donde el titulo sea representante


Elimina todo de la tabla oficinas1 donde las ventas sean nulas
Elimina todo de la tabla clientes1 donde el lmite de crdito sea 65000
Elimina todo de la tabla pedidos1 donde el importe se encuentre entre 0 y 4000 pesos
Elimina todo de la tabla productos1 donde el precio sea mayor a 1000 pesos

LENGUAJE DE DEFINICION DE DATOS.


CREATE TABLE

La sentencia CREATE TABLE sirve para crear la estructura de una tabla no para rellenarla
con datos, nos permite definir las columnas que tiene y ciertas restricciones que deben cumplir
esas columnas.
nbcol: nombre de la columna que estamos definiendo
tipo: tipo de dato de la columna, todos los datos almacenados en la columna debern ser de
ese tipo. Para ver qu tipos de datos se pueden emplear haz clic aqu
Una restriccin consiste en la definicin de una caracterstica adicional que tiene una
columna o una combinacin de columnas, suelen ser caractersticas como valores no nulos
(campo requerido), definicin de ndice sin duplicados, definicin de clave principal y definicin
de clave fornea (clave ajena o externa, campo que sirve para relacionar dos tablas entre s).
restriccin1: una restriccin de tipo 1 es una restriccin que aparece dentro de la definicin
de la columna despus del tipo de dato y afecta a una columna, la que se est definiendo.
restriccin2: una restriccin de tipo 2 es una restriccin que se define despus de definir
todas las columnas de la tabla y afecta a una columna o a una combinacin de columnas.
Para escribir una sentencia CREATE TABLE se empieza por indicar el nombre de la tabla
que queremos crear y a continuacin entre parntesis indicamos separadas por comas las
definiciones de cada columna de la tabla, la definicin de una columna consta de su nombre,
el tipo de dato que tiene y podemos aadir si queremos una serie de especificaciones que
debern cumplir los datos almacenados en la columna, despus de definir cada una de las
columnas que compone la tabla se pueden aadir una serie de restricciones, esas
restricciones son las mismas que se pueden indicar para cada columna pero ahora pueden
afectar a ms de una columna por eso tienen una sintaxis ligeramente diferente.
La clusula NOT NULL indica que la columna no podr contener un valor nulo, es decir que
se deber rellenar obligatoriamente y con un valor vlido (equivale a la propiedad requerido S
de las propiedades del campo).
La clusula CONSTRAINT sirve para definir una restriccin que se podr eliminar cuando
queramos sin tener que borrar la columna. A cada restriccin se le asigna un nombre que se
utiliza para identificarla y para poder eliminarla cuando se quiera.
Como restricciones tenemos la de clave primaria (clave principal), la de ndice nico (sin

duplicados), la de valor no nulo, y la de clave fornea.


La clusula PRIMARY KEY se utiliza para definir la columna como clave principal de la
tabla. Esto supone que la columna no puede contener valores nulos ni pueden haber valores
duplicados en esa columna, es decir que dos filas no pueden tener el mismo valor en esa
columna.
En una tabla no pueden haber varias claves principales, por lo que no podemos incluir la
clusula PRIMARY KEY ms de una vez, en caso contrario la sentencia da un error. No hay
que confundir la definicin de varias claves principales con la definicin de una clave principal
compuesta por varias columnas, esto ltimo s est permitido y se define con una restriccin
de tipo 2.
La clusula UNIQUE sirve para definir un ndice nico sobre la columna. Un ndice nico es
un ndice que no permite valores duplicados, es decir que si una columna tiene definida un
restriccin de UNIQUE no podrn haber dos filas con el mismo valor en esa columna. Se suele
emplear para que el sistema compruebe el mismo que no se aaden valores que ya existen,
por ejemplo si en una tabla de clientes queremos asegurarnos que dos clientes no puedan
tener el mismo D.N.I. y la tabla tiene como clave principal un cdigo de cliente, definiremos la
columna dni con la restriccin de UNIQUE.
La clusula NOT NULL indica que la columna no puede contener valores nulos, cuando
queremos indicar que una columna no puede contener el valor nulo lo podemos hacer sin
poner la clusula CONSTRAINT, o utilizando una clusula CONSTRAINT.
La ltima restriccin que podemos definir sobre una columna es la de clave fornea, una
clave fornea es una columna o conjunto de columnas que contiene un valor que hace
referencia a una fila de otra tabla, en una restriccin de tipo 1 se puede definir con la clusula
REFERENCES, despus de la palabra reservada indicamos a qu tabla hace referencia,
opcionalmente podemos indicar entre parntesis el nombre de la columna donde tiene que
buscar el valor de referencia, por defecto coge la clave principal de la tabla2, si el valor que
tiene que buscar se encuentra en otra columna de tabla2, entonces debemos inidicar el
nombre de esta columna entre parntesis, adems slo podemos utilizar una columna que
est definida con una restriccin de UNIQUE, si la columna2 que indicamos no est definida
sin duplicados, la sentencia CREATE nos dar un error.
La restriccin IDENTITY (1,1) nos da un campo auto numrico indicndole desde que
nmero empezaremos y como lo va a manejar si de uno en uno o de dos en dos etc.
NOTA: EL IDENTITY NO FUNCIONA CON ACCESS OK.

Ejemplo:
CREATE TABLE tab1 IDENTITY (1,1) NOT NULL (
col1 INTEGER CONSTRAINT pk PRIMARY KEY,
col2 CHAR(25) NOT NULL,
col3 CHAR(10) CONSTRAINT uni1 UNIQUE,
col4 INTEGER,
col5 INT CONSTRAINT fk5 REFERENCES tab2 );

EJERCICIO
8. CREATE TABLE NOMINA
(NumEmpleado INTEGER NOT NULL,
Matricula INTEGER,
Nombre CHAR(25) NOT NULL,
RFC CHAR(10) );

Vous aimerez peut-être aussi