Crear o modificar tablas o índices mediante una consulta de definición de datos

Nota: Nos gustaría proporcionarle el contenido de ayuda actual lo más rápido posible en su idioma. Esta página se ha traducido mediante un sistema automático y es posible que contenga imprecisiones o errores gramaticales. Nuestro objetivo es que este contenido sea útil para usted. ¿Puede informarnos sobre si la información le ha sido útil al final de la página? Aquí tiene el artículo en inglés para que pueda consultarlo fácilmente.

Puede crear y modificar tablas, restricciones, índices y relaciones en Access escribiendo consultas de definición de datos en la vista SQL. Este artículo explica las consultas de definición de datos y cómo usarlos para crear tablas, restricciones, índices y relaciones. En este artículo también puede ayudarle a decidir cuándo usar una consulta de definición de datos.

En este artículo

Información general

Crear o modificar una tabla

Crear un índice

Crear una restricción o una relación

Información general

A diferencia de otras consultas de Access, una consulta de definición de datos no recupera datos. En su lugar, una consulta de definición de datos utiliza el lenguaje de definición de datos para crear, modificar o eliminar objetos de base de datos.

Nota: Lenguaje de definición de datos (DDL) forma parte del lenguaje de consulta estructurado (SQL).

Las consultas de definición de datos pueden ser muy útil. Con regularidad, puede eliminar y volver a crear partes de su esquema de base de datos simplemente, ejecute algunas consultas. Considere la posibilidad de usar una consulta de definición de datos si está familiarizado con instrucciones SQL y va a eliminar y volver a crear tablas concretas, restricciones, índices o relaciones.

Advertencia: Uso de consultas de definición de datos para modificar los objetos de base de datos puede ser arriesgado, porque las acciones no estén provistas de cuadros de diálogo de confirmación. Si comete un error, puede perder los datos o cambiar accidentalmente el diseño de una tabla. Tenga cuidado al usar una consulta de definición de datos para modificar los objetos en la base de datos. Si no es responsable de mantener la base de datos que está utilizando, debe consultar con el Administrador de la base de datos antes de ejecutar una consulta de definición de datos.

Importante: Realizar una copia de seguridad de las tablas implicadas antes de ejecutar una consulta de definición de datos.

Palabras clave DDL

Palabra clave

Usar

CREATE

Crear un índice o tabla que ya no existe.

ALTER

Modificar una tabla existente o una columna.

DROP

Eliminar una tabla existente, una columna o una restricción.

ADD

Agregar una columna o una restricción a una tabla.

COLUMN

Usar con agregar, modificar, o colocar

CONSTRAINT

Usar con agregar, modificar, o colocar

INDEX

Usar con crear

TABLE

Usar con ALTER, crear, o colocar

Principio de página

Crear o modificar una tabla

Para crear una tabla, use un comando CREATE TABLE. Un comando CREATE TABLE tiene la siguiente sintaxis:

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

La única necesaria elementos de un comando CREATE TABLE son el propio comando CREATE TABLE y el nombre de la tabla, pero normalmente desea definir algunos campos u otros aspectos de la tabla. Tenga en cuenta este sencillo ejemplo.

Suponga que desea crear una tabla para almacenar el nombre, el año y el precio de coches usados que piensa para su compra. Desea permitir hasta 30 caracteres del nombre y 4 caracteres para el año. Para usar una consulta de definición de datos para crear la tabla, haga lo siguiente:

Nota: En primer lugar debe habilitar el contenido de la base de datos en orden para ejecutar una consulta de definición de datos:

  • En la barra de mensajes, haga clic en Habilitar contenido.

Crear una tabla

  1. En la ficha crear, en el grupo Macros y código, haga clic en Diseño de la consulta.

  2. Cierre el cuadro de diálogo Mostrar tabla.

  3. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Definición de datos.

    Se oculta la cuadrícula de diseño y se muestra la pestaña de objeto de la vista SQL.

  4. Escriba la siguiente instrucción SQL:

    Crear tabla automóviles (nombre TEXT(30), año TEXT(4), precio moneda)

  5. En el grupo Resultados de la pestaña Diseño, haga clic en Ejecutar.

Modificar una tabla

Para modificar una tabla, use un comando ALTER TABLE. Puede usar un comando ALTER TABLE para agregar, modificar o quitar las restricciones o columnas (eliminar). Un comando ALTER TABLE tiene la siguiente sintaxis:

ALTER TABLE table_name predicate

donde predicado puede ser cualquiera de las siguientes acciones:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Suponga que desea agregar un campo de texto de 10 caracteres para almacenar información sobre la condición de cada coche. Puede hacer lo siguiente:

  1. En la ficha crear, en el grupo Macros y código, haga clic en Diseño de la consulta.

  2. Cierre el cuadro de diálogo Mostrar tabla.

  3. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Definición de datos.

    Se oculta la cuadrícula de diseño y se muestra la pestaña de objeto de la vista SQL.

  4. Escriba la siguiente instrucción SQL:

    Modificar tabla automóviles Agregar columna condición Text (10)

  5. En el grupo Resultados de la pestaña Diseño, haga clic en Ejecutar.

Parte superior de la página

Crear un índice

Para crear un índice en una tabla existente, use un comando CREATE INDEX. Un comando CREATE INDEX tiene la siguiente sintaxis:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

Los únicos elementos necesarios son el comando Crear índice, el nombre del índice, el argumento ON, el nombre de la tabla que contenga los campos que desea que el índice y la lista de campos que desea incluir en el índice.

  • Las causas de los argumentos DESC el índice que se creen en orden descendente, que puede ser útil si con frecuencia ejecutar consultas que busque valores superiores para el campo indizado o que ordenación el campo indexado en orden descendente. De forma predeterminada, se crea un índice en orden ascendente.

  • El argumento con principal establece el campo o campos indizados como la clave principal de la tabla.

  • El argumento con no permitir NULL hace que el índice requieren que se especifique un valor para el campo indizado, es decir, no se permiten valores nulos.

Suponga que tiene una tabla denominada automóviles con los campos que almacenan el nombre, el año, el precio y la condición de coches usados que piensa para su compra. Supongamos también que la tabla se ha convertido en grande y con frecuencia incluyen el campo de año en las consultas. Puede crear un índice en el campo año para ayudar a las consultas devuelven resultados más rápidamente mediante el procedimiento siguiente:

  1. En la ficha crear, en el grupo Macros y código, haga clic en Diseño de la consulta.

  2. Cierre el cuadro de diálogo Mostrar tabla.

  3. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Definición de datos.

    Se oculta la cuadrícula de diseño y se muestra la pestaña de objeto de la vista SQL.

  4. Escriba la siguiente instrucción SQL:

    Crear índice YearIndex ON automóviles (año)

  5. En el grupo Resultados de la pestaña Diseño, haga clic en Ejecutar.

Parte superior de la página

Crear una restricción o una relación

Una restricción establece una condición lógica que debe cumplir un campo o una combinación de campos cuando se insertan valores. Por ejemplo, una restricción única impide que el campo restringido acepte un valor que desea duplicar un valor para el campo existente.

Una relación es un tipo de restricción que hace referencia a los valores de un campo o combinación de campos de otra tabla para determinar si se puede insertar un valor en el campo restringida o la combinación de campos. No utilice una palabra clave especial para indicar que una restricción es una relación.

Para crear una restricción, utiliza una cláusula CONSTRAINT en un comando CREATE TABLE o ALTER TABLE. Existen dos tipos de cláusulas CONSTRAINT: uno para crear una restricción en un único campo y otro para crear una restricción en varios campos.

Restricciones de un solo campo

Cláusula CONSTRAINT solo campo inmediatamente después de la definición del campo que restringe y tiene la siguiente sintaxis:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Suponga que tiene una tabla denominada automóviles con los campos que almacenan el nombre, el año, el precio y la condición de coches usados que piensa para su compra. Supongamos también que con frecuencia olvide proporcionar un valor para la condición del automóvil y que siempre desea registrar esta información. Puede crear una restricción en el campo condición que le impide deja el campo vacío, mediante el procedimiento siguiente:

  1. En la ficha crear, en el grupo Macros y código, haga clic en Diseño de la consulta.

  2. Cierre el cuadro de diálogo Mostrar tabla.

  3. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Definición de datos.

    Se oculta la cuadrícula de diseño y se muestra la pestaña de objeto de la vista SQL.

  4. Escriba la siguiente instrucción SQL:

    Modificar tabla automóviles ALTER columna condición texto restricción ConditionRequired no nulo

  5. En el grupo Resultados de la pestaña Diseño, haga clic en Ejecutar.

Ahora, supongamos que, después de un tiempo, verá que hay muchos valores similar en el campo de condición debe ser el mismo. Por ejemplo, algunos de los coches tienen un valor de la condición de una mala y otros usuarios tienen un valor de incorrecto.

Nota: Si desea seguir los procedimientos restantes, agregue algunos datos falsificadas a la tabla de coches que creó en los pasos anteriores.

Después de limpiar los valores para que sean más coherentes, puede crear una tabla, denominada CarCondition, con un campo denominado condición, que contiene todos los valores que desea usar para la condición de coches:

  1. En la ficha crear, en el grupo Macros y código, haga clic en Diseño de la consulta.

  2. Cierre el cuadro de diálogo Mostrar tabla.

  3. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Definición de datos.

    Se oculta la cuadrícula de diseño y se muestra la pestaña de objeto de la vista SQL.

  4. Escriba la siguiente instrucción SQL:

    Crear tabla CarCondition (condición TEXT(10))

  5. En el grupo Resultados de la pestaña Diseño, haga clic en Ejecutar.

  6. Crear una clave principal para la tabla mediante una instrucción ALTER TABLE:

    Modificar tabla CarCondition ALTER columna condición texto restricción CarConditionPK clave principal

  7. Para insertar los valores de la condición el campo de la tabla de coches en la nueva tabla CarCondition, escriba la siguiente consulta SQL en la pestaña de objeto de vista SQL:

    Insertar en CarCondition SELECT DISTINCT condición de coches;

    Nota: La instrucción SQL en este paso es una consulta de datos anexados. A diferencia de una consulta de definición de datos, una consulta de datos anexados termina con un punto y coma.

  8. En el grupo Resultados de la pestaña Diseño, haga clic en Ejecutar.

Crear una relación mediante una restricción

Para exigir que cualquier nuevo valor insertado en el campo condición de la tabla de coches coincide con un valor de la condición el campo en la tabla CarCondition, a continuación, puede crear una relación entre CarCondition y automóviles en el campo denominado condición, mediante el siguiente procedimiento:

  1. En la ficha crear, en el grupo Macros y código, haga clic en Diseño de la consulta.

  2. Cierre el cuadro de diálogo Mostrar tabla.

  3. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Definición de datos.

    Se oculta la cuadrícula de diseño y se muestra la pestaña de objeto de la vista SQL.

  4. Escriba la siguiente instrucción SQL:

    Modificar tabla automóviles ALTER columna condición texto restricción FKeyCondition referencias CarCondition (condición)

  5. En el grupo Resultados de la pestaña Diseño, haga clic en Ejecutar.

Restricciones de varios campos

Una cláusula de restricción de varios campos solo fuera de una cláusula de definición de campo y tiene la siguiente sintaxis:

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Considere otro ejemplo que usa la tabla de coches. Suponga que desea asegurarse de que no hay dos registros en la tabla de automóviles tienen el mismo conjunto de valores de nombre, año, condición y precio. Puede crear una restricción única que se aplica a estos campos, mediante el procedimiento siguiente:

  1. En la ficha crear, en el grupo Macros y código, haga clic en Diseño de la consulta.

  2. Cierre el cuadro de diálogo Mostrar tabla.

  3. En la ficha Diseño, en el grupo Tipo de consulta, haga clic en Definición de datos.

    Se oculta la cuadrícula de diseño y se muestra la pestaña de objeto de la vista SQL.

  4. Escriba la siguiente instrucción SQL:

    Modificar tabla automóviles Agregar restricción NoDupes únicos (nombre, año, condición, precio)

  5. En el grupo Resultados de la pestaña Diseño, haga clic en Ejecutar.

Principio de página

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×