# Informatica 3 Liceo Scientifico Scienze Applicate/Comandi SQL per creare tabelle

Informatica 3 Liceo Scientifico Scienze Applicate
Copertina Tutti i moduli · Sviluppo
    CopertinaInformatica 3 Liceo Scientifico Scienze Applicate/Copertina
* I DataBaseInformatica 3 Liceo Scientifico Scienze Applicate/I DataBase
* Modelli di DatabaseInformatica 3 Liceo Scientifico Scienze Applicate/Modelli di Database
* Progettare un database relazionaleInformatica 3 Liceo Scientifico Scienze Applicate/Progettare un database relazionale
* Modello ERInformatica 3 Liceo Scientifico Scienze Applicate/Modello ER
* Modello RelazionaleInformatica 3 Liceo Scientifico Scienze Applicate/Modello Relazionale
** Es Concessionaria MotoInformatica 3 Liceo Scientifico Scienze Applicate/Es Concessionaria Moto
** Es Agenzia ImmobiliareInformatica 3 Liceo Scientifico Scienze Applicate/Es Agenzia Immobiliare
** Es Mercato del Pesce
** Es1 PrenotazioneVaporettoInformatica 3 Liceo Scientifico Scienze Applicate/Es1 PrenotazioneVaporetto
** Es2 InterrogazioniPianificateInformatica 3 Liceo Scientifico Scienze Applicate/Es2 InterrogazioniPianificate
** Es2 TaglioFashionInformatica 3 Liceo Scientifico Scienze Applicate/Es2 TaglioFashion
* Forme Normali Integrità ReferenzialeInformatica 3 Liceo Scientifico Scienze Applicate/Forme Normali Integrità Referenziale
* Linguaggio SQLInformatica 3 Liceo Scientifico Scienze Applicate/Linguaggio SQL
** Query tramite SELECTInformatica 3 Liceo Scientifico Scienze Applicate/Query tramite SELECT
** SubQuery e Group ByInformatica 3 Liceo Scientifico Scienze Applicate/SubQuery e Group By
** Comandi SQL per creare tabelleInformatica 3 Liceo Scientifico Scienze Applicate/Comandi SQL per creare tabelle
** Comandi SQL per inserire datiInformatica 3 Liceo Scientifico Scienze Applicate/Comandi SQL per inserire dati
* Compito1Informatica 3 Liceo Scientifico Scienze Applicate/Compito1
* Compito2Informatica 3 Liceo Scientifico Scienze Applicate/Compito2
* Compito3
* HTMLInformatica 3 Liceo Scientifico Scienze Applicate/HTML
** HTML tag
** HTML formInformatica 3 Liceo Scientifico Scienze Applicate/HTML form
* Mysql e EasyPhpInformatica 3 Liceo Scientifico Scienze Applicate/Mysql e EasyPhp
* MySQL WorkbenchInformatica 3 Liceo Scientifico Scienze Applicate/MySQL Workbench
* PHPInformatica 3 Liceo Scientifico Scienze Applicate/PHP
* PHP tabellaInformatica 3 Liceo Scientifico Scienze Applicate/PHP tabella
* PHP Es. ProgettiInformatica 3 Liceo Scientifico Scienze Applicate/PHP Es. Progetti
** Spiegazione Uso FormsInformatica 3 Liceo Scientifico Scienze Applicate/Spiegazione Uso Forms
** Spiegazione Uso Mysql
** Programmi UtilizzatiInformatica 3 Liceo Scientifico Scienze Applicate/Programmi Utilizzati
** Schema CollegamentiInformatica 3 Liceo Scientifico Scienze Applicate/Schema Collegamenti
** Database ImpiegatoInformatica 3 Liceo Scientifico Scienze Applicate/Database Impiegato
** Modulo CapoProgettoInformatica 3 Liceo Scientifico Scienze Applicate/Modulo CapoProgetto
** Modulo CredenzialiInformatica 3 Liceo Scientifico Scienze Applicate/Modulo Credenziali
** Modulo ProgettiInformatica 3 Liceo Scientifico Scienze Applicate/Modulo Progetti
** Modulo Visualizza ProgettiInformatica 3 Liceo Scientifico Scienze Applicate/Modulo Visualizza Progetti
** CSS pag1 ProgettoInformatica 3 Liceo Scientifico Scienze Applicate/CSS pag1 Progetto
** CSS pag2 ProgettoInformatica 3 Liceo Scientifico Scienze Applicate/CSS pag2 Progetto
** CSS pag3 ProgettoInformatica 3 Liceo Scientifico Scienze Applicate/CSS pag3 Progetto
** CSS pag4 ProgettoInformatica 3 Liceo Scientifico Scienze Applicate/CSS pag4 Progetto
** Realizzazione SitoInformatica 3 Liceo Scientifico Scienze Applicate/Realizzazione Sito
* CSS
** Posizionamento CSSInformatica 3 Liceo Scientifico Scienze Applicate/Posizionamento CSS
Modifica il sommario

## Creare un Database

Il comando SQL per creare un database è CREATE DATABASE, che utilizza la seguente sintassi:
    CREATE DATABASE nome_del_database ;
Ad esempio per creare un database chiamato AgenziaViaggi si utilizzerà il comando CREATE DATABASE AgenziaViaggi ;

## Creare una tabella

Il comando SQL per creare una tabella è CREATE TABLE, che utilizza la sequente sintassi:
    CREATE TABLE nome_della_tabella (
    campo1 tipo_di_dato,
    campo2 tipo_di_dato,
    campo3 tipo_di_dato,
Al momento della creazione di una tabella si devono anche definire quali campi sono chiavi primarie o esterne (nel caso in cui la tabella che vogliamo creare ne contenga), ed eventualmente specificare che un determinato campo debba necessariamente essere riempito o che più record non possano avere un determinato campo uguale. Per definire la chiave primaria si deve inserire PRIMARY KEY (campo_chiave) all'interno del comando CREATE TABLE. Per definire una chiave esterna si deve inserire FOREIGN KEY (campo_chiave) REFERENCES tabella_associata (campo_associato), sempre all'interno del comando CREATE TABLE.
Ad esempio se si vuole creare la tabella Compiti, che contenga la chiave primaria IDCompito, la chiave esterna IDStudente riferita alla chiave primaria Matricola della tabella Studenti, e la chiave esterna IDMateria riferita all'omonima chiave della tabella Materie, il codice potrebbe essere il seguente:
    CREATE TABLE Compiti (
    IDCompito int,
    data data,
    voto int,
    IDStudente int,
    IDMateria char(30),
    PRIMARY KEY (IDCompito),
    FOREIGN KEY (IDStudente) REFERENCES Studenti(Matricola),
    FOREIGN KEY (IDMateria) REFERENCES Materie(IDMateria)
Per specificare che un campo non possa essere nullo si deve far seguire la sua definizione (all'interno del comando CREATE TABLE, dopo il nome e il tipo del campo e prima della virgola) dall'attributo NOT NULL. Per specificare che una colonna debba contenere valori tutti diversi, si deve far seguire, allo stesso modo, la sua definizione dall'attributo UNIQUE. In riferimento all'esempio precedente noi potremmo volere che né le chiavi primaria o esterne, né il campo voto possano essere nulli e che il campo IDCompito non possa assumere valori uguali in record diversi:
    CREATE TABLE Compiti (
    IDCompito int UNIQUE NOT NULL,
    data data,
    voto int NOT NULL,
    IDStudente int NOT NULL,
    IDMateria int NOT NULL,
    PRIMARY KEY (IDCompito),
    FOREIGN KEY (IDStudente) REFERENCES Studenti(Matricola),
    FOREIGN KEY (IDMateria) REFERENCES Materie(IDMateria)
In realtà non è necessario specificare 'UNIQUE' per il campo IDCompito, in quanto, essendo chiave primaria, viene definito in tal modo automaticamente.