Diferència entre revisions de la pàgina «SQL taules»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
Línia 52: Línia 52:
 
*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à:
Línia 60: Línia 60:
 
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, a partir d'aquí, dades corresponents a les assignatures de 1r i 2n d'ESO.

Revisió del 21:45, 1 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>


Creació de taules

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:

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;

Introducció de dades

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

Introduïu, a partir d'aquí, dades corresponents a les assignatures de 1r i 2n d'ESO.