Bases de datos en MySQL
Bases de datos en MySQL
Bases de datos en MySQL
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.