View Full Version : Scrivere un database mysql da riga di comando. Help
Frenky-90
13-01-2012, 19:24
Ciao ragazzi sto imparando insieme a java anche mysql. Nella teoria ho capito come opera, ma vorrei fare un pò di pratica. Infatti ho degli esercizi da fare, ma da solo nn ci riesco, oppure mi blocco con degli errori sulla riga di comanda. Mi date una mano?
Creare e riempire una db con queste tabelle:
- Impiegato(nome, titolo, età, salario, dip)
- Acquisto(idCliente, dataDiOrdinazione, item, quantità, prezzo)
- Cliente(id, nome, cognome, città, stato)
In mysql ho fatto
-CREATE DATABASE nome;
ok
-USE nome;
-CREATE TABLE impiegato e da qui cominciano gli intoppi.
Come create voi le tre tabelle, con sintassi precisa?
Grazie.:)
VegetaSSJ5
13-01-2012, 19:33
Ti consiglio di fare una cosa.
Crea il database con un tool, quindi esportalo come statement sql in un file di testo e vedi da lì quali sono i comandi per ricrearlo.
Come tool free puoi usare HeidiSQL (http://www.heidisql.com/).
Frenky-90
13-01-2012, 19:44
secondo me è piu facile la riga.
Cmq spiegami meglio.
Devo scrivere il codice nel blocco note?
VegetaSSJ5
14-01-2012, 12:52
Frenky hai capito quello che ho detto?
Frenky-90
14-01-2012, 16:33
penso di no:stordita:
Non sò come si crea il databases con un tool
Non sò esportarlo in statement sql
Ne i comandi per ircrearlo.
Ho affrontato solo le info da riga di comando.
Di software user-friendely nn sò cosa devo fare.
Se saresti così gentile da spiegarmelo, te ne sarò grato.
VegetaSSJ5
15-01-2012, 18:30
:D
Scarica HeidiSQL dal link nel mio post precedente.
Installalo.
La prima volta che parte devi creare una nuova connessione. Lascia tutti i parametri di default, devi solo specificare username e password tuoi, che penso dovresti conoscere in quanto li hai impostati durante l'installazione di mysql.
Si aprirà il programma. Nella colonna di sinistra fai click col destro sull'elemento in alto (che è il nome della connessione che hai dato prima), quindi create new -> database. Dagli un nome e lascia tutto di default.
Ora bisogna creare le tabelle nel database.
Fai click col destro sul database appena creato (che trovi nella solita colonna di sinistra), quindi create new -> table.
Inserisci un nome alla tabella, quindi aggiungi le colonne cliccando su add, gli dai un nome e un tipo.
Per creare la chiave primaria fai click col destro su una colonna che hai creato, quindi selezioni Create new indexes -> Primary.
Puoi anche utilizzare opzioni utili, ad esempio se la tua chiave primaria è di tipo intero puoi assegnarli un auto increment in modo tale che l'id venga generato automaticamente ad ogni inserimento.
In tempo reale puoi vedere lo script pe rla creazione della tabella cliccando sul tab Create Code.
Finita di creare la tabella non dimenticare di cliccare su save in basso.
Puoi ripetere il processo di creazione di tabella fin quando ti è necessario.
A questo punto per esportare il database in un file sql fai click col destro sul database e selezioni Export as SQL. Scegli dove salvare il file che sarà generato. Inoltre seleziona le checkbox in corrispondenza di Database e Tables. Hai selezionato ciò che vuoi esportare di quel database.
Premi export.
A questo punto apri il file generato e guarda i comandi necessari alla creazione del database. ;)
Frenky-90
15-01-2012, 20:17
Grandioso. Ok sono entrato e sto il database azienda che mi ero già creato da riga.
Faccio tasto destro new table..
Poi con add aggiungo le colonne.
Faccio un esempio: Devo creare la tabella impiegato (nome,titolo,età,salario,dip)
Si fà:
Add >> name= nome VARCHAR 50
Add>>name= titolo VARCHAR 50
ADD>>name=età INT 3
ecc.
Come creare una relazione tra queste tabelle?
ovvero a quali campi assegnare la chiave?
- Impiegato(nome, titolo, età, salario, dip)
- Acquisto(idCliente, dataDiOrdinazione, item, quantità, prezzo)
- Cliente(id, nome, cognome, città, stato)
Grazie:)
VegetaSSJ5
16-01-2012, 10:41
ovvero a quali campi assegnare la chiave?
- Impiegato(nome, titolo, età, salario, dip)
- Acquisto(idCliente, dataDiOrdinazione, item, quantità, prezzo)
- Cliente(id, nome, cognome, città, stato)
Questa è una questione di progettazione del db. Tocca a te scegliere. Di solito, anche per motivi di efficienza, si assegna la chiave primaria a un campo di tipo int o long not null autoincrementante, nel tuo caso suppongo sia il campo id (che però è assente nella tabella impiegato).
Per mettere in relazione le tabelle devi usare le foreign key, chiavi esterne. Come farlo con quel tool sinceramente non lo so, anche perchè di solito ne uso un altro, ti tocca smanettare un po' ;)
Frenky-90
16-01-2012, 10:55
Chiaro.
Quindi le tabelle acquisto e Cliente verrenno messe in relazione con id <--->idCliente ?? con chiave primaria.
Poi però a chi assegnare la chiave secondaria?
Comunque l'esercizio continua nel chiedermi di interrogare il database con delle query.
Scrivere le query che eseguano le seguenti istruzioni:
1) Selezionare il nome, l’età e il salario degli impiegati con più di 50 anni
2) Di tutti i prodotti comprati dal cliente con id=10 mostrare nome, prezzo e id del cliente
3) Trovare il nome, il titolo e il dipartimento degli impiegati il cui titolo comincia con “Ing”
4) Selezionare tutte le diverse età degli impiegati
5) Estrarre i dati degli impiegati del dipartimento “Vendite” in ordine ascendente di stipendio e discendente di età (a pari stipendio)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.