Diferència entre revisions de la pàgina «SQL taules»
(Hi ha 8 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
− | Aquest tutorial tracta de la creació de | + | Aquest tutorial tracta de la creació de bases de dades amb la instrucció [http://dev.mysql.com/doc/refman/5.0/en/create-database.html CREATE DATABASE]. |
− | + | Posteriorment passarem a la creació de taules amb [http://dev.mysql.com/doc/refman/5.0/en/create-table.html CREATE TABLE] i insercions bàsiques de registres amb [http://dev.mysql.com/doc/refman/5.0/en/insert.html INSERT]. | |
− | i | ||
Primer de tot entrarem al sistema amb | Primer de tot entrarem al sistema amb | ||
$> mysql -u <nom_usuari> -p -h <host> | $> mysql -u <nom_usuari> -p -h <host> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
Línia 33: | Línia 27: | ||
mysql> use enric_insti | mysql> use enric_insti | ||
− | Creem una taula d'assignatures amb la instrucció [http://dev.mysql.com/doc/refman/5.0/en/create-table.html CREATE TABLE]: | + | Creem una taula d'assignatures amb la instrucció [http://dev.mysql.com/doc/refman/5.0/en/create-table.html CREATE TABLE]. La sintaxi bàsica és: |
+ | |||
+ | '''CREATE TABLE <nom_taula> ( <def_col_1>, <def_col_2>, etc.);''' | ||
+ | |||
+ | on <def_col> significa "definició de columna" i es posa: | ||
+ | |||
+ | '''''<def_col>'': ''<nom_columna> <tipus_dades> <modificadors>''''' | ||
+ | |||
+ | Així, la definició de la nostra taula quedarà: | ||
mysql> '''CREATE TABLE''' assignatures ( | mysql> '''CREATE TABLE''' assignatures ( | ||
-> id_assignatura INT NOT NULL auto_increment '''PRIMARY KEY''', | -> id_assignatura INT NOT NULL auto_increment '''PRIMARY KEY''', | ||
Línia 43: | Línia 45: | ||
Per veure si tot ha anat bé, fem: | Per veure si tot ha anat bé, fem: | ||
mysql> desc assignatures; | mysql> desc assignatures; | ||
+ | |||
+ | Possibles '''errors''': | ||
+ | *Si la creació de la taula us ha donat un error podeu tornar a repetir la definició de la taula. | ||
+ | *Si heu creat la taula però alguna columna és errònia, heu de tornar a crear la taula. Per poder crear-la de nou abans l'heu de destruïr amb la comanda '''DROP TABLE <nom_taula>;''' | ||
== Introducció de dades == | == Introducció de dades == | ||
Línia 58: | Línia 64: | ||
*Hores: 120 | *Hores: 120 | ||
− | Cal tenir en compte que ''id_assignatura'' és la [[PK]] ([[Clau primària]]) i la genera automàticament la taula ja que la hem posat com a ''''auto_increment''''' en la definició de la taula. | + | Cal tenir en compte que ''id_assignatura'' és la [[PK]] ([[Clau primària]]) i la genera automàticament la taula ja que la hem posat com a '''''auto_increment''''' en la definició de la taula. Per tant, no posarem la ''id_assigntura'' dintre de la llista de columnes. Podem forçar un valor de la PK si volem al introduir la [[tupla]] però en general no ens interessa fer-ho i preferirem deixar-ho de manera automàtica. |
La instrucció adient serà: | La instrucció adient serà: | ||
− | mysql> INSERT INTO assignatures (titulacio,assignatura,professor,hores) | + | mysql> '''INSERT INTO''' assignatures (titulacio,assignatura,professor,hores) |
− | -> VALUES ("ESO","Matemàtiques 2n ESO","Pere Font",120); | + | -> '''VALUES''' ("ESO","Matemàtiques 2n ESO","Pere Font",120); |
I per comprovar si tot ha anat bé farem: | I per comprovar si tot ha anat bé farem: | ||
mysql> SELECT * FROM assignatures; | mysql> SELECT * FROM assignatures; | ||
+ | |||
+ | Fixeu-vos en què la columna ''id_assignatura'' figura un "1", assignat automàticament per la base de dades. | ||
+ | |||
+ | == Exercici == | ||
+ | Introduïu, segunt l'exemple anterior, dades corresponents a les assignatures de 1r d'ESO. | ||
+ | *1r ESO | ||
+ | **Ciències naturals (Josep Cornudella, 130h) | ||
+ | **Ciències socials (Alba Rodríguez, 100 h) | ||
+ | **Visual i plàstica (Conxita Franch, 86 h) | ||
+ | **Castellà (Pere Andreu, 100 h) | ||
+ | **Català (Jaume Frontanyà, 130 h) | ||
+ | **Matemàtiques (Pepi Torres, 130 h) | ||
+ | **Anglès (Ramon Sanjuan, 100 h) | ||
+ | |||
+ | <big>Esborrat</big> | ||
+ | |||
+ | Si us equivoqueu en una entrada podeu consultar com [[SQL esborrat|esborrar-la amb la comanda DELETE]], però aneu amb compte que és fàcil esborrar-ho tot! | ||
+ | |||
+ | == Índex sobre taules == | ||
+ | (... encara per fer ...) | ||
+ | |||
+ | |||
+ | == Taules i relacions == | ||
+ | (... encara per fer ...) |
Revisió de 16:09, 2 feb 2010
Aquest tutorial tracta de la creació de bases de dades amb la instrucció CREATE DATABASE.
Posteriorment passarem a la creació de taules amb CREATE TABLE i insercions bàsiques de registres amb INSERT.
Primer de tot entrarem al sistema amb
$> mysql -u <nom_usuari> -p -h <host>
Contingut
Creació de taules[modifica]
Els tipus de dades fonamentals amb els que tractarem seran:
- Nombres
- Sencers (enters): INT
- Decimals (punt flotant): FLOAT, DOUBLE
- Text
- CHAR (entre parèntesi el nº de caràcters)
- VARCHAR (ídem)
- TEXT (sense cap paràmetre, equival al MEMO de Access). No es pot indexar.
- Binari
- BLOB (Binary Large OBject): per arxius, fotos, etc.
- Enumerats
- ENUM
Primer de tot crearem la base de dades. Si l'usuari és enric, podem crear la base de dades amb CREATE DATABASE:
mysql> CREATE DATABASE enric_insti; mysql> use enric_insti
Creem una taula d'assignatures amb la instrucció CREATE TABLE. La sintaxi bàsica és:
CREATE TABLE <nom_taula> ( <def_col_1>, <def_col_2>, etc.);
on <def_col> significa "definició de columna" i es posa:
<def_col>: <nom_columna> <tipus_dades> <modificadors>
Així, la definició de la nostra taula quedarà:
mysql> CREATE TABLE assignatures ( -> id_assignatura INT NOT NULL auto_increment PRIMARY KEY, -> titulacio VARCHAR(50) NOT NULL, -> assignatura VARCHAR(50) NOT NULL, -> professor VARCHAR(50) NOT NULL, -> hores INT);
Per veure si tot ha anat bé, fem:
mysql> desc assignatures;
Possibles errors:
- Si la creació de la taula us ha donat un error podeu tornar a repetir la definició de la taula.
- Si heu creat la taula però alguna columna és errònia, heu de tornar a crear la taula. Per poder crear-la de nou abans l'heu de destruïr amb la comanda DROP TABLE <nom_taula>;
Introducció de dades[modifica]
Per introduïr les dades utilitzarem la comanda INSERT. Hi ha dues versions del INSERT:
- INSERT INTO <nom_taula> (<col1>,<col2>,etc.)
- VALUES (<val1>,<val2>,etc.);
- INSERT INTO <nom_taula>
- SET <col1>=<val1>, <col2>=<val2>, etc.
Abans de fer un INSERT, però, cal conèixer totes les dades. Per exemple, si volem introduïr l'assignatura amb aquestes dades:
- Nom de l'assignatura: Matemàtiques 2n ESO
- Titulació: ESO
- Professor: Pere Font
- Hores: 120
Cal tenir en compte que id_assignatura és la PK (Clau primària) i la genera automàticament la taula ja que la hem posat com a auto_increment en la definició de la taula. Per tant, no posarem la id_assigntura dintre de la llista de columnes. Podem forçar un valor de la PK si volem al introduir la tupla però en general no ens interessa fer-ho i preferirem deixar-ho de manera automàtica.
La instrucció adient serà:
mysql> INSERT INTO assignatures (titulacio,assignatura,professor,hores) -> VALUES ("ESO","Matemàtiques 2n ESO","Pere Font",120);
I per comprovar si tot ha anat bé farem:
mysql> SELECT * FROM assignatures;
Fixeu-vos en què la columna id_assignatura figura un "1", assignat automàticament per la base de dades.
Exercici[modifica]
Introduïu, segunt l'exemple anterior, dades corresponents a les assignatures de 1r d'ESO.
- 1r ESO
- Ciències naturals (Josep Cornudella, 130h)
- Ciències socials (Alba Rodríguez, 100 h)
- Visual i plàstica (Conxita Franch, 86 h)
- Castellà (Pere Andreu, 100 h)
- Català (Jaume Frontanyà, 130 h)
- Matemàtiques (Pepi Torres, 130 h)
- Anglès (Ramon Sanjuan, 100 h)
Esborrat
Si us equivoqueu en una entrada podeu consultar com esborrar-la amb la comanda DELETE, però aneu amb compte que és fàcil esborrar-ho tot!
Índex sobre taules[modifica]
(... encara per fer ...)
Taules i relacions[modifica]
(... encara per fer ...)