Entendido.

Este sitio utiliza cookies para analizar la navegación. Si continúa navegando se entiende que acepta su uso. Ver más detalles.";

Logo

Aprende Web

Crea y diseña tus sitios en la Web.

Manual de SQL

SQL es el lenguaje para trabajar con bases de datos en la web.


Y ahora tambien aprende a programar en C++ con Aprende Web C++

logo rss RSS. Suscribir canal.

Buscar en Aprende Web

Traducir página

Visita nuestro blog:

bolg.aprende-web.net

y entérate de las novedades o deja un comentario.

Dudas y sugerencias:

aprendeweb@aprende-web.net





Sobre ésta página

Ültima modificación: 29-01-2016.

Visitas este mes: 244

Visitas el mes pasado: 298

logo
WEB-GRAFÍA

Mi agradecimiento a las siguientes páginas Web. en las cuales me he basado para la elaboración de este manual:


Bases de datos
monografías.com
Curso MySQL
Curso MySQL de AulaFácil
MySQL con clase
conclase.net
Introducción a MySQL
ProgramacionWeb.net
Manual práctico de SQL
www.cepeu.edu.py
MySQL 5.0 Reference Manual
dev.mysql.com
SQL Tutorial
w3schools.com
Tutorial de SQL
desarrolloweb.com
Tutorial de SQL: Curso de SQL
sql.1keydata.com

Donativos

Si este sitio te parece interesante puedes contribuir con una pequeña aportación.




SQL (VI)

Claves

imagen sql

Concepto de clave

La clave es un tipo de restricción en una columna que hace que los datos que se guarden ahí tengan una serie de características especiales, o tengan que cumplir una serie de condiciones.

La clave es un identificador del registro, es decir es un dato por el cual se identifica el registro o fila.


Clave única

La clave única o UNIQUE hace que en la columna que la posee no pueda tener dos datos iguales. Es decir en cada registro, el campo marcado con UNIQUE debe tener un dato diferente. Esto lo convierte en un identificador del registro, ya que no puede haber dos registros que contengan el mismo dato en esa columna.

Puede haber varias claves únicas en una tabla. La clave única la podemos marcar al crear la tabla, por ejemplo:

CREATE TABLE miagenda (
      nombre VARCHAR(255) NOT NULL,
      telefono1 INT NOT NULL UNIQUE,
      telefono2 INT,
      email VARCHAR(255) NOT NULL UNIQUE
      );

Vemos en este ejemplo cómo al crear la tabla "miagenda" los campos "telefono1" y "email" les hemos asignado una clave única mediante la palabra reservada "UNIQUE". Les hemos asignado también la restricción "NOT NULL", aunque no es obligatorio, es conveniente hacerlo así, de otra manera en el campo sólo se permitiría un registro con valor nulo (ya que otro registro nulo se consideraría repetido).

En una tabla ya creada, podemos añadir un registro único a un campo ya existente, o que creamos más tarde, indicandolo en la instrucción "ALTER TABLE" de la siguiente manera:

ALTER TABLE miagenda
    ADD direccion VARCHAR(255),
    ADD UNIQUE (direccion),
    ADD UNIQUE (telefono2); 

Creamos primero un nuevo campo en la tabla llamado "direccion", y después mediante "ADD UNIQUE (direccion)", lo convertimos en un campo con clave única. También añadimos una clave única al campo ya existente "telefono2", de la misma manera que para la anterior es decir mediante "ADD UNIQUE (telefono2)".

Cada una de estas instrucciones incluidas en "ALTER TABLE" irán separadas entre sí por comas.

Para eliminar una clave unica utilizaremos la instrucción:

ALTER TABLE nombre_tabla DROP INDEX nombre_columna;

Es decir es otra instruccion dentro de "ALTER TABLE". Lo de DROP INDEX es porque en realidad una clave única se considera un índice para buscar elementos en la tabla.

Aunque aquí hemos puesto "nombre_columna", en realidad deberíamos haber puesto "nombre_clave". La clave recibe un nombre que, si la hemos creado mediante php en la web coincide con el nombre de la columna. Sin embargo si creamos la clave única por otros medios (por ejemplo mediante phpmyadmin) podemos ponerle otro nombre distinto del de la columna. En este caso en lugar del nombre de la columna pondremos el nombre que le hayamos dado a la clave.


Clave primaria

La clave primaria, o PRIMARY KEY es el verdadero identificador de cada registro. Sólo puede haber una columna con clave primaria por tabla, y los registros deben ser también únicos, es decir no pueden estar repetidos ni ser nulos.

La clave primaria es fundamental para crear relaciones entre varias tablas, ya que es esta clave la que identifica el registro que debe ser complementado con datos de otra tabla.

Normalmente se crea una columna especial para incluir la clave primaria, que en la mayoría de las tablas llaman "id" o "id_nombretabla". Los valores de los registros suelen ser números enteros que identifican a cada uno de los registros que se crean en la tabla.

Para incluir una clave primaria en una tabla podemos hacerlo de varias maneras: Al crear la tabla:

CREATE TABLE prueba1 (
   id_prueba1 INT NOT NULL,
   columna1 VARCHAR(255),
   PRIMARY KEY (id_prueba1)
   )

Después de crear las columnas de la tabla, indicamos mediante la instrucción PRIMARY KEY la columna que debe ser la clave primaria dentro del paréntesis. Al crear esta columna debemos ponerle la instrucción NOT NULL para que pueda ser una clave primaria.

Si tenemos una tabla ya creada, podemos indicar qué columna será la clave primaria mediante la instrucción:

ALTER TABLE prueba1
ADD PRIMARY KEY (id_prueba1)

Por supuesto la columna a la que nos referimos debe tener también el valor "NOT NULL".

Para eliminar la clave primaria de una tabla utilizaremos la instrucción:

ALTER TABLE nombre_tabla DROP PRIMARY KEY

Cómo la clave primaria es única no necesitamos poner el nombre de la columna en la que está para eliminarla.


Autoincremento

Como una ayuda para poder crear una clave primaria sin problemas, podemos poner en la columna de clave primaria la restriccion de autoincremento (AUTO_INCREMENT). El campo debe tener un tipo de datos numérico; el autoincremento hace que de forma predeterminada y automáticamente se asigne un número como el dato de este campo. Los números asignados van aumentando en una unidad cada vez que creamos un nuevo registro. El autoincremento sólo puede aplicarse a la columna que tenga la clave primaria.

De esta manera cada vez que creamos un nuevo registro, éste tiene asignado un número que lo identifica.

Para crear un campo con autoincremento lo podemos hacer al crear la tabla de la siguiente manera:

CREATE TABLE prueba1 (
   id_prueba1 INT NOT NULL AUTO_INCREMENT,
   columna1 VARCHAR(255),
   PRIMARY KEY (id_prueba1)
   )

También podemos añadir la clave primaria con autoincremento a una columna ya existente de una tabla, por ejemplo si en la tabla "prueba1" tenemos ya la columna "id_prueba1" y queremos convertirla en clave primaria con autoincremento lo haremos así:

ALTER TABLE prueba1 
   CHANGE id_prueba1 id_prueba1 INT NOT NULL AUTO_INCREMENT,
   ADD PRIMARY KEY (id_prueba1)

Si ya tenemos una columna de clave primaria pero no tiene autoincremento y queremos ponérselo lo haremos simplemente cambiando la columna con la instrucción CHANGE en ALTER TABLE.

ALTER TABLE prueba1 
   CHANGE id_prueba1 id_prueba1 INT NOT NULL AUTO_INCREMENT

La instrucción AUTO_INCREMENT empieza por defecto a contar los registros a partir del número 1. Si queremos que empiece en otro número se lo indicaremos así:

AUTO_INCREMENT=101

En este ejemplo el primer registro que escribamos tendrá el número 101, el segundo el 102, y así sucesivamente, es decir, le indicamos el número en el que empezará el primer registro.


Clave externa

La clave externa crea una relación entre tablas, de forma que la columna a la que se le aplica se relaciona con la columna de la clave primaria de otra tabla. Por lo tanto para crear una clave externa necesitamos tener otra tabla con una clave primaria.

Se crea una relación en la que en la que podemos obtener datos de la otra tabla que estén relacionados con la tabla actual. Por ejemplo si tenemos dos tablas, una para "autores" y otra para "libros", poniendo en la tabla "libros" una referencia externa a la tabla "autores" relacionamos a cada libro con su autor.

Podemos crear una clave externa al crear la tabla, por ejemplo, suponemos que tenemos una base de datos "mislibros" con dos tablas, "autores" y "libros". Hemos ya creado la tabla "autores" con una columna con la clave primaria llamada "id_autor". Creamos ahora la tabla "libros" con sus claves:

CREATE TABLE libros (
   id_libros INT NOT NULL AUTO_INCREMENT,
   titulo VARCHAR(255),
   comentario TEXT,
   ref_autor INT,
   PRIMARY KEY (id_libros),
   FOREIGN KEY (ref_autor) REFERENCES autores (id_autor)
   )

Nos fijamos en la última línea que es la que crea la clave externa, su estructura es la siguiente:

FORGEIN KEY (col_ref) REFERENCES otra_tabla (col_claveprimaria)

También podemos crear una clave externa en una tabla existente, vamos a hacerlo con la base de datos que estamos creando de ejemplo llamada "mi_musica".

En páginas anteriores hemos creado dentro de esta base las tablas "artistas" y "discos". En estas tablas hemos puesto varias columnas, todas ellas sin clave. Vamos a poner las claves en estas tablas, empezamos por la tabla "artistas":

ALTER TABLE artistas 
    CHANGE id_artistas id_artistas INT NOT NULL AUTO_INCREMENT,
    ADD PRIMARY KEY (id_artistas),
    ADD UNIQUE (artista)

Le hemos añadido la clave primaria con autoincremento en la columna "id_artistas", y una clave única en la columna "artista" que nos impedirá tener un artista repetido. Sólamente la columna "info_artista" se queda sin ninguna clave.

En la tabla "discos" pondremos también algunas claves.

ALTER TABLE discos
    CHANGE  id_disco id_disco INT NOT NULL AUTO_INCREMENT,
    ADD PRIMARY KEY (id_disco),
    ADD UNIQUE (titulo),
    ADD FOREIGN KEY (ref_artista) REFERENCES artistas (id_artistas)

Hemos creado una clave primaria con autoincremento para la columna "id_disco", también hemos puesto una clave única para la columna "titulo" y una clave externa en la columna "ref_artista" que nos relaciona esta tabla con la tabla "artistas".

Las columnas "num_pistas" e "info" no tendrán ninguna clave asociada.

Con esto tenemos ya la base "mi_musica" lista para empezar a guardar datos.





Hasta ahora hemos estado construyendo la base de datos desde PHP, ahora veremos cómo insertar datos en la base.

Insertar datos



Manual de SQL

Anterior siguiente ... Siguiente siguiente


imprimir esta página

Página creada por ANYELGUTI.

Sugerencias: aprendeweb@aprende-web.net. Envia un manda un correo

Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog

Más sobre anyelguti en http://anyelguti.16mb.com