IEDGE – Transact SQL: el lenguaje de definición de datos


Dentro del lenguaje Transact SQL, existen dos tipos de sentencias:

  • el lenguaje de definición de datos (DDL) que permite crear y/o modificar el esquema relacional de una base de datos, esto es, crear, eliminar o modificar atributos, tablas, índices… Este será el que conoceremos en esta entrada.
  • el lenguaje de manipulación de datos (DML) que manipula los datos del esquema relacional, es decir consultar, borrar o actualizar información.

Los tipos de datos a utilizar en Transact SQL son muy variados: entero, entero largo, carácter, moneda, fecha/hora,binario, …

La sentencia para la creación de una tabla en la base de datos donde estemos conectados es:

Create table tabla1 (atributo1 tipo1)

El nombre de los atributos iran incluidos entre paréntesis especificando el tipo. Si existe más de un atributo, se separarán por comas.

Otra forma de generar una tabla (tabla1) rellenándola de datos y cargando su estructura de otra tabla (tabla2) es la siguiente:

Select *  into tabla1 from tabla2

La modificación de una tabla consiste en cambiar su estructura, añadiendo nuevos atributos, borrándolos o cambiando su definición. La sentencia es:

Alter table tabla1 Add atributo1 tipo1 Null

El nuevo atributo debe ser de tipo Null, ya que si no se permite valores nulos, reproduciría un error al crearse los campos de la tabla con ese valor.

Sólo pueden modificar las tablas el administrador, el propietario de la base de datos y el propietario de la tabla.

La sentencia que borra una tabla es:

Drop table Tabla

Para borrar la tabla, la misma no debe estar siendo usada. Bastaría con hacer una select de otra tabla para liberarla. En este caso sólo podrán borrar una tabla el administrador o el propietario de la misma.

La creación de un índice en una tabla se debe realizar junto con la creación de la estructura de la tabla. De este modo se evitan colisiones que pueden surgir al crear índices cuando existen datos en la tabla. Por ejemplo, si creamos un índice único para un campo, no puede admitir duplicados, y se encuentran valores que no son únicos, la generación del índice generaría un error. En Microsoft SQL Server se pueden crear índices aunque haya datos en la tabla.

El uso de un índice en una tabla es el de acelerar las consultas que se realizan sobre la base de datos. Es el propio diseñador el que establece los índices, para que el rendimiento del sistema sea eficiente, ya que aunque el índice acelera las consultas, ralentiza las actualizaciones de datos.

Esta es la sentencia para generar un índice:

Alter table tabla add constraint K1 primary key (atributo1, atributo2)

Con la sentencia anterior añadiremos una clave primaria en tabla, por los campos atributo1 y atributo2.

La siguiente sentencia:

Create index nombre1 on tabla1 (atributo1)

Creamos un índice nombre1 sobre la tabla1 por el campo atributo1, pero si además queremos que el índice no admita valores nulos, escribiríamos:

Create unique index nombre1 on tabla1 (atributo1) with ignore_dup_key

La sentencia que se encarga de borrar un índice es:

Drop index nombre1

Muchas gracias y esperamos sus comentarios!

Juan Manuel Escudero

Profesor de Dirección en Tecnología y Sistemas de Información

Nota: Para aprender de una forma práctica y rápida todo sobre la gestión profesional de un departamento de Sistemas y Tecnología de la Información, les invitamos a que consulten la Especialidad Europea en Gestión de Sistemas y Tecnologías de la Información donde se formará con los mejores profesores de Europa y Latinoamérica y conocerá las mejores prácticas en el área de SITI.

* Los contenidos publicados en este post son responsabilidad exclusiva del Autor.

Abrir Whatsapp
¿Cómo podemos ayudarte?
© IEDGE AI Business School
Soy Laura Rodríguez, del Dpto. de Admisiones de IEDGE AI Business School. ¿Cómo puedo ayudarte?