Otras restricciones
En la definición de campo es posible incluir otras restricciones,
además de las de clave. Las más importantes son:
- Valor único. En ocasiones interesa que un campo que
no pertenece a una clave primaria tenga, de todas formas, un
valor único para cada fila de la tabla. Podemos pensar, por
ejemplo, en el NIF de un fichero de clientes. En estos casos se
utiliza la cláusula UNIQUE. He aquí el resultado:
mysql> create table cliente
(idCli int(4)unsigned primary key,
CliNom varchar(25),
CliPob varchar(25),
CliNif varchar(15) unique);
- utoincrementable. Muchas veces la clave
principal de una tabla es simplemente un código que no tiene mayor
significado que la identificación de cada elemento. Si es así,
puede ser interesante hacer que dicho código se vaya incrementando
de forma automática cada vez que se da de alta una fila. Así,
el primer cliente tendría el código 1, el segundo tendría el 2, y
así sucesivamente, sin intervención del usuario.
Para ello se usa la cláusula AUTO INCREMENT en la definición del
campo. He aquí el resultado:
mysql> create table cliente
(idCli int(4)unsigned primary key
auto_increment,
CliNom varchar(25),
CliPob varchar(25),
CliNif varchar(15) unique);
- Valor nulo. Cuando un campo es clave
primaria, no puede tener en absoluto un valor nulo, es decir,
dejarse sin valor (no se debe confundir con valor 0, o con
espacios en blanco). Sin embargo, esa misma restricción puede
aplicarse también a campos no clave, mediante la cláusula NOT
NULL. Pensemos, por ejemplo, en que sea obligatorio poner un valor
al NIF cuando se da de alta un cliente. He aquí el resultado:
mysql> create table cliente
(idCli int(4)unsigned primary key
auto_increment,
CliNom varchar(25),
CliPob varchar(25),
CliNif varchar(15) not null
unique);
- Valor por defecto. Al dar de alta una fila
en una tabla, y antes de introducir algún valor, todos los campos
tienen el valor NULL (vacío). A veces, existe un campo que tendrá
siempre el mismo valor en todas las filas, salvo contadas
excepciones. Por ejemplo, si en nuestro fichero de clientes sabemos
que la gran mayoría son de Valencia, podemos hacer que el
campo CliPob asuma, por defecto, el valor Valencia sin tener que
escribirlo cada vez. Para ello, se usa la cláusula DEFAULT en
la definición del campo. He aquí el resultado:
mysql> create table cliente
(idCli int(4)unsigned primary key
auto_increment,
CliNom varchar(25),
CliPob varchar(25) default
`Valencia´,
CliNif varchar(15) not null
unique);
Es interesante conocer una particularidad del tipo enum:
al declarar el valor por defecto, si se pone éste entre
comillas simples, hará referencia al elemento de la lista cuyo
valor coincida con el indicado; si, por el contrario, el valor
por defecto consiste en un número sin comillas simples,
entonces se está haciendo referencia al número de orden en la lista
de enum. Imaginemos que creamos una tabla de hoteles con un
campo categoría cuyo valor puede ser 3, 4 o 5 y que queremos que,
por defecto, asuma el valor 3. Esto se podría conseguir
indistintamente mediante dos formas:
...categoría
enum(`3´,´4´,´5´) default
`3´
...categoría
enum(`3´,´4´,´5´) default
1
En ambos casos, el valor por defecto será 3.
Hay 1 opinión. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Excel. Hojas de cálculo (tercera parte) Curso del software Excel y formación ofimática. En esta tercera parte de nuestro curso de uso avanzado de hojas de cálculo de Excel aprenderás a modificar gráficos; conoc... [07/11/08] |
|
2.667 | ||
|
Windows XP. Sistemas operativos (cuarta parte) En esta cuarta parte de nuestro curso de informática sobre el Sistemas Operativo Windows XP aprenderás a cerca de los accesorios de Windows XP: las comunicaciones dentro ... [08/10/08] |
|
3.618 | ||
|
Confecciona tu propio Wiki con wiki.mailxmail.com Crea tu página web y deja que cualquier visitante la enriquezca ¿Te gusta la idea detrás de la Wikipedia? ¿Te interesa volcar, en formato wiki, tu conocimien... [17/11/05] |
|
1.128 | ||
Publicar en
del.icio.us
digg
meneame