bachiller
e-mail: nicola51980@gmail.com
Blog: http://www.swapbytes.com/
Revisión: 17/11/11
Lección
Tablas
9
Este material se encuentra basado en el curso de Fundamentos a SQL de ORACLE, el cual es adaptado para
el producto PostgreSQL, todos los ejemplos, códigos fuentes y la Base de Datos HR es propiedad de ORACLE.
Objetivos
Al completar esta lección ustedpodrá entender los
siguientes puntos:
•
•
•
•
Conocer la estructura de una tabla.
Listar los diversos tipos de datos.
Entender como funcionan las restricciones de los datos.
Mantener la integridad de los datos con las relaciones
entre tablas.
• Mejorar el tiempo de acceso a los datos mediante los
Indices.
L- 2 L
Las Tablas
• Es un objeto que contiene datos de formapermanente.
• Cada tabla es una entidad que agrupa conceptualmente
una serie de datos en común y estos se encuentran
segmentados en varias columnas.
• Cada tabla tiene reglas que definen una serie de
restricciones para evitar redundancia y mantener la
integridad de los mismos.
• Las tablas dependen entre ellas para mantener la
relación de los datos.
L- 3L
Definir nombres
Los nombres de lastablas 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, solo en Case
Sensitive.
• Para mantener nombres en Case Sensitive debe
colocarlos entre comillas dobles.
L- 4L
Usando la cláusula CREATE TABLEConsidere lo siguiente:
•
•
•
•
Debe tener privilegios para crear tablas.
Espacio en disco.
Nombre de la tabla.
Nombre de las columnas, tipo de dato a utilizar y su
longitud.
CREATE TABLE table_name ([
column_name data_type [ DEFAULT expr ], ...
]);
L- 5L
Tipo de Datos para números
Nombre
Tamaño
Rango
smallint
2 bytes
-32768 hasta +32767
integer
4 bytes-2147483648 hasta +2147483647
bigint
8 bytes
-9223372036854775808 hasta 9223372036854775807
decimal
variable
No existe limite, definir la expresión exacta.
numeric
variable
No existe limite, definir la expresión exacta.
real
4 bytes
6 decimales
double precision
8 bytes
15 decimales
serial
4 bytes
1 hasta 2147483647
bigserial
8 bytes
1hasta 9223372036854775807
L- 6 L
Tipo de Datos para carácteres
Nombre
Descripción
Ejemplo
Resultado
character(2)
VE
character varing(l) Se define la longitud de
caracteres (l), no completa
con espacios en blanco.
character
varing(10)
Caracas
text
text
abcdefghijk
lmnu...
character(l)
L- 7 L
Se define la longitud de
caracteres (l), completa conespacios en blanco.
De longitud ilimitada.
Tipo de Datos para fechas
Nombre
Tamaño
Descripción
Min.
Max.
timestamp
8 bytes
Fecha y hora, permite
la zona horaria.
4713 AC
5874987 DC
interval
12 bytes
Intervalo de tiempo,
contempla cualquier
unidad.
-178000000 años
178000000 años
date
4 bytes
Solo fecha.
4713 AC
5874987 DC
time8-12 bytes
Solo hora, permite la
zona horaria.
00:00:00+1359
24:00:00-1359
L- 8 L
Crear tablas
•Crear una tabla:
CREATE TABLE films (
code
char(5),
title
varchar(40),
summary
text,
);
•Visualizar la estructura de la tabla desde psql:
HR=# \d films
Table "public.films"
Column
|
Type
| Modifiers
-----------+-----------------------+----------code
|character(5)
|
title
| character varying(40) |
summary
| text
|
HR=#
L- 9L
Valores por defecto
Agregar valores por defecto cuando son omitidos en su
inserción.
CREATE TABLE products (
pk_product integer NOT NULL,
name
text
NOT NULL,
summary
text,
price
numeric NOT NULL,
discounted numeric DEFAULT 0 NOT NULL,
company
integer NOT NULL
);
L - 10 L
Consultas de Ejemplo...
Regístrate para leer el documento completo.