0% encontró este documento útil (0 votos)
88 vistas

Manual Postgresql

Este documento describe el lenguaje de definición de datos (DDL) en SQL. Explica los comandos CREATE TABLE y ALTER TABLE que se usan para definir y modificar las estructuras de tablas en una base de datos, incluyendo la adición y eliminación de columnas, restricciones como claves primarias y foráneas, y valores predeterminados. También cubre los tipos de datos y operadores y funciones comunes en SQL.

Cargado por

Edna Araque
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
88 vistas

Manual Postgresql

Este documento describe el lenguaje de definición de datos (DDL) en SQL. Explica los comandos CREATE TABLE y ALTER TABLE que se usan para definir y modificar las estructuras de tablas en una base de datos, incluyendo la adición y eliminación de columnas, restricciones como claves primarias y foráneas, y valores predeterminados. También cubre los tipos de datos y operadores y funciones comunes en SQL.

Cargado por

Edna Araque
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 38

LENGUAJE DE DEFINICIÓN DE BASE DE

DATOS

Lenguaje de Definición de Base


de Datos
DDL

Descripción breve
Proporciona comandos para la definición de esquemas de relación, borrado de relaciones y
modificaciones de los esquemas de relación.

ELABORADO POR: LEYDI JOHANA POLO AMADOR

Ing. Leydi Johana Polo Amador Página|0


LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

TABLA DE CONTENIDO
TABLA DE CONTENIDO .............................................................................................................................................. 1
LENGUAJE ESTRUCTURADO DE CONSULTAS - SQL ........................................................................................... 3
Características generales del SQL ................................................................................................................................ 3
pgAdmin III ...................................................................................................................................................................... 4
Definición ..................................................................................................................................................................... 4
Entorno trabajo ............................................................................................................................................................. 5
Conexión al servidor PostgreSQL ................................................................................................................................ 5
Creación de usuarios ..................................................................................................................................................... 6
Herramienta de edición de datos ................................................................................................................................... 8
Herramienta de Consulta SQL ...................................................................................................................................... 9
TIPO DE DATOS .......................................................................................................................................................................... 10
Numéricos................................................................................................................................................................... 10
Texto ........................................................................................................................................................................... 10
Hora y Fecha ............................................................................................................................................................... 10
OPERADORES Y FUNCIONES ................................................................................................................................... 11
Operadores .................................................................................................................................................................. 11
Operadores Matemáticos ........................................................................................................................................ 11
Operadores de Relacionales .................................................................................................................................... 11
Coincidencia de Patrones ........................................................................................................................................ 12
Coincidencia de rango ............................................................................................................................................ 14
Operadores Lógicos ................................................................................................................................................ 15
Funciones .................................................................................................................................................................... 16
Funciones matemáticas ........................................................................................................................................... 16
Funciones de Cadena .....................................................................................................................................................17
Funciones de Fecha ................................................................................................................................................. 18
LENGUAJE DE DEFINICIÓN DE DATOS (DDL) ...................................................................................................... 19
Estructura de una tabla................................................................................................................................................ 19
CREATE TABLE ........................................................................................................................................................... 20
SINTAXIS GENERAL CREATE TABLE................................................................................................................. 20
RESTRICCIONES ......................................................................................................................................................... 22
Not Null ...................................................................................................................................................................... 22

LLAVES .............................................................................................................................................................................22
Llave primaria ......................................................................................................................................................... 23
Llave foránea .......................................................................................................................................................... 26
Unique ........................................................................................................................................................................ 28
Sintaxis de la restricción Unique ............................................................................................................................ 28
Check .......................................................................................................................................................................... 29

Página|1
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS
Sintaxis de la restricción check ............................................................................................................................... 29
Default ........................................................................................................................................................................ 33
Sintaxis Default ...................................................................................................................................................... 33
ALTER TABLE ............................................................................................................................................................. 34
Tablas ......................................................................................................................................................................... 34
Establecer dueño de la tabla .................................................................................................................................... 34
Renombrar tabla...................................................................................................................................................... 34
Columnas .................................................................................................................................................................... 34
Agregar columna a una tabla .................................................................................................................................. 34
Renombrar columna en una tabla ........................................................................................................................... 34
Modificar columna(s) en una tabla ......................................................................................................................... 35
Eliminar columnas en una tabla .............................................................................................................................. 35
Default ........................................................................................................................................................................ 35
Establecer un valor por defecto............................................................................................................................... 35
Borrar un valor por defecto ..................................................................................................................................... 35
Not Null ...................................................................................................................................................................... 35
Establecer la restricción no nula sobre un campo ................................................................................................... 35
Borrar la restricción de no nulo de un campo ...............................................................................................................35
Constraints .................................................................................................................................................................. 36
Agregar la restricción de llave primaria a una columna .......................................................................................... 36
Agregar la restricción de chequeo .................................................................................................................................36
Agregar la restricción de valor Único a un campo .................................................................................................. 36
Eliminar una restricción utilizando el nombre ........................................................................................................ 36
DROP TABLE ........................................................................................................................................................................37

Página|2
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

LENGUAJE ESTRUCTURADO DE CONSULTAS -


SQL

El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje
declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas. Una
de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de
recuperar de forma sencilla información de interés de bases de datos, así como hacer cambios en ella.

Características generales del SQL

El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales y
permite así gran variedad de operaciones.

Es un lenguaje declarativo de "alto nivel" o "de no procedimiento" que, gracias a su fuerte base teórica y su orientación
al manejo de conjuntos de registros —y no a registros individuales— permite una alta productividad en codificación y la
orientación a objetos. De esta forma, una sola sentencia puede equivaler a uno o más programas que se utilizarían en
un lenguaje de bajo nivel orientado a registros. SQL también tiene las siguientes características:

 Lenguaje de definición de datos: El LDD de SQL proporciona comandos para la definición de esquemas de
relación, borrado de relaciones y modificaciones de los esquemas de relación.

 Lenguaje interactivo de manipulación de datos: El LMD de SQL incluye lenguajes de consultas basado tanto
en álgebra relacional como en cálculo relacional de tuplas.

 Integridad: El LDD de SQL incluye comandos para especificar las restricciones de integridad que deben
cumplir los datos almacenados en la base de datos.

Página|3
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

pgAdmin III
Definición
PostgreSQL es un sistema de gestión de base de datos relacional orientada a objetos, de código abierto (gratuito) y
código fuente disponible y basada en lenguaje C. Presenta atomicidad, consistencia, aislamiento y durabilidad.

Resistencia a fallas (Write Ahead Logging) lo que garantiza que en el caso de que la base de datos se caiga, existirá un
registro de las transacciones a partir del cual puedes restaurarla.

Herramienta de diseño y mantenimiento de Bases de Datos para Windows, de propósito general para diseñar,
mantener y administrar las bases de datos PostgresSQL.

Se caracteriza por:

 Entradas SQL aleatorias.

 Pantallas de información y ayuda para bases de Datos, Tablas, Índices, Secuencias, Visitas, Programas de
arranque, etc.

 Configuración de las tablas de Microsoft MSysConf.

Página|4
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Entorno trabajo
1. Para acceder a PgAdmin debemos:
2. Seleccionar Inicio  PostgreSQL x.x  pgAdmin III

3. Se muestra la Siguiente pantalla:

Conexión al servidor PostgreSQL


1. Seleccionamos el Servidor y hacemos clic derecho y luego en conectar
2. Ingresamos la contraseña del usuario y finalmente damos clic en Ok.

Página|5
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Se mostrará la relación de Base de Datos, tablespace, roles de grupos y roles de login creados por defecto al
momento de la instalación y los creados por el usuario.

Creación de usuarios
1. Clic derecho en roles de login y seleccionar New Login Role

2. Ingresamos los datos propios para determinado rol

3. Se puede asignar este rol de Login a un rol de grupo ya creado.

4. Luego de hacer clic en ok se muestra el usuario ya creado.

Página|6
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Crear una base de datos

Para poder agregar tablas, es necesario crear primero una base de datos.

1. Para ello, ubicar el ítem Databases en el Object browser

2. Hacer clic derecho y seleccionar 'New Database…' del menÚ COntextual.

3. Aparecerá la pantalla de New Database…:

Completar los campos principales:

 Name: denominación de la base de datos (por simplicidad, evitar espacios, MAYÚSCUlas, acentos y guion
bajo '_')

 Propietario: usuario (rol) que tendrá derechos especiales sobre la base de datos

 Presionar OK y se creará la base de datos.

Página|7
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Herramienta de edición de datos

La grilla de edición permite ver y editar los datos seleccionados en una tabla o vista.

Para ello, seleccionar la tabla Object browser y luego presionar el botón Ver los datos del objeto seleccionado (ícono
similar a una grilla) de la barra de herramientas o por el menÚ Herramientas, Ver Datos:

Para editar, hacer doble clic en la celda a modificar. Los ítems principales de la barra de herramienta son:

 Guardar (ícono similar a un disquete): almacena los datos modificados

 Eliminar (ícono similar a un basurero): borra la fila seleccionada

 Refrescar (ícono similar a reciclado): actualiza la grilla con datos recientes (por ejemplo,
nÚmero de secuencia)

Página|8
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Herramienta de Consulta SQL

Al seleccionar una base de datos, se habilita la herramienta de consulta, que permite ejecutar consultas SQL
arbitrarias.

Para ingresar a dicha herramienta, presionar el botón Ejecutar consultas SQL arbritrarias
(ícono similar a una hoja, sql, lapiz) de la barra de herramientas o dirigirse al menÚ Herramientas, Herramienta
de consulta (Ctrl+E).

Funcionalidades importantes:

 Ejecutar consulta (ícono similar a un Play)

 Exportar datos consulta (ícono similar a un Play con Disquete): para guardar las filas resultantes (ver
siguiente)

 Analizar consulta (ícono similar a una estructura de árbol): para mostrar


un EXPLAIN gráfico (explicación visual de los nodos del plan de ejecución de la consulta)

Página|9
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

TIPO DE DATOS
Numéricos
Tamaño de
Nombre almacenamiento Descripción Rango

INT2 2 bytes Entero pequeño -32768 a +32767


-2147483648 a
INT4 4 bytes Entero usual
+2147483647
-9223372036854775808 a
INT8 8 bytes Entero grande
9223372036854775807
Usuario especifica precisión,
DECIMAL(t,d) Exacto. El primer argumento
variable indica el total de dígitos y el Sin limite
NUMERIC(t,d)
segundo, la cantidad de
decimales

6 dígitos de precisión
FLOAT4 4 bytes Precisión variable, Inexacto
decimal
15 dígitos de precisión
FLOAT8 8 bytes Precisión variable, Inexacto
decimal
SERIAL 4 bytes Entero incremental 1 a 2147483647

Lógico
Nombre Descripción
BOOLEA Booleano lógico (True/False)
N

Texto
Nombre Descripción
CHAR(N) Longitud fija con limite
VARCHAR(n Longitud variable con limite
)
TEXT Longitud variable sin limite

Hora y Fecha
Nombre Tamaño de almacenamiento Descripción Límite inferior Límite superior
TIMESTAMP 8 bytes Fecha y hora 4713 AC 294276 DC
DATE 4 bytes Fecha sin hora 4713 AC 5874897 DC
TIME 8 bytes Hora sin fecha 00:00:00 24:00:00

P á g i n a | 10
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

OPERADORES Y FUNCIONES

Operadores

Operadores Matemáticos

Operador Descripción Ejemplo Resultado

+ Adición 2 + 3 5

- Substracción 2 – 3 -1

* Multiplicación 2 * 3 6

/ División (División entera, trunca el resultado) 3 / 2 1

% Modulo (Resto de la división) 5 % 4 1

^ Exponenciación 3 ^ 2 9

Operadores de Relacionales

Operador Descripción Ejemplo Resultado

> Mayor que 2 > 3 False

< Menor que 2 < 3 True

= Igual 2 = 3 False

>= Mayor o igual que 3 >= 2 True

<= Menor o igual que 2 <= 3 True

<> Diferente 3 <> 2 False

P á g i n a | 11
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Coincidencia de Patrones
Operador LIKE
Existe un operador relacional que se usa para realizar comparaciones exclusivamente de cadenas, LIKE y la
negación NOT LIKE.

Se puede utilizar operadores relacionales para comparar cadenas. Por ejemplo;


autor = 'Borges'

El operador igual ("=") nos permite comparar cadenas de caracteres, pero al realizar la comparación, busca
coincidencias de cadenas completas, realiza una BÚSqueda exacta. Se utiliza para comparar una expresión de cadena
con un modelo en una expresión SQL. Su sintaxis es:

campo [NOT] LIKE modelo

Se puede utilizar el operador LIKE para encontrar valores en los campos que coincidan con el modelo especificado.
Por modelo puede especificar un valor completo (Ana María), o se pueden utilizar carácter comodín para encontrar un
patrón de valores).

El operador LIKE se puede utilizar en una expresión para comparar un valor de un campo con una expresión de
cadena. Por ejemplo, si introduce LIKE ‘C%’ en una consulta SQL, la consulta devuelve todos los valores de
campo que comiencen por la letra C. En una consulta con parámetros, puede hacer que el usuario escriba el
modelo que se va a utilizar. En la tabla siguiente se muestra cómo utilizar el operador LIKE para comprobar
expresiones con diferentes modelos.

Tipo de coincidencia Modelo Planteado Coincide No coincide


Varios caracteres 'a%a' 'aaaa', 'aBsa', 'a134a' 'aBC'
Varios caracteres 'ab%' 'abcdefg', 'abc' 'cab', 'aab'
Varios caracteres '%a' 'zzzzza' 'abz'
Un solo carácter 'a_a' 'aaa', 'a3a', 'aBa' 'aBBBa'
Un solo carácter '_aa' 'zaa', 'yaa', 'Zaa' 'aza'

Ejemplo:

SELECT *
FROM empleado
WHERE nombre LIKE 'a_a';

P á g i n a | 12
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Operador POXIS regular expression


Expresiones regulares POSIX proporcionan un medio más poderoso para la coincidencia de patrones que el
operador LIKE.

Una expresión regular es una secuencia de caracteres que es una definición abreviada de un conjunto de cadenas (un
conjunto regular). Una cadena se dice para que coincida con una expresión regular si es un miembro del conjunto
regular descrito por la expresión regular.

Al igual que con LIKE, caracteres de patrones coinciden con caracteres de cadena exactamente a menos que sean
caracteres especiales en el lenguaje de expresiones regulares - pero las expresiones regulares utilizan diferentes
caracteres especiales que el LIKE.

A diferencia de los patrones LIKE, se permite una expresión regular para que coincida con cualquier parte dentro de
una cadena, a menos que la expresión regular está anclado de forma explícita al principio o al final de la cadena.

Operador Descripción Ejemplo Resultado

~ Coincide con la expresión regular, 'thomas' ~ '.*thomas.*' Verdadero


mayÚSCUlas y minÚSCUlas: sensibles

~* Coincide con la expresión regular, 'thomas' ~* '.*Thomas.*' Verdadero


mayÚSCUlas y minÚSCUlas: insensibles

!~ No coincide con la expresión regular, 'thomas' !~ '.*Thomas.*' Verdadero


mayÚSCUlas y minÚSCUlas: sensible

!~* No coincide con la expresión regular, 'thomas' !~* '.*vadim.*' Verdadero


mayÚSCUlas y minÚSCUlas: insensible

P á g i n a | 13
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Coincidencia de rango
Para indicar que deseamos recuperar los registros segÚn el intervalo de valores de un campo emplearemos el operador
BETWEEN cuya sintaxis es:

campo [NOT] BETWEEN valor1 AND valor 2

En este caso la consulta devolvería los registros que contengan en "campo" un valor incluido en el intervalo valor1,
valor2 (ambos inclusive). Si anteponemos la condición NOT devolverá aquellos valores no incluidos en el intervalo.

SELECT *
FROM Pedidos
WHERE CodPostal BETWEEN 28000 AND 28999;

Operador IN
Se puede usar el operador IN para verificar si un valor o campo coincide cualquier valor de una lista de valores.

Supongamos que posees una tabla llamada empleado y que deseas consultar los empleados que tengan los
siguientes nombres: ‘James’, ‘Ricardo’, ‘Brayan’ y ‘Laura’. Normalmente muchas personas que
desconozcan la función de IN harán lo siguiente:

SELECT *
FROM empleado
WHERE nombre = 'James' OR
nombre = 'Ricardo' OR
nombre = 'Brayan' OR
nombre = 'Laura';

La sintaxis del operador in es la siguiente:

campo [NOT] IN (valor1,valor2,...)

La expresión retorna verdadero si el valor coincide con cualquier valor de lista.

SELECT *
FROM empleado
WHERE nombre IN ('James', 'Ricardo', 'Brayan', 'Laura';

P á g i n a | 14
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Operadores Lógicos
Los operadores lógicos soportados por SQL son: AND, OR y NOT.

Operador Descripción
Es el "y" lógico. EvalÚa dos condiciones y devuelve un valor de verdad sólo si ambas son
AND ciertas.

Es el "o" lógico. EvalÚa dos condiciones y devuelve un valor de verdad si alguna de las dos es
OR cierta.

NOT Negación lógica. Devuelve el valor contrario de la expresión.

Tablas de verdad
<expresión1> Operador <expresión2> Resultado
Verdad AND Falso Falso
Verdad AND Verdad Verdad
Falso AND Verdad Falso
Falso AND Falso Falso
Verdad OR Falso Verdad
Verdad OR Verdad Verdad
Falso OR Verdad Verdad
Falso OR Falso Falso

Sintaxis:
A excepción del NOT todos poseen la siguiente sintaxis:
<expresión1> OPERADOR <expresión2>

En donde expresión1 y expresión2 son las condiciones a evaluar, el resultado de la operación varía en función del
operador lógico. La tabla adjunta muestra los diferentes posibles resultados: Si a cualquiera de las anteriores
condiciones le anteponemos el operador NOT el resultado de la operación será el contrario al devuelto sin el
operador NOT.

Ejemplos:
Edad > 25 AND Edad <= 50
(Edad => 25 AND Edad < 50) OR Sueldo = 100
NOT Estado <> 'Soltero'
(Sueldo > 100 AND Sueldo < 500) OR (Provincia = 'Madrid' AND Estado = 'Casado')

P á g i n a | 15
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Funciones
Funciones matemáticas
Funcion Descripción Ejemplo Resultado
ABS(x) Devuelve el valor absoluto del argumento "x" ABS(-20) 20
CEILING(x) Redondea hacia arriba el argumento "x". CEILING(12.34) 13
CBRT(dp) Devuelve la raíz cuadrada del argumento "dp" CBRT(27) 3
FLOOR(x) Redondea hacia abajo el argumento "x". FLOOR(12.34) 12
POWER(x,y) Devuelve el valor de "x" elevado a la "y" potencia. POWER(2, 3) 8
ROUND(numero) Devuelve un nÚmero redondeado al valor más próximo ROUND(10.4) 10
TRUNC(x) Trunca los decimales del nÚmero “x” TRUNC(42.4382,2) 42
Trunca la cantidad de decimales “d” a mostrar del
TRUNC(x,d) TRUNC(42.4382,2) 42.43
nÚmero “x”
MOD(x,y) Devuelve el residuo de la división entre “x” / “y”. MOD(9,4) 1
RANDOM() Numero aleatorio entre 0.0 y 1,0. RANDOM() 0.665044381283224
Si el argumento es un valor positivo devuelve 1;-1 si es
SIGN(x) SIGN(-23.4) -1
negativo y si es 0, 0.

Devuelve la raíz cuadrada del valor enviado como


SQRT(x) SQRT(9) 3
argumento
PI() Devuelve el valor de pi PI() 3.14159265358979
SIN(x) Retorna el valor del seno en radianes SIN(0) 0
COS(x) Retorna el valor del coseno en radianes COS(0) 1
TAN(x) Retorna el valor de la tangente en radianes TAN(0) 0

Ing. Laura C. Duarte Quintero P á g i n a | 16


LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Funciones de Cadena
Función Descripción Ejemplo Resultado
LENGTH(string) Retorna la longitud del texto LENGTH('Hola') 4
UPPER(string) Retorna el texto convertido a maYÚSCUlas UPPER('Hola') HOLA
LOWER(string) Retorna el texto convertido a minÚSCUlas LOWER('Hola') hola
STRING || string Concatenación de cadena 'Post' || 'greSQL' PostgreSQL
Convierte la primera letra de cada palabra en
INITCAP(string) maYÚSCUla y el resto en minÚSCUla. INITCAP('Hola TOMAS') Hola Tomas

Retorna la posición de un string dentro de otro. Si no


POSITION(substring in string) está contenido retorna un 0. POSITION('Mundo' in 'Hola Mundo') 6

Retorna un substring, le indicamos la posición inicial y


SUBSTRING(string [from int] la cantidad de caracteres a extraer desde dicha posición SUBSTRING('Hola Mundo' from 6 for 5) Mundo
[for int])

Elimina caracteres del principio o o final de un string.


TRIM([leading|trailing|both] Por defecto elimina los espacios en blanco si no CHAR_LENGTH(TRIM(' Hola Mundo ') 10
[string] from string) indicamos el caracter o string.

LTRIM(string,string)
Elimina los caracteres de la izquierda segÚn el dato del CHAR_LENGTH(LTRIM(' Hola')) 4
segundo parámetro de la función ltrim('---Hola','-') Hola
Elimina los caracteres de la derecha segÚn el dato del
RTRIM(string,string) segundo parámetro de la función. Ejemplo: CHAR_LENGTH(RTRIM('Hola ') 4

Retorna una subcadena a partir de la posición que le


indicamos en el segundo parámetro hasta la posición
SUBSTR(text,int[,int])
indicada en el tercer parámetro SUBSTR('Hola Mundo',2,4) ola

Rellena de caracteres por la izquierda. El tamaño total de


campo es indicado por el segundo parámetro y el texto a
LPAD(text,int,text)
insertar se indica en el tercero LPAD('Hola Mundo',5,'-') -----Hola Mundo

Rellena de caracteres por la derecha. El tamaño total de


campo es indicado por el segundo parámetro y el texto a
RPAD(text,int,text):
insertar se indica en el tercero RPAD('Hola Mundo',5,'-') Hola Mundo-----

Ing. Laura C. Duarte Quintero P á g i n a | 17


LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Funciones de Fecha
Función Descripción Ejemplo Resultado

CURRENT_DATE retorna la fecha actual CURRENT_DATE 2016-02-01

retorna la hora actual con la zona


CURRENT_TIME CURRENT_TIME 18:33:06.074493+00
horaria

retorna la fecha y la hora actual 2016-02-01


CURRENT_TIMESTA CURRENT_TIMESTAMP
con la zona horaria
MP 18:34:16.63131+00

retorna una parte de la fecha u hora segÚn le indiquemos antes del from, luego del from debemos indicar un campo o valor de tipo timestamp (o en su defecto
anteceder la palabra clave timestamp para convertirlo)

Retorna el año EXTRACT(YEAR FROM TIMESTAMP'2016-02-01 12:25:50') 2016

Retorna el mes EXTRACT(MONTH FROM TIMESTAMP'2016-02-01 12:25:50') 02

Retorna el día EXTRACT(DAY FROM TIMESTAMP'2016-02-01 12:25:50') 01

Retorna la hora EXTRACT(HOUR FROM TIMESTAMP'2016-02-01 12:25:50') 12


EXTRACT(valor
from timestamp) Retorna el minuto EXTRACT(MINUTE FROM TIMESTAMP'2016-02-01 12:25:50') 25

Retorna el segundo EXTRACT(SECOND FROM TIMESTAMP'2016-02-01 12:25:50') 50

Retorna el siglo EXTRACT(CENTURY FROM TIMESTAMP'2016-02-01 12:25:50') 21

Retorna el día de la
EXTRACT(DOW FROM TIMESTAMP'2016-02-01 12:25:50') 1
semana

Retorna el día del año EXTRACT(DOY FROM TIMESTAMP'2015-12-31 12:25:50') 365

Retorna el nÚmero de
EXTRACT(WEEK FROM TIMESTAMP'2016-02-01 12:25:50') 6
semana dentro del año

Retorna en que cuarto del año


EXTRACT(QUARTER FROM TIMESTAMP'2016-02-01 12:25:50') 1

Ing. Laura C. Duarte Quintero P á g i n a | 18


LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

LENGUAJE DE DEFINICIÓN DE DATOS (DDL)


Es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Incluye órdenes para
modificar, borrar o definir las tablas en las que se almacenan los datos de la base de datos. Existen tres operaciones
básicas: CREATE, ALTER y DROP.

COMANDOS
DLL
Comando Descripción

CREATE Utilizado para crear nuevas tablas, campos e índices

DROP Empleado para eliminar tablas e índices

Utilizado para modificar las tablas agregando campos o


ALTER cambiando la definición de los campos.

Estructura de una tabla


La base de datos se organiza en dos marcadas secciones; el esquema y los datos (o instancia). El esquema es la
definición de la estructura de la base de datos y principalmente almacena los siguientes datos: El nombre de cada
tabla, el nombre de cada columna, el tipo de dato de cada columna y la tabla a la que pertenece cada columna. Los datos
o instancia es el contenido de la base de datos en un momento dado. Es en sí, el contenido de todos los registros.

Una tabla en una base de datos relacional es muy similar


a una tabla en papel: Se compone de filas y columnas. El
nÚmero y el orden de las columnas es fijo, y cada
columna tiene un nombre. El nÚmero de filas es
variable - que refleja la cantidad de datos se almacena en
un momento dado. SQL no hace ninguna garantía acerca
del orden de las filas de una tabla. Cuando se lee una
tabla, aparecerán las filas en un orden no especificado, a
menos que se solicite expresamente la ordenación.

Cada columna tiene un tipo de datos. Las limitaciones de tipo de datos el conjunto de posibles valores que pueden
asignarse a una columna y asigna a la semántica de los datos almacenados en la columna de modo que pueda ser
utilizado para los cálculos. Por ejemplo, una columna declarada de un tipo numérico no aceptará cadenas de texto
arbitrarias, y los datos almacenados en una columna de este tipo puede ser utilizado para cálculos matemáticos. Por el
contrario, una columna declarada de un tipo de cadena de caracteres aceptará casi cualquier tipo de datos, pero no se
presta a cálculos matemáticos, aunque otras operaciones, como la concatenación de cadenas están disponibles.

Ing. Laura C. Duarte Quintero P á g i n a | 19


LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

CREATE TABLE
Las tablas son la estructura básica donde se almacena la información en la base de datos. Dado que en la mayoría de
los casos, no hay forma de que el proveedor de base de datos sepa con antelación cuáles son sus necesidades de
almacenamiento de datos, es probable que necesite crear tablas en la base de datos usted mismo.

Antes de sumergirnos en la sintaxis SQL para CREATE TABLE, es una buena idea comprender lo que se incluye en
una tabla. Las tablas se dividen en filas y columnas. Cada fila representa una parte de los datos, y cada columna puede
pensarse como la representación de un componente de aquella parte de los datos. Entonces, por ejemplo, si tenemos
una tabla para registrar la información del cliente, las columnas pueden incluir información tal como Primer Nombre,
Apellido, Dirección, Ciudad, País, Fecha de Nacimiento y demás. Como resultado, cuando especificamos una tabla,
incluimos los títulos de columna y los tipos de datos para esta columna en particular.

Entonces ¿Qué son los tipos de datos? Generalmente, los datos se generan en formas variadas. Podría ser un entero
(tal como 1), un nÚmero real (tal como 0,55), una línea (tal como 'sql'), una fecha/expresión de tiempo (tal como '25-
ene-2000 03:22:22'), o incluso en formato binario. Cuando especificamos una tabla, necesitamos especificar el tipo de
dato asociado con cada columna (es decir, especificaremos que ‘firstname’ es de varchar(50) tipo – lo que
significa que es una línea con 50 caracteres). Una cosa a tener en cuenta es que las diferentes bases de datos relacionales
permiten diferentes tipos de datos, entonces es prudente consultar primero una referencia específica de base de
datos.

SINTAXIS GENERAL CREATE TABLE

CREATE TABLE <nombretabla> (


<nombrecolumna> TIPODATO [NOT NULL | NULL],
[ { <nombrecolumna> TIPODATO [NOT NULL | NULL],
<nombrecolumna> TIPODATO [NOT NULL | NULL], ... } ]
CONSTRAINT <pknombreconstraint> PRIMARY KEY (<nombrecolumna>));

< >: Obligatorio [ ]: Opcional { }: Repetir cuantas veces sean necesarias.

P Á G I N A | 20
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Nombre para la nueva tabla y Nombres de las columnas

 Los nombres de las tablas y las columnas deben respetar las siguientes reglas:

 Deben empezar con letras.

 Debe tener entre 1 y 63 caracteres.

 Solamente se permiten los siguientes caracteres: 0-9, a-z, A-Z, _ y $.

 No se permiten nombres duplicados.

Por ejemplo:

CREATE TABLE miprimeratabla (


primeracolumna SERIAL,
segundacolumna INT4 );

Esto crea una tabla denominada miprimeratabla con dos columnas. La primera columna es de nombre
primeracolumna y tiene un tipo de datos de SERIAL; la segunda columna tiene el nombre segundacolumna y
el tipo INT4. Tenga en cuenta que la lista de la columnas está separada por comas y rodeado de paréntesis ( ).

Por supuesto, el ejemplo anterior era muy artificial. Normalmente, se da nombres a las tablas y columnas que
transmiten el tipo de datos que almacenan. Así que echemos un vistazo a un ejemplo más realista:

Se crea una tabla llamada productos con tres columnas. La primera columna se llama nroproducto y
tiene un tipo de dato SERIAL, la segunda columna es nombre y tiene un tipo de dato VARCHAR(40) con una
longitud de cadena máxima de 40 y por Último el PRECIO que es de tipo DECIMAL(10,1) y consta de una longitud
de 10 nÚmeros y uno de ellos es decimal.

CREATE TABLE productos (


nroproducto SERIAL,
nombre VARCHAR(40),
precio DECIMAL(10,1) );

P Á G I N A | 21
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

RESTRICCIONES
Para asegurar la integridad de los datos almacenados en nuestras tablas, podemos crear restricciones, algunos
los hemos utilizado sin querer o simplemente desconocemos que lo que hicimos fue una restricción, por ejemplo
una llave primaria. Estas restricciones las podemos implementar al momento de crear nuestras tablas o de
modificarlas, también es necesario señalar que dichas restricciones son objetos propios de la base de datos y por lo
tanto requieren de un nombre Único

Not Null
La restricción NOT NULL sirve para especificar que una columna no acepta el valor NULL, es decir, que esa columna
siempre tiene que tener algÚn valor, no puede estar vacía.

CREATE TABLE productos (


nroproducto SERIAL NOT NULL,
nombre VARCHAR(40) NOT NULL,
precio DECIMAL(10,1) );

Esta sentencia crea una tabla denominada productos, donde tenemos 3 columnas. Las columnas nroproducto y
nombre llevan NOT NULL, esto quiere decir que cualquier fila insertada en esta tabla tiene que tener algÚn valor
para las columnas nroproducto y nombre.

LLAVES
Llaves
Únicas No Únicas

Llaves candidata Llave compuesta Llave primaria Llave alternativa Llave foránea

Las llaves son una o más columnas que están en una relación (tabla) y que su valores son utilizados para identificar a
cada tupla, algunas clave son Únicas y otras no, si una llave es Única lo que significa es que los valores de la
columna llave van hacer Únicas en toda la tabla.
Por ejemplo, si tenemos una tabla empleados, la columna documento del empleado es una llave Única por lo cual no
podrá permitir que haya dos valores iguales.
Cada tabla puede poseer más de una llave. Por ejemplo, La tabla empleados, la llave puede ser tanto el atributo
codigo, como el atributo docemp (documento de identidad del empleado). Tenemos dos llaves potenciales,
también llamadas llaves candidatas.
De entre todas las llaves candidatas, el administrador, cuando define la tabla, debe decidir cuál de ellas va a ser la
llave principal o llave primaria, mientras que el resto de las claves pasan a denominarse llaves alternativas o llaves
alternas.

P Á G I N A | 22
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Llave primaria
La llave principal o primaria proporciona un valor Único para cada fila de la tabla y nos sirve de identificador de
registros de forma que con esta llave podamos saber sin ningÚn tipo de equivocación el registro al cual
identifica. No podemos definir más de una llave principal, pero podemos tener una clave principal compuesta por más
de un campo.

Llave primaria simple


Por ejemplo, la tabla llamada empleados con los siguientes campos:

CREATE TABLE empleados (


docemp VARCHAR(20) NOT NULL,
nomemp VARCHAR(40),
apeemp VARCHAR(40),
fecnacemp DATE );

Necesitamos definir una llave primaria para una tabla con los datos descriptos arriba. No podemos usar la columna
nomemp porque varios empleados pueden tener el mismo nombre; tampoco podemos usar la fecnacemp
porque varios empleados pueden haber nacido el mismo día. Tampoco sirve el campo apeemp. El campo
docemp: el documento de empleado representa de forma Única al empleado dentro de la empresa y usamos la
siguiente sintaxis para definir la llave primaria.

Donde, CONSTRAINT, sirve para definir una restricción que se podrá eliminar cuando queramos sin tener que borrar la
columna. A cada restricción se le asigna un nombre <pknombreconstraint> que se utiliza para identificarla y
para poder eliminarla cuando se quiera. Es una restricción de clave primaria (llave principal) porque son campo con
valores Únicos (sin duplicados. Entonces, la tabla llamada empleados queda de la siguiente forma:

CREATE TABLE empleados (


docemp VARCHAR(20) NOT NULL,
nomemp VARCHAR(40),
apeemp VARCHAR(40),
fecnacemp DATE,
CONSTRAINT pkempleados PRIMARY KEY (docemp));

P Á G I N A | 23
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Llave primaria compuesta


Definir una llave primaria compuesta (dos o más campos) compone la llave primaria.

Ejemplo, el estacionamiento almacena cada día los datos de los vehículos que ingresan en la tabla llamada ingreso con
los siguientes campos:

CREATE TABLE ingreso (


matricula VARCHAR(6) NOT NULL,
horallegada TIME NOT NULL,
horasalida TIME );

No podemos usar la matricula porque un mismo auto puede ingresar más de una vez en el día al estacionamiento;
tampoco podemos usar la hora de entrada porque varios autos pueden ingresar a una misma hora. Tampoco
sirve la hora de salida.

Como ningÚn campo, por si solo cumple con la condición para ser clave, es decir, debe identificar un solo registro, el
valor no puede repetirse, debemos usar dos campos.

Definimos una clave compuesta cuando ningún campo por si solo cumple con la condición para ser clave. En este
ejemplo, usamos dos campos como clave, la matricula junto con la hora de llegada, así identificamos
unívocamente cada registro.

Para establecer más de un campo como clave primaria usamos la siguiente sintaxis:

CREATE TABLE ingreso (


matricula VARCHAR(7) NOT NULL,
horallegada TIME NOT NULL,
horasalida TIME,
CONSTRAINT pkingreso PRIMARY KEY (matricula, horallegada) );

Nombramos los campos que formarán parte de la clave separados por comas.

(matricula, horallegada)

Un campo que es parte de una clave primaria puede ser auto-incremental sólo si es el primer campo que compone la
clave, si es secundario no se permite.

P Á G I N A | 24
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

¿Cómo seleccionar la llave principal?

 Seleccione un clave que no contenga valores desconocidos (NULL). Técnicamente las claves candidatas
pueden contener valores desconocidos (NULL).

En el caso, que una clave candidata pueda contener este tipo de valores, esta clave se descartar como clave
primaria.

 Seleccione un clave que sea Única y que no se repita en el tiempo. Es posible que las claves candidatas que son
Únicas en este momento puede contener valor duplicados en otro instante de tiempo.

Este tipo de claves candidatas no reÚnen los requisitos para ser clave principal.

 Las claves primarias no cambian en el tiempo. Los valores de clave primaria no deben seguir cambiando en el
tiempo. Es conveniente para una base de datos que los valores almacenados en la columna de la clave
primaria sean estáticos.

Recuerde, un cambio en los valores afecta negativamente la integridad de la base de datos, los índices
primarios y secundarios, ya que las claves primarias hacen referencia a numerosos lugares en la base de datos.

El concepto de llave es tan importante, que da lugar a una serie de restricciones fundamentales sobre la base de datos.
Son la regla de identificación Única y la regla de integridad referencial.

Regla de identificación Única.

«En ninguna tupla de una tabla, ninguno de los atributos que formen parte de la clave primaria de una relación podrá
tomar un valor nulo. El valor de la clave será único para cada tupla de la tabla».

Esta regla nos dice que una vez escogida la clave primaria de una tabla, y dado que ninguno de los atributos que la
componen es superfluo, no podemos dejar de lado el valor de ninguno de ellos para identificar unívocamente a una tupla.
NingÚn atributo de la clave puede ser vacío porque en tal caso no sería una característica identificativa propia del
objeto a que pertenece.

P Á G I N A | 25
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Llave foránea

Regla de integridad referencial.


«Si una tupla de una tabla A posee atributos (a1…an) que hacen referencia a la clave primaria de otra tupla de una
tabla B, dichos atributos poseen, o bien valores nulos, o bien valores (v1…vn) que se corresponden con la clave de una
tupla concreta de B».

Es un sistema de reglas que utilizan la mayoría de las bases de datos relacionales para asegurarse que los registros de
las tablas relacionadas son válidas y que no se borren o cambien datos relacionados de forma accidental produciendo
errores de integridad.

Cuando se define una columna como llave foránea, las filas de la tabla pueden contener en esa columna o bien el valor
nulo (ningÚn valor), o bien un valor que existe en la otra tabla, un error sería asignar a un habitante un municipio que
no está en la tabla de municipios.

Esto es lo que se denomina integridad referencial (claves foráneas) debe ser correctos. La integridad referencial hace
que el sistema gestor de base de datos se asegure que no haya en las claves foráneas, valores que no estén en la tabla
principal.

Tip: Al crear muchas tablas relacionadas entre sí, es conveniente elegir un patrón de nomenclatura coherente para las
tablas y columnas. Por ejemplo, existe la opción de utilizar una combinación entre el nombre de la tabla y el atributo.

La clave externa, foránea, ajena o FOREIGN KEY, es una columna o varias columnas, que sirven para señalar cual
es la clave primaria de otra tabla.

La columna o columnas señaladas como FOREIGN KEY, solo podrán tener valores que ya existan en la clave
primaria PRIMARY KEY de la otra tabla.

P Á G I N A | 26
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Ejemplo de FOREIGN KEY


Tabla departamento, con la clave primaria coddpto

coddpto nomdpto

1 Recursos Humanos

2 Financiera

3 Secretaria General

Tabla empleado, con una clave externa FOREIGN KEY coddpto, que hace referencia a la clave primaria
coddpto de la tabla anterior departamento y por tanto, solo puede tener un valor de los que tiene en esa tabla

codemp nomemp ape1emp ape2emp coddpto

63561 Alcira Neira Blum 1

13721 Diego Álvarez Arévalo 2

37802 Sergio Mantilla Jerez 3

Para agregar una llave foránea utilizamos el comendo ALTER TABLE.

Sintaxis Llave Foránea


[ALTER TABLE nombretabla

ADD CONSTRAINT fknombreconstraint FOREIGN KEY (nombrecolumnafk)

REFERENCES nombretabla(nombrecolumnapk)

ON DELETE RESTRICT ON UPDATE CASCADE];

ALTER TABLE empleado


ADD CONSTRAINT fk_empleado FOREIGN KEY (coddpto)
REFERENCES departamento(coddpto)
ON DELETE RESTRICT ON UPDATE CASCADE;

P Á G I N A | 27
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Unique
Puede utilizar la restricción UNIQUE para asegurarse de que no hay valores duplicados en columnas específicas que no
participan en una clave principal.

Aunque tanto una restricción UNIQUE y una restricción PRIMARY KEY cumplen singularidad, utilice una restricción
UNIQUE en lugar de una restricción PRIMARY KEY cuando se quiere hacer cumplir la singularidad de una columna
o combinación de columnas, que no es la clave principal.

MÚltiples restricciones UNIQUE se pueden definir en una tabla, mientras que sólo una restricción
PRIMARY KEY se puede definir.

También, a diferencia de las restricciones PRIMARY KEY, UNIQUE permiten el valor NULL. Sin embargo, como
con cualquier valor de la participación en una restricción UNIQUE, sólo un valor nulo es permitido por la columna.

Sintaxis de la restricción Unique


[ALTER TABLE nombretabla

ADD CONSTRAINT uqnombreconstraint UNIQUE (nombrecolumna) ];

CREATE TABLE cliente (


codigo INT4,
apellido VARCHAR(30) NOT NULL,
nombre VARCHAR(30),
email VARCHAR(100),
DIRECCION VARCHAR(100),
constraint pkcliente PRIMARY KEY (codigo));
ALTER TABLE cliente
ADD CONSTRAINT uqemail UNIQUE (email);

La columna email NO puede incluir valores duplicados, mientras dicha restricción no se aplica para columnas
apellido y nombre.

Por favor note que una columna que se especifica como clave primaria también puede ser Única. Al mismo tiempo,
una columna que es Única puede o no ser clave primaria.

P Á G I N A | 28
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Check
La restricción CHECK asegura que todos los valores en una columna cumplan ciertas condiciones.
Una restricción de comprobación es el tipo de restricción más genérico. Se le permite especificar que el valor de una
determinada columna debe satisfacer una expresión booleana (valor de verdad).

Sintaxis de la restricción check


[ALTER TABLE nombretabla
ADD CONSTRAINT cknombreconstraint CHECK (condición) ];
Ejemplos:
Exigir que el código solo acepte valores enteros positivos:

CREATE TABLE cliente (


codigo INT4,
apellido VARCHAR(30) NOT NULL,
nombre VARCHAR(30),
email VARCHAR(100),
direccion VARCHAR(100),
CONSTRAINT pkcliente PRIMARY KEY (codigo) );
ALTER TABLE cliente
ADD CONSTRAINT ckcodigo CHECK (codigo > 0);

Exigir que la fecha de terminación del proyecto sea mayor a la de finalización o que sea nula significando que no se
ha terminado aÚn:

CREATE TABLE proyecto (


codpro SERIAL,
nom VARCHAR(50),
descp TEXT,
finicio DATE,
ftermina DATE,
CONSTRAINT pkproyecto PRIMARY KEY (codpro));
ALTER TABLE proyecto
ADD CONSTRAINT ckvalfechas
CHECK (ftermina>finicio OR ftermina IS NULL);

P Á G I N A | 29
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

La tabla producto cuenta con un código que está conformado por tres letras y tres nÚmeros separados por un
guion. Verifique mediante una restricción CHECK, si el código cumple con los requerimientos:

CREATE TABLE productos (


codigo VARCHAR(7),
nombre VARCHAR(50),
descr TEXT,
fmanuf DATE,
fcompra DATE,
fvenc DATE,
CONSTRAINT pkproeductoss PRIMARY KEY (codigo));
ALTER TABLE productos
ADD CONSTRAINT ckvalcod
CHECK (codigo ~'[A-Z][A-Z][A-Z]-[0-9][0-9][0-9]');

La tabla producto cuenta con un código que está conformado por tres letras (la primera letra solo puede ser A, B o C) y
tres nÚmeros separados por un guion. Verifique mediante una restricción CHECK, si el código cumple con los
requerimientos:

CREATE TABLE productos (


codigo VARCHAR(7),
nombre VARCHAR(50),
descr TEXT,
fmanuf DATE,
fcompra DATE,
fvenc DATE,
CONSTRAINT pkproeductoss PRIMARY KEY (codigo));
ALTER TABLE productos
ADD CONSTRAINT ckvalcod
CHECK (codigo ~'[ABC][A-Z][A-Z]-[0-9][0-9][0-9]');

P Á G I N A | 30
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

La validación de un valor que representa la nota de un estudiante debe cumplir con el intervalo
DECIMAL de 0,0 a 5,0.

CREATE TABLE calificacion (


estudiante VARCHAR(50),
asignatura VARCHAR(50),
examen VARCHAR(6),
notafinal DECIMAL(2,1),
fexamen DATE,
CONSTRAINT pkcalificacion PRIMARY KEY (estudiante,asignatura,examen));
ALTER TABLE calificacion
ADD CONSTRAINT ckvalcal

CHECK (notafinal>=0 and notafinal<=5);

Validar que la fecha de manufactura sea menor que la fecha de compra, además, necesitamos que la fecha de
vencimiento sea mayor a la fecha de manufactura y la fecha de compra este entre la fecha de manufactura y la fecha
de vencimiento.

CREATE TABLE productos (


codigo VARCHAR(6),
nombre VARCHAR(50),
descr TEXT,
fmanuf DATE,
fcompra DATE,
fvenc DATE,
CONSTRAINT pkproeductos PRIMARY KEY (codigo));
ALTER TABLE productos
ADD CONSTRAINT ckvalfec
CHECK (fmanuf<=fcompra AND
(fcompra BETWEEN fmanuf AND fvenc) AND
fmanuf<fvenc);

P Á G I N A | 31
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Al ingresar cadena de caracteres en el campo de día de la semana ingresado, validar que corresponde con los nombres
de los días de la semana.

CREATE TABLE excursion (


numero SERIAL,
nombre VARCHAR(100),
diasem VARCHAR(9),
hora TIME,
CONSTRAINT pkexcursion PRIMARY KEY (numero));
ALTER TABLE excursion
ADD CONSTRAINT ckexcursion
CHECK (diasem IN ('Lunes','Martes','Miércoles','Jueves','Viernes','Sábado','Domingo'));

P Á G I N A | 32
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Default
La restricción DEFAULT se utiliza para establecer un valor por defecto a una columna.

Si no se especifica un valor al insertar una fila, entonces se podrá el valor por defecto (DEFAULT) que tenga cada
columna.

Sintaxis Default
[ALTER TABLE nombretabla

ALTER COLUMN nombrecolumna SET DEFAULT valor];

Si desconocemos la dirección del cliente, el sistema coloca la palabra Desconocido.

CREATE TABLE cliente (


codigo INT4,
apellido VARCHAR(30) NOT NULL,
nombre VARCHAR(30),
email VARCHAR(100),
direccion VARCHAR(100),
CONSTRAINT pkcliente PRIMARY KEY (codigo));
ALTER TABLE cliente
ALTER COLUMN direccion SET DEFAULT 'Desconocido';

Si el usuario final no ingresa la fecha de contratación de un empleado, se tomara por defecto la fecha actual,
utilizando la función CURRENT_DATE que permite retornar la fecha actual.

CREATE TABLE empleados(


identificacion VARCHAR(15),
nombre VARCHAR(50) NOT NULL,
apellido VARCHAR(50) NOT NULL,
email VARCHAR(50),
salario DECIMAL(15,3),
porccomision DECIMAL(2,1),
fechacom DATE NOT NULL,
CONSTRAINT pkempleados PRIMARY KEY (identificacion));
ALTER TABLE empleados
ALTER COLUMN fechacom SET DEFAULT current_date;

P Á G I N A | 33
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

ALTER TABLE
Para modificar la definición de una tabla se utiliza el comando ALTER TABLE. Las posibles modificaciones que se
pueden hacer sobre la definición de una tabla son añadir un nuevo atributo o modificar uno ya existente. Estas dos
operaciones se podrán realizar pero teniendo en cuenta una serie de restricciones que posteriormente se detallarán.

Tablas
Establecer dueño de la tabla
Esta forma cambia el propietario de la tabla al usuario especificado.

[ALTER TABLE nombretabla

OWNER TO nuevodueño];

Renombrar tabla
La forma RENAME cambia el nombre de la tabla. No hay efectos sobre los datos almacenados.

[ALTER TABLE nombretabla

RENAME TO nuevonombretabla];

Columnas
Agregar columna a una tabla
Esta forma agrega una nueva columna a la tabla.

[ALTER TABLE nombretabla

ADD COLUMN nombrecolumnanueva tipodedato];

Renombrar columna en una tabla


La forma RENAME cambia el nombre de una columna individual de la tabla. No hay efectos sobre los datos almacenados.

[ALTER TABLE nombretabla

RENAME COLUMN nombrecolumna TO nuevonombrecolumna];

P Á G I N A | 34
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Modificar columna(s) en una tabla


Esta forma cambia el tipo de una columna de una tabla. Los índices y restricciones simples involucrando la columna serán
automáticamente convertidos para usar el nuevo tipo al reanalizar las expresiones provistas originalmente.

[ALTER TABLE nombretabla

ALTER COLUMN nombrecolumna TYPE nuevotipodedato];

Eliminar columnas en una tabla


Esta forma elimina una columna de una tabla. Las restricciones involucradas con la columna serán también
automáticamente eliminadas.

[ALTER TABLE nombretabla

DROP COLUMN nombrecolumna];

Default
Establecer un valor por defecto
[ALTER TABLE nombretabla

ALTER COLUMN nombrecolumna SET DEFAULT valor];

Borrar un valor por defecto


[ALTER TABLE nombretabla

ALTER COLUMN nombrecolumna DROP DEFAULT];

Not Null
Establecer la restricción no nula sobre un campo
[ALTER TABLE nombretabla

ALTER COLUMN nombrecolumna SET NOT NULL];

Borrar la restricción de no nulo de un campo


[ALTER TABLE nombretabla

ALTER COLUMN nombrecolumna DROP NOT NULL];

P Á G I N A | 35
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

Constraints

Agregar la restricción de llave primaria a una columna


[ALTER TABLE nombretabla

ADD CONSTRAINT pknombreconstraint PRIMARY KEY (nombrecolumna) ];

Agregar la restricción de chequeo


[ALTER TABLE nombretabla

ADD CONSTRAINT cknombreconstraint CHECK (condición) ];

Agregar la restricción de valor ÚNico a un campo


[ALTER TABLE nombretabla

ADD CONSTRAINT uqnombreconstraint UNIQUE (nombrecolumna) ];

Eliminar una restricción utilizando el nombre


[ALTER TABLE nombretabla

DROP CONSTRAINT nombreconstraint];

P Á G I N A | 36
LENGUAJE DE DEFINICIÓN DE BASE DE
DATOS

DROP TABLE
La orden DROP TABLE seguida del nombre de una tabla, permite eliminar la tabla en cuestión.

Al borrar una tabla:

 Desaparecen todos los datos

 Cualquier vista y sinónimo referente a la tabla seguirán existiendo, pero ya no funcionarán


(conviene eliminarlos).

 Las transacciones pendientes son aceptadas (COMMIT)

 Sólo es posible realizar esta operación si se es el propietario de la tabla o se posee el privilegio

 El borrado de una tabla es irreversible, y no hay ninguna petición de confirmación, por lo que
conviene ser muy cuidadoso con esta operación.

DROP TABLE nombretabla;

DROP TABLE IF EXISTS nombretabla;

Ejemplos:

DROP TABLE proveedor;

DROP TABLE empleado;

DROP TABLE IF EXISTS departamento;

P Á G I N A | 37

También podría gustarte