11.05.2013 Views

Bases de datos en MySQL

Bases de datos en MySQL

Bases de datos en MySQL

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

© FUOC • P06/M2109/02151 21 <strong>Bases</strong> <strong>de</strong> <strong>datos</strong> <strong>en</strong> <strong>MySQL</strong><br />

Atributos <strong>de</strong> columna<br />

Atributo Significado<br />

null<br />

Veámoslo con un ejemplo:<br />

Se permit<strong>en</strong> valores nulos, atributo por omisión si no se especifica<br />

lo contrario.<br />

not null No se permit<strong>en</strong> valores nulos.<br />

<strong>de</strong>fault valor Valor por omisión que se asigna a la columna.<br />

auto_increm<strong>en</strong>t<br />

primary key<br />

El valor se asigna automáticam<strong>en</strong>te increm<strong>en</strong>tando <strong>en</strong> uno el máximo<br />

valor registrado hasta ahora. Se aplica sólo a las columnas marcadas<br />

como clave primaria.<br />

Señala al campo como clave primaria, implícitam<strong>en</strong>te también<br />

lo <strong>de</strong>clara como not null.<br />

mysql> create table personas (<br />

-> nombre varchar(40) not null,<br />

-> dirección varchar(50) null,<br />

-> edo_civil char(13) <strong>de</strong>fault ’Soltero’,<br />

-> num_registro int primary key auto_increm<strong>en</strong>t,<br />

-> );<br />

Query OK, 0 rows affected (0.01 sec)<br />

En este caso la tabla conti<strong>en</strong>e cuatro columnas, <strong>de</strong> las cuales nombre y edo_civil<br />

permit<strong>en</strong> valores nulos, <strong>en</strong> edo_civil está implícito al no <strong>de</strong>clarar lo contrario.<br />

La columna num_registro no acepta valores nulos porque está <strong>de</strong>finida como<br />

clave primaria.<br />

Aunque la creación <strong>de</strong> una clave primaria pue<strong>de</strong> <strong>de</strong>clararse como atributo <strong>de</strong><br />

columna, es conv<strong>en</strong>i<strong>en</strong>te <strong>de</strong>finirla como restricción <strong>de</strong> tabla, como se verá <strong>en</strong>seguida.<br />

También es posible indicar restricciones sobre la tabla y no sobre columnas especificas:<br />

mysql> create table personas (<br />

-> nombre varchar(40) not null,<br />

-> nacimi<strong>en</strong>to date not null,<br />

-> pareja varchar(40),<br />

-> proveedor int not null,<br />

-><br />

-> primary key (nombre,nacimi<strong>en</strong>to),<br />

-> unique (pareja),<br />

-> foreign key (proveedor) refer<strong>en</strong>ces proveedores<br />

-> );<br />

Query OK, 0 rows affected (0.01 sec)<br />

Nota<br />

La <strong>de</strong>finición <strong>de</strong> columnas ti<strong>en</strong>e<br />

el sigui<strong>en</strong>te formato:<br />

nombre_columna tipo<br />

atributos.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!