Salve, da ieri ho cominciato a studiare mySQl... e avrei qualche domanda da porvi...
Ho creato questo script (se così si chiama):



codice:
CREATE DATABASE IF NOT EXISTS mydb;
USE mydb;


CREATE TABLE IF NOT EXISTS MATERIE (
    id_materia INT NOT  NULL PRIMARY KEY,
    nome_materia VARCHAR(45) NOT NULL
    )  ENGINE = INNODB; 
    

CREATE TABLE IF NOT EXISTS DOCENTI (
    matricola INT NOT NULL PRIMARY KEY,
    materia INT NOT NULL,
    eta INT NOT NULL,
    stipendio INT NOT NULL,
    FOREIGN KEY (materia) REFERENCES MATERIE (id_materia)

    ) ENGINE = INNODB;
 
INSERT INTO `mydb`.`MATERIE` (`id_materia`, `nome_materia`) VALUES (901, 'informatica');
INSERT INTO `mydb`.`MATERIE` (`id_materia`, `nome_materia`) VALUES (902, 'basi_di_dati');
INSERT INTO `mydb`.`MATERIE` (`id_materia`, `nome_materia`) VALUES (903, 'telematicuno');
INSERT INTO `mydb`.`MATERIE` (`id_materia`, `nome_materia`) VALUES (904, 'telematica');


INSERT INTO `mydb`.`DOCENTI` (`matricola`, `materia`, `eta`, `stipendio`) VALUES (1, 901, 35, 35000);
INSERT INTO `mydb`.`DOCENTI` (`matricola`, `materia`, `eta`, `stipendio`) VALUES (2, 902, 45, 1500);
INSERT INTO `mydb`.`DOCENTI` (`matricola`, `materia`, `eta`, `stipendio`) VALUES (3, 903, 45, 45000);
INSERT INTO `mydb`.`DOCENTI` (`matricola`, `materia`, `eta`, `stipendio`) VALUES (4, 904, 45, 2000);


SELECT *  
FROM   MATERIE, DOCENTI 
WHERE  MATERIE.id_materia = DOCENTI.materia AND stipendio>4000 AND nome_materia = 'informatica';
Ora non ho ben capito la funzione che svolgono le foreign key...Intanto vorrei capire se le ho assegnate correttamente, e poi non ho capito l'utilità in quanto se le ometto..la query funziona lo stesso.

Confido in un un vostro aiuto, grazie tante.
Davide