Compartir a través de


Creación y eliminación de tablas e índices mediante Access SQL

Las tablas son los bloques de creación principales de una base de datos relacional. Cada tabla contiene filas (o registros) de datos, y cada fila está organizada en un número finito de columnas (o campos). Para crear una tabla nueva en Access con SQL de Access, debe nombrar la tabla, nombrar los campos y definir el tipo de datos que contendrán los campos. Use la instrucción CREATE TABLE para definir la tabla en SQL. Supongamos que va a crear una base de datos de facturación. El primer paso consiste en crear la tabla inicial de clientes.

CREATE TABLE tblCustomers  
    (CustomerID INTEGER, 
    [Last Name] TEXT(50), 
    [First Name] TEXT(50), 
    Phone TEXT(10), 
    Email TEXT(50)) 

Al crear y eliminar tablas, tenga en cuenta los siguientes problemas:

  • Si un nombre contiene un espacio o algún otro carácter no alfanumérico, debe escribir ese nombre de campo entre corchetes ([]).
  • Si no declara una longitud para los campos de texto, tendrán como valor predeterminado 255 caracteres. Por coherencia y para mejorar la legibilidad del código, siempre debe definir la longitud de los campos.

Puede declarar un campo como NOT NULL, lo que significa que no se pueden insertar valores NULL en ese campo determinado; siempre se requiere un valor. Un valor null no debe confundirse con una cadena vacía o un valor de 0; es simplemente la representación de base de datos de un valor desconocido.

CREATE TABLE tblCustomers  
    (CustomerID INTEGER NOT NULL, 
    [Last Name] TEXT(50) NOT NULL, 
    [First Name] TEXT(50) NOT NULL, 
    Phone TEXT(10), 
    Email TEXT(50)) 

Para quitar una tabla de la base de datos, use la instrucción DROP TABLE .

DROP TABLE tblCustomers 

Creación y eliminación de índices

Un índice es una estructura de datos externos que se usa para ordenar u organizar los punteros a los datos en una tabla. Cuando aplica un índice a una tabla, está especificando una determinada organización de los datos para que se pueda acceder a ellos más rápidamente. Sin embargo, si aplica demasiados índices a una tabla, puede ralentizar el rendimiento, porque mantener el índice conlleva una sobrecarga adicional y porque los índices pueden causar problemas de bloqueo cuando se usan en entornos multiusuario. Si se usan en el contexto adecuado, los índices pueden mejorar enormemente el rendimiento de las aplicaciones.

Para crear un índice en una tabla, debe nombrar el índice, nombrar la tabla sobre la que se creará el índice, nombrar el campo o los campos de la tabla que se usarán y nombrar las opciones que quiere utilizar. Use la instrucción CREATE INDEX para compilar el índice. Por ejemplo, puede crear un índice en la tabla de clientes de la base de datos de facturación que mencionamos antes con el siguiente código:

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID) 

Los campos indexados se pueden ordenar de dos formas: ascendente (ASC) o descendente (DESC). El orden predeterminado es el ascendente y no es necesario declararlo. Si usa el orden ascendente, los datos se ordenarán del 1 al 100. Si especifica el orden descendente, los datos se ordenarán del 100 al 1. Debe declarar el criterio de ordenación con cada campo del índice.

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID DESC) 

Hay cuatro opciones principales que puede usar con un índice: PRIMARY, DISALLOW NULL, IGNORE NULL y UNIQUE. La opción PRIMARY designa al índice como clave principal de la tabla. Solo puede tener un índice de clave principal por cada tabla, aunque el índice de clave principal se puede declarar con más de un campo. Utilice la palabra clave WITH para declarar las opciones de índice.

CREATE INDEX idxCustomerID  
    ON tblCustomers (CustomerID) 
    WITH PRIMARY 

Para crear un índice de clave principal sobre varios campos, incluya todos los nombres de campos en la lista de campos.

CREATE INDEX idxCustomerName  
    ON tblCustomers ([Last Name], [First Name]) 
    WITH PRIMARY 

La opción DISALLOW NULL impide que se inserten datos NULL en el campo. (Es similar a la declaración NOT NULL que se usa en la instrucción CREATE TABLE ).

CREATE INDEX idxCustomerEmail  
    ON tblCustomers (Email) 
    WITH DISALLOW NULL 

La opción IGNORE NULL hace que los datos NULL de la tabla se ignoren por lo que respecta al índice. Esto significa que todos los registros que tengan un valor NULL en el campo declarado no se usarán (ni contarán) de cara al índice.

CREATE INDEX idxCustomerLastName  
    ON tblCustomers ([Last Name]) 
    WITH IGNORE NULL 

Además de las opciones PRIMARY, DISALLOW NULL e IGNORE NULL, puede declarar el índice como UNIQUE, es decir, que en el campo indexado solo se pueden insertar valores únicos, que no se repitan.

CREATE UNIQUE INDEX idxCustomerPhone  
    ON tblCustomers (Phone) 

Para quitar un índice de una tabla, use la instrucción DROP INDEX.

DROP INDEX idxName 
    ON tblCustomers 

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.