3.2.2 CREATE TABLE
Permet crear una nova taula. Obligatòriament s'hauran d'especificar els camps i els tipus de dades de cada camp. Òbviament, una vegada creada la taula estarà buida, sense cap fila.
Sintaxi
CREATE TABLE taula
( camp1 tipus [(grandària)] [DEFAULT valor] [restricció11] [restricció12] [...]
[, camp2 tipus [(grandària)] [DEFAULT valor] [restricció21] [restricció22] [...]
[, ...]]
[, restricciómultiple1 [, ...]] )
Podem observar que la definició de l'estructura de la taula va entre parèntesis, separant per comes la definició de cada camp.
- El nom de la taula no ha de ser el de cap altre objecte anterior (taula o vista). Si volem posar un nom amb més d'una paraula o amb una paraula reservada, l'haurem de posar entre cometes dobles; però no us ho aconselle, és preferible la utilització del guió baix, i així només és una paraula.
- En cada camp posarem el seu nom i el tipus. Si el tipus de dades és VARCHAR, podrem posar opcionalment la grandària màxima (si no la posem serà de 255 en el cas de text). Si el tipus de dades és NUMERIC, podrem posar opcionalment la grandària (número de xifres significatives) i número de xifres de la part fraccionària.
- Podem posar ocionalment un valor per defecte amb la clàusula DEFAULT. D'aquesta manera, en introduir una nova fila en la taula, si no li posem valor a aquest camp, agafarà el valor per defecte. En el valor es pot posar una constant del tipus del camp, o una expressió amb funcions, sempre que torne una dada dels tipus del camp.
- Podem posar opcionalment restriccions a cada camp. Hauran d'anar abans de la coma que separa del següent camp. També poden haver restriccions que afecten a més d'un camp, que preferiblement posarem al final de la definició de la taula. Veurem les restriccions en el següent punt.
Exemples
Si voleu practicar aquestos exemples, feu-lo sobre la Base de Dades proves (usuari proves, contrasenya proves). Si us dóna error perquè la taula que aneu a crear ja està creada la taula, esborreu-la primer, i torneu a executar la sentència.
-
Crear una nova taula anomenada EMPLEAT1 amb dos camps, un anomenat dni de tipus text i llargària 10 i un altre anomenat nom amb llargària 50.
CREATE TABLE EMPLEAT1 (dni VARCHAR (10) , nom VARCHAR (50));
-
Crear una taula anomenada EMPLEAT2 amb un camp text de 10 caràcters anomenat dni; un altre camp de tipus text de llargària predeterminada (255) anomenat nom; un altre camp anomenat data_naixement de tipus data; un altre anomenat sou de tipus numèric, amb 6 xifres significatives, de les quals 2 ha de ser de la part fraccionària i un últim anomenat departament de tipus numèric menudet (INT2 o SMALLINT).
CREATE TABLE EMPLEAT2
( dni VARCHAR(10) ,
nom VARCHAR ,
data_naixement DATE ,
sou NUMERIC(6,2) ,
departament INT2 )
-
Crear una taula anomenada EMPLEAT3 com el de l'exemple anterior, però amb dos camps més al final: un camp anomenat poblacio de tipus text de 50 caràcters, i amb el valor per defecte Castelló i un últim anomenat data_incorporacio de tipus data i valor per defecte la data d'avui
CREATE TABLE EMPLEAT3
( dni VARCHAR(10) ,
nom VARCHAR ,
data_naixement DATE ,
sou NUMERIC(6,2) ,
departament INT2 ,
poblacio VARCHAR(50) DEFAULT 'Castelló' ,
data_incorporacio DATE DEFAULT CURRENT_DATE )
Llicenciat sota la Llicència Creative Commons Reconeixement NoComercial CompartirIgual 3.0