![](//www.dsy.it/forum/images/space.gif) |
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
CaboM.BNA |
Un po' di comandi SQL |
19-10-2007 19:05 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
CaboM.BNA |
.grande:maestro.
![](avatar.php?userid=6422&dateline=1158099343)
Registered: Jan 2006
Posts: 503 (0.07 al dì)
Location:
Corso:
Anno:
Time Online: 1 Day, 23:32:44 [...]
Status: Offline
Edit | Report | IP: Logged |
Un po' di comandi SQL
Hola gente...
Cercasi qualche "virtuoso" di SQL...
Mettiamo questo esempio:
- ho definito uno schema che si chiama universitario
- all'interno di questo schema ho 2 tabelle: studente e docente
- docente ha 3 attributi/colonne: nome , cognome , corso tenuto
- ho definito l'attributo nome come PRIMARY KEY
Ipotesi: mi accorgo che non va bene come chiave primaria. Con che sitassi devo usare il comando ALTER per ri-definire come chiave primaria (ad es.) nome e cognome?
P.S. (per i più pedanti&pignoli) SO che la Castano ha detto che "una base cosi progettata non va bene, perché la chiave primaria è stata scelta male. Invece del comando ALTER si sarebbe dovuta progettare meglio la tabella..."; la mia è semplice curiosità...
|
19-10-2007 19:05 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
n3o |
Se hai usato una sintassi del genere:[CODE]CREATE ... |
20-10-2007 11:23 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
n3o |
tanto c'è SPASS...
![](avatar.php?userid=6064&dateline=1153078027)
Registered: Oct 2005
Posts: 134 (0.02 al dì)
Location: Brescia
Corso: Informatica Magistrale
Anno: 1°
Time Online: 1 Day, 19:26:05: [...]
Status: Offline
Edit | Report | IP: Logged |
Se hai usato una sintassi del genere: code: CREATE TABLE docenti (
nome VARCHAR(50) PRIMARY KEY,
cognome VARCHAR(50) NOT NULL,
corso INTEGER REFERENCES qualcosa
);
il terminale psql dovrebbe restituirti questo messaggio:
code: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "nome_pkey" for table "docenti"
CREATE TABLE
Postgres non offre il comodissimo comando DROP PRIMARY KEY quindi bisogna arrangiarsi così:code: ALTER TABLE docenti
DROP CONSTRAINT nome_pkey;
ALTER TABLE docenti
ADD CONSTRAINT pr_key PRIMARY KEY (nome, cognome);
Fammi sapere se funziona o trovi una soluzione meno macchinosa!
__________________
The answer is blowing in the wind...
|
20-10-2007 11:23 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
CaboM.BNA |
perfetto...
... |
20-10-2007 15:33 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
CaboM.BNA |
.grande:maestro.
![](avatar.php?userid=6422&dateline=1158099343)
Registered: Jan 2006
Posts: 503 (0.07 al dì)
Location:
Corso:
Anno:
Time Online: 1 Day, 23:32:44 [...]
Status: Offline
Edit | Report | IP: Logged |
perfetto...
appena testato, funziona benissimo... ![:clap:](images/smilies/clap.gif)
grazie mille
|
20-10-2007 15:33 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
johnnyd |
Quando ho una tabella con relazione n a n... è co ... |
21-10-2007 12:21 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
johnnyd |
.grande:maestro.
Registered: Sep 2005
Posts: 840 (0.12 al dì)
Location: Milano (Fragagnano)
Corso: Informatica
Anno: IV
Time Online: 13 Days, 22:13:29 [...]
Status: Offline
Edit | Report | IP: Logged |
Quando ho una tabella con relazione n a n... è corretto (come scritto in seguito) usare una sintassi del genere per definire le due chiavi esterne che sono anche chiavi primarie..
CREATE TABLE esamiSvolti (
Matricola char[10],
codEsame int[10]
PRIMARY KEY(Matricola, codEsame)
FOREIGN KEY (codEsame, Matricola)
REFERENCES esami(codEsame), matricole(Matricola)
ON DELETE SET NULL
ON UPDATE CASCADE
)
__________________
My Blog - My Photo Album
|
21-10-2007 12:21 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
n3o |
Prova con:[CODE]CREATE TABLE esamiSvolti (
... |
21-10-2007 20:39 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
n3o |
tanto c'è SPASS...
![](avatar.php?userid=6064&dateline=1153078027)
Registered: Oct 2005
Posts: 134 (0.02 al dì)
Location: Brescia
Corso: Informatica Magistrale
Anno: 1°
Time Online: 1 Day, 19:26:05: [...]
Status: Offline
Edit | Report | IP: Logged |
Prova con: code: CREATE TABLE esamiSvolti (
Matricola INTEGER REFERENCES matricole (Matricola) ON DELETE SET NULL ON UPDATE CASCADE,
codEsame INTEGER REFERENCES esami (codEsame) ON DELETE SET NULL ON UPDATE CASCADE,
PRIMARY KEY (Matricola, codEsame)
);
__________________
The answer is blowing in the wind...
|
21-10-2007 20:39 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
johnnyd |
in che formato salvereste delle percentuali in un ... |
25-10-2007 09:28 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
johnnyd |
.grande:maestro.
Registered: Sep 2005
Posts: 840 (0.12 al dì)
Location: Milano (Fragagnano)
Corso: Informatica
Anno: IV
Time Online: 13 Days, 22:13:29 [...]
Status: Offline
Edit | Report | IP: Logged |
in che formato salvereste delle percentuali in un db?
qualcosa del tipo 1.1 per il 10% o direttamente un int/doube contenente il 10?
__________________
My Blog - My Photo Album
|
25-10-2007 09:28 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
xSharKMaNx |
[QUOTE][i]Originally posted by johnnyd [/i]
... |
25-10-2007 10:53 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
xSharKMaNx |
un gioco della follia
![](avatar.php?userid=10082&dateline=1192136312)
Registered: Sep 2007
Posts: 1477 (0.23 al dì)
Location:
Corso: F49
Anno: Laureato
Time Online: 10 Days, 17:15:29 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by johnnyd
in che formato salvereste delle percentuali in un db?
qualcosa del tipo 1.1 per il 10% o direttamente un int/doube contenente il 10?
Memorizza un double con il valore effettivo della percentuale quindi nel tuo caso 10 in modo tale da poter reperire il dato e a sua volta effettuare i vari calcoli su di essa
|
25-10-2007 10:53 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
GiKappa |
scusate,
... |
26-10-2007 18:54 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
GiKappa |
Dubbioso a Progetto
Registered: Oct 2004
Posts: 1800 (0.24 al dì)
Location: Brescia
Corso: Informatica
Anno: Laureato Triennale
Time Online: 9 Days, 22:39:19 [...]
Status: Offline
Edit | Report | IP: Logged |
scusate,
il prof ferrara all'ultima lezione ha spiegato a grandi linee l'installazione di psql.
io ce l'ho già installato e funzionante, ma vedevo che lui creava un cluster e utilizzava il comando "postmaster" che nella versione per windows non ho trovato.
sapete qual è il suo corrispettivo?
grazie
|
26-10-2007 18:54 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
CaboM.BNA |
quasi mi vergogno a chiederlo...
... |
22-11-2007 17:11 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
CaboM.BNA |
.grande:maestro.
![](avatar.php?userid=6422&dateline=1158099343)
Registered: Jan 2006
Posts: 503 (0.07 al dì)
Location:
Corso:
Anno:
Time Online: 1 Day, 23:32:44 [...]
Status: Offline
Edit | Report | IP: Logged |
quasi mi vergogno a chiederlo...
pero non sono proprio riuscito a trovare il carattere di escape..
mi spiego meglio.
in una colonna definita come varchar(20) voglio inserire L'armata brancaleone . Siccome bisogna digitare
code: INSERT INTO nome_tabella VALUES ('L'armata bracaleone')
non so cosa digitare per evitare che il mio (innocente) apostrofo venga interpretato come carattere di terminazione della stringa...
|
22-11-2007 17:11 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
DarkSchneider |
[QUOTE][i]Originally posted by CaboM.BNA [/i]
... |
22-11-2007 20:27 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
DarkSchneider |
Why so serious?
![](avatar.php?userid=3154&dateline=1273494310)
Registered: Feb 2004
Posts: 1250 (0.16 al dì)
Location: Brescia
Corso: Informatica
Anno: out of bounds :/
Time Online: 26 Days, 1:01:59 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by CaboM.BNA
quasi mi vergogno a chiederlo...
pero non sono proprio riuscito a trovare il carattere di escape..
mi spiego meglio.
in una colonna definita come varchar(20) voglio inserire L'armata brancaleone . Siccome bisogna digitare
code: INSERT INTO nome_tabella VALUES ('L'armata bracaleone')
non so cosa digitare per evitare che il mio (innocente) apostrofo venga interpretato come carattere di terminazione della stringa...
dovrebbe bastare questo:
INSERT INTO nome_tabella VALUES (' L''armata brancaleone') :
con due apici, il secondo annulla il primo
per lo meno funziona così con il PL/SQL di oracle, anche se non so se sia quello utilizzato durante il corso di basi dati ![:D](images/smilies/icon_mrgreen.gif)
|
22-11-2007 20:27 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
CaboM.BNA |
:approved:
... |
22-11-2007 20:47 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
CaboM.BNA |
.grande:maestro.
![](avatar.php?userid=6422&dateline=1158099343)
Registered: Jan 2006
Posts: 503 (0.07 al dì)
Location:
Corso:
Anno:
Time Online: 1 Day, 23:32:44 [...]
Status: Offline
Edit | Report | IP: Logged |
![:approved:](images/smilies/approved.gif)
ti ringrazio...
ho appena testato, è proprio come dicevi tu..
certo che io sono babbo però... ![:sbonk:](images/smilies/sbonk.gif)
non avevo provato la COSA PIU' OVVIA...
avevo immediatamente pensato solo caratteri come \ o " ..
|
22-11-2007 20:47 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
DarkSchneider |
[QUOTE][i]Originally posted by CaboM.BNA [/i]
... |
22-11-2007 21:06 |
|
![Contract Post Collapse](//www.dsy.it/forum/images/collapse.gif) |
DarkSchneider |
Why so serious?
![](avatar.php?userid=3154&dateline=1273494310)
Registered: Feb 2004
Posts: 1250 (0.16 al dì)
Location: Brescia
Corso: Informatica
Anno: out of bounds :/
Time Online: 26 Days, 1:01:59 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by CaboM.BNA
quasi mi vergogno a chiederlo...
pero non sono proprio riuscito a trovare il carattere di escape..
mi spiego meglio.
in una colonna definita come varchar(20) voglio inserire L'armata brancaleone . Siccome bisogna digitare
code: INSERT INTO nome_tabella VALUES ('L'armata bracaleone')
non so cosa digitare per evitare che il mio (innocente) apostrofo venga interpretato come carattere di terminazione della stringa...
dovrebbe bastare questo:
INSERT INTO nome_tabella VALUES (' L''armata brancaleone) :
con due apici, il secondo annulla il primo
per lo meno funziona così con il PL/SQL di oracle, anche se non so se sia quello utilizzato durante il corso di basi dati ![:D](images/smilies/icon_mrgreen.gif)
|
22-11-2007 21:06 |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
![](//www.dsy.it/forum/images/space.gif) |
All times are GMT. The time now is 23:12. |
|
|
![Post New Thread](images/newthread.gif) |
|
![Post A Reply](images/reply.gif) |
|
|
| ![](//www.dsy.it/forum/images/space.gif) |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|