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

UD4.2.2 - Creación de Tablas SQL

El documento proporciona información sobre la creación de tablas en SQL utilizando la instrucción CREATE TABLE. Explica las diferentes restricciones que se pueden aplicar a las columnas, como claves primarias, únicas y foráneas. También cubre los tipos de datos y los valores predeterminados. Proporciona ejemplos de cómo crear tablas con estas características.

Cargado por

David Lara
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)
40 vistas

UD4.2.2 - Creación de Tablas SQL

El documento proporciona información sobre la creación de tablas en SQL utilizando la instrucción CREATE TABLE. Explica las diferentes restricciones que se pueden aplicar a las columnas, como claves primarias, únicas y foráneas. También cubre los tipos de datos y los valores predeterminados. Proporciona ejemplos de cómo crear tablas con estas características.

Cargado por

David Lara
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/ 12

Bases de Datos

1º DAW
UD4.2 - 2 - Creación Tablas SQL

Private & Confidential


CONTENIDOS
1. Introducción
2. El lenguaje DDL
3. La instrucción CREATE TABLE
4. Integridad Referencial
5. Tipos de Datos

Private & Confidential


CREATE TABLE
Restricciones

Una restricción consiste en la definición de una característica adicional que tiene


una columna o una combinación de columnas, suelen ser características como
valores no nulos (campo requerido), definición de índice sin duplicados, definición
de clave principal y definición de clave foránea (clave ajena o externa, campo que
sirve para relacionar dos tablas entre sí).

Recordemos la sintaxis de CREATE TABLE:

Donde:

• restricción1: una restricción de tipo 1 es una restricción que aparece dentro de


la definición de la columna después del tipo de dato y afecta a una columna, la
que se está definiendo.
• restricción2: una restricción de tipo 2 es una restricción que se define después
de definir todas las columnas de la tabla y afecta a una columna o a una
combinación de columnas.

Private & Confidential


CREATE TABLE
Restricciones

Para escribir una sentencia CREATE TABLE se empieza por indicar el nombre de la
tabla que queremos crear y a continuación, entre paréntesis, indicamos separadas
por comas las definiciones de cada columna de la tabla.

La definición de una columna consta de su nombre, el tipo de dato que tiene y


podemos añadir si queremos una serie de especificaciones que deberán cumplir los
datos almacenados en la columna.

Después de definir cada una de las columnas que compone la tabla, se pueden
añadir una serie de restricciones. Esas restricciones son las mismas que se pueden
indicar para cada columna pero ahora pueden afectar a más de una columna por
eso tienen una sintaxis ligeramente diferente.

A cada restricción se le pone un nombre, en el caso de no poner un nombre (en las


que eso sea posible) entonces el propio Oracle le coloca el nombre que es un
mnemotécnico con el nombre de tabla, columna y tipo de restricción.

Private & Confidential


CREATE TABLE
Restricciones – Tipo 1

Una restricción de tipo 1 se utiliza para indicar una característica de la columna


que estamos definiendo, tiene la siguiente sintaxis:

Los nombres de restricción (nbrestriccion) no se pueden repetir para el mismo


esquema, por lo que es buena idea incluir de algún modo el nombre de la tabla, los
campos involucrados y el tipo de restricción en el nombre de la misma. Por
ejemplo pieza_id_pk podría indicar que el campo id de la tabla pieza tiene una
clave principal (PRIMARY KEY).

Private & Confidential


CREATE TABLE
Restricciones – Tipo 1 – Cláusulas (1/3)

• La cláusula NOT NULL indica que la columna no podrá contener un valor nulo,
es decir que se deberá rellenar obligatoriamente y con un valor válido.
• La cláusula 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 que se utiliza para identificarla y para poder eliminarla
cuando se quiera.
• Como restricciones tenemos la de clave primaria (clave principal), la de
índice único (sin duplicados), la de valor no nulo, y la de clave foránea.
• La cláusula PRIMARY KEY se utiliza para definir la columna como clave principal
de la tabla. Esto supone que la columna no puede contener valores nulos ni
pueden haber valores duplicados en esa columna, es decir que dos filas no
pueden tener el mismo valor en esa columna.
• En una tabla no pueden haber varias claves principales, por lo que no
podemos incluir la cláusula PRIMARY KEY más de una vez, en caso
contrario la sentencia da un error. No hay que confundir la definición de
varias claves principales con la definición de una clave principal compuesta
por varias columnas, esto último sí está permitido y se define con una
restricción de tipo 2.

Private & Confidential


CREATE TABLE
Restricciones – Tipo 1 – Cláusulas (2/3)

• La cláusula UNIQUE sirve para definir un índice único sobre la columna. Un


índice único es un índice que no permite valores duplicados, es decir que si una
columna tiene definida un restricción de UNIQUE no podrán haber dos filas con
el mismo valor en esa columna. Se suele emplear para que el sistema
compruebe el mismo que no se añaden valores que ya existen.
• Los campos UNIQUE son las claves candidatas de la tabla (que habrán sido
detectadas en la fase de diseño de la base de datos), descartados por el
diseñador.
• Por ejemplo si en una tabla de clientes queremos asegurarnos que dos
clientes no puedan tener el mismo D.N.I. y la tabla tiene como clave
principal un código de cliente, definiremos la columna dni con la
restricción de UNIQUE.
• La cláusula NOT NULL indica que la columna no puede contener valores nulos.
• Cuando queremos indicar que una columna no puede contener el valor
nulo lo podemos hacer sin poner la cláusula CONSTRAINT, o utilizando una
cláusula CONSTRAINT.

Private & Confidential


CREATE TABLE
Restricciones – Tipo 1 – Cláusulas (3/3)

• La última restricción que podemos definir sobre una columna es la de clave


foránea.

• Una clave foránea es una columna o conjunto de columnas que contiene un


valor que hace referencia a una fila de otra tabla, en una restricción de tipo 1
se puede definir con la cláusula REFERENCES, después de la palabra reservada
indicamos a qué tabla hace referencia.

• Opcionalmente podemos indicar entre paréntesis el nombre de la columna


donde tiene que buscar el valor de referencia, por defecto coge la clave
principal de la tabla2. Si el valor que tiene que buscar se encuentra en otra
columna de tabla2, entonces debemos indicar el nombre de esta columna
entre paréntesis. Además sólo podemos utilizar una columna que esté definida
con una restricción de UNIQUE, si la columna2 que indicamos no está definida
sin duplicados, la sentencia CREATE nos dará un error.

Private & Confidential


CREATE TABLE
Ejemplo 2

Ahora vamos a volver a definir la tabla cliente. Lo primero será borrar la antigua
definición. Ejecutamos:

DROP TABLE cliente;

Y ahora introducimos la nueva definición:

CREATE TABLE cliente (Cod_Cli NUMBER(4) CONSTRAINT cliente_pk PRIMARY KEY,


DNI VARCHAR2(9) UNIQUE,
Nombre VARCHAR2(20) NOT NULL,
Apellido1 VARCHAR2(15) CONSTRAINT ape1_NN NOT NULL,
Apellido2 VARCHAR2(15) CONSTRAINT ape2_NN NOT NULL);

Private & Confidential


CREATE TABLE
Ejemplo 2

Para probar la tabla, vamos a intentar algunas inserciones (ejecutas una a una
observa el resultado):

INSERT INTO cliente VALUES (1,'12345678Q', 'Pedro', 'Camacho', 'Ortega');

INSERT INTO cliente VALUES (2,'12345678Q', 'Jesús', 'Camacho', 'Ortega');

INSERT INTO cliente VALUES (2,'12345678Q', 'Jesús', 'Rodríguez', NULL);

INSERT INTO cliente VALUES (1,'12345678Q', 'Jesús', 'Rodríguez', 'López');

Private & Confidential


CREATE TABLE
Valor por defecto

A cada columna se le puede asignar un valor por defecto durante su creación


mediante la propiedad DEFAULT.

Se puede poner esta propiedad durante la creación o modificación


de la tabla, añadiendo la palabra DEFAULT tras el tipo de datos del campo y
colocando detrás el valor que se desea por defecto.

Por ejemplo:

CREATE TABLE articulo (cod NUMBER(7),


nombre VARCHAR2(25),
precio NUMBER(11,2) DEFAULT 3.5);

Luego haz la siguiente insercción:

INSERT INTO articulo (Cod, Nombre)


VALUES (100, 'Tornillo')
Private & Confidential
CREATE TABLE
Ejemplo 3

Borra la definición de la tabla recién creada (DROP TABLE Articulo) y vuelve a crearla
con los siguientes campos y restricciones:

• Cod: NUMERICO (Precisión 7) - PRIMARY KEY


• Nombre: TEXTO - NOT NULL
• Precio: NUMERICO (Precisión 11 y 2 decimales)
• Fecha_alt: DATE – DEFAULT Fecha actual

Luego prueba a realizar la siguiente inserción y observa el resultado:

INSERT INTO articulo (Cod, nombre, precio)


VALUES (1, 'Tornillo', 0.12)

Private & Confidential

También podría gustarte