Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Per diversi giorni il Galaxy S26 Ultra di Samsung è stato il nostro compagno di vita. Oltre alle conferme del colosso coreano come la qualità del display e una suite AI senza rivali, arriva il Privacy Display, un unicum nel mondo smartphone. Ci sono ancora alcuni gap che non sono riusciti a colmare lato batteria e fotocamera, seppur con alcuni miglioramenti.
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Abbiamo provato per voi il nuovo DLC lanciato a sorpresa da Blizzard per Diablo II: Resurrected e quella che segue è una disamina dei nuovi contenuti che abbiamo avuto modo di sperimentare nel corso delle nostre sessioni di gioco, con particolare riguardo per la nuova classe dello Stregone
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-03-2008, 18:23   #1
afsdfdlecosdfsfdcco
Registered User
 
Iscritto dal: Jul 2007
Messaggi: 915
[SQL] qualche dubbio da niubbo :D

Premessa: di SQL non conosco praticamente nulla

Allora, per il mio programma avrei bisogno di una tabella simile:

CREATE TABLE SNIPPETS (
CATEGORY VARCHAR(50) NOT NULL,
NAME VARCHAR(100) NOT NULL,
TAGS VARCHAR(200) NOT NULL,
CODE VARCHAR(10000) NOT NULL,
DESCRIPTION VARCHAR(1000) NOT NULL
);

Ecco, avrei qualche dubbio:

1) "TAGS" dovrebbe essere un vettore di "TAG"... Come posso scriverlo? (se si può)
2) se un campo è opzionale è sufficiente togliere "NOT NULL"?
3) "NAME" dovrebbe essere un identificatore (univoco). Come lo scrivo?
4) devo per forza scrivere tutto maiuscolo?

Grazie ^^

(si, sono veramente niubbo con SQL)
afsdfdlecosdfsfdcco è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2008, 18:51   #2
amedeoviscido
Senior Member
 
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
Quote:
Originariamente inviato da alecocco Guarda i messaggi
Premessa: di SQL non conosco praticamente nulla

Allora, per il mio programma avrei bisogno di una tabella simile:

CREATE TABLE SNIPPETS (
CATEGORY VARCHAR(50) NOT NULL,
NAME VARCHAR(100) NOT NULL,
TAGS VARCHAR(200) NOT NULL,
CODE VARCHAR(10000) NOT NULL,
DESCRIPTION VARCHAR(1000) NOT NULL
);

Ecco, avrei qualche dubbio:

1) "TAGS" dovrebbe essere un vettore di "TAG"... Come posso scriverlo? (se si può)
2) se un campo è opzionale è sufficiente togliere "NOT NULL"?
3) "NAME" dovrebbe essere un identificatore (univoco). Come lo scrivo?
4) devo per forza scrivere tutto maiuscolo?

Grazie ^^

(si, sono veramente niubbo con SQL)
mmm vediamo. Innanzitutto la clausola "NOT NULL" dice al motore SQL di rifiutare il valore NULL per il campo. Quindi così come l'hai scritta tutti i campi sono obbligatori. Un'altra clausola è "UNIQUE" ovvero unico: non ammette duplicati fra le righe per quel campo. La loro combinazione, NOT NULL UNIQUE, implica che è obbligatorio ed univoco: ovvero è una chiave, e lo puoi scrivere come PRIMARY KEY. Quindi abbiamo risposto al punto 3:

Codice:
NAME VARCHAR(100) PRIMARY KEY
Per risolvere il quesito al punto 1, io farei diversamente: crea una tabella con chiave primaria la combinazione (NAME,TAG) ovvero

Codice:
CREATE TABLE nametags (
NAME VARCHAR(100),
TAG VARCHAR(200),
PRIMARY KEY(NAME,TAG)
)
2) SI
4) assolutamente no
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17
Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo
amedeoviscido è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2008, 18:59   #3
amedeoviscido
Senior Member
 
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
Se il tuo dbms supporta le foreign key allora scriverei anche:

Codice:
CREATE TABLE nametags (
NAME VARCHAR(100),
TAG VARCHAR(200),
PRIMARY KEY(NAME,TAG),
NAME REFERENCES snippets(NAME)
)
Ovvero, ti assicuri che il campo "NAME" sia effettivamente presente all'interno del database. Ovviamente, se dovrai inserire dei nuovi tag nella tabella nametags, avrai prima bisogno di creare lo snippet relativo
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17
Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo
amedeoviscido è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2008, 19:15   #4
afsdfdlecosdfsfdcco
Registered User
 
Iscritto dal: Jul 2007
Messaggi: 915
Grazie mille ad entrambi ^^
Come dbms uso "Derby" (un dbms java)

Quote:
Originariamente inviato da amedeoviscido Guarda i messaggi
Per risolvere il quesito al punto 1, io farei diversamente: crea una tabella con chiave primaria la combinazione (NAME,TAG) ovvero

Codice:
CREATE TABLE nametags (
NAME VARCHAR(100),
TAG VARCHAR(200),
PRIMARY KEY(NAME,TAG)
)

Quindi la mia tabella diverrebbe:
Codice:
CREATE TABLE SNIPPETS ( 
CATEGORY VARCHAR(50) NOT NULL,
CODE VARCHAR(10000) NOT NULL,
DESCRIPTION VARCHAR(1000) NOT NULL,

TAGS nametags(100) NOT NULL
);
od ho sbagliato?
afsdfdlecosdfsfdcco è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2008, 19:24   #5
amedeoviscido
Senior Member
 
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
Derby? Mai sentito!!! Mi spiace, non so se supporta le references. Va bene, comunque il codice da te proposto, mi spiace, è sbagliato. Le tabelle da creare sono due, devi fare in questo modo:

Codice:
CREATE TABLE SNIPPETS (
        CATEGORY VARCHAR(50) NOT NULL,
        NAME VARCHAR(100) PRIMARY KEY,
        CODE VARCHAR(10000) NOT NULL,
        DESCRIPTION VARCHAR(1000) NOT NULL
);

CREATE TABLE nametags (
        NAME VARCHAR(100),
        TAG VARCHAR(200),
        PRIMARY KEY(NAME,TAG),
        NAME REFERENCES snippets(NAME)
)
eventualmente togliendo la riga NAME REFERENCES...

In pratica devi creare due tabelle. La prima che contiene i dati sulle snippets, l'altra con i tag. Per recuperare i TAG associati al NAME, basta dare questa semplice query in pasto al motore DB:

SELECT tag FROM nametags WHERE name='abc'
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17
Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo
amedeoviscido è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2008, 21:15   #6
afsdfdlecosdfsfdcco
Registered User
 
Iscritto dal: Jul 2007
Messaggi: 915
Quote:
Originariamente inviato da amedeoviscido Guarda i messaggi
Derby? Mai sentito!!!
http://www.regdeveloper.co.uk/2006/1...atabase_derby/

Quote:
Originariamente inviato da amedeoviscido Guarda i messaggi
Va bene, comunque il codice da te proposto, mi spiace, è sbagliato. Le tabelle da creare sono due, devi fare in questo modo:

Codice:
CREATE TABLE SNIPPETS (
        CATEGORY VARCHAR(50) NOT NULL,
        NAME VARCHAR(100) PRIMARY KEY,
        CODE VARCHAR(10000) NOT NULL,
        DESCRIPTION VARCHAR(1000) NOT NULL
);

CREATE TABLE nametags (
        NAME VARCHAR(100),
        TAG VARCHAR(200),
        PRIMARY KEY(NAME,TAG),
        NAME REFERENCES snippets(NAME)
)
Quindi non è proprio possibile inserire una tabella in una tabella? 8(



Quote:
Originariamente inviato da amedeoviscido Guarda i messaggi
In pratica devi creare due tabelle. La prima che contiene i dati sulle snippets, l'altra con i tag. Per recuperare i TAG associati al NAME, basta dare questa semplice query in pasto al motore DB:

SELECT tag FROM nametags WHERE name='abc'
Ok, grazie mille
afsdfdlecosdfsfdcco è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2008, 21:58   #7
afsdfdlecosdfsfdcco
Registered User
 
Iscritto dal: Jul 2007
Messaggi: 915
Un'altra domanda!

Quote:
CREATE TABLE `web_null_mail` (
`id` int(255) NOT NULL auto_increment,
`mail` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `mail` (`mail`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Mi interessa la parte in neretto (ho trovato il codice su internet): se io volessi memorizzare testi che contengono anche caratteri accentati (sia lettere italiane che caratteri francesi, tedeschi ecc) cosa dovrei usare? E cosa vorrebbe dire "ENGINE=MyISAM"? Scusate la niubbezza
afsdfdlecosdfsfdcco è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2008, 22:56   #8
afsdfdlecosdfsfdcco
Registered User
 
Iscritto dal: Jul 2007
Messaggi: 915
Sto facendo qualche test ma ho qualche problemino. Vi spiego come funziona il programma.

Al momento salvo i dati in questa struttura:
TreeMap<String, TreeMap<String, Snippet>> data

1) l'utente aggiunge una categoria (non deve essere già presente) - il programma SALVA la categoria in una treemap (come chiave, creando una nuova TreeMap vuota come value)
2) l'utente (selezionando una categoria) crea uno snippet (inserendo subito il nome) - il programma aggiunge una chiave nella TreeMap interna.
3) il programma crea un nuovo pannello di edit dove l'utente inserirà i tags, il codice e la descrizione (quest'ultimo campo è facoltativo).
4) salva i nuovi dati al click su "save"


Problema: come devo creare la/le tabelle per non dover riscrivere tutto?
Ad esempio, la categoria dovrebbe essere inserita prima ancora che venga creato lo snippet!

Grazie per la pazienza
afsdfdlecosdfsfdcco è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2008, 23:23   #9
amedeoviscido
Senior Member
 
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
per il charset puoi sostituire con UTF8 o 16. Per il resto se ne riparla domani!!!
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17
Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo
amedeoviscido è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2008, 23:28   #10
afsdfdlecosdfsfdcco
Registered User
 
Iscritto dal: Jul 2007
Messaggi: 915
Quote:
Originariamente inviato da amedeoviscido Guarda i messaggi
per il charset puoi sostituire con UTF8 o 16. Per il resto se ne riparla domani!!!
Ok grazie mille intanto!
afsdfdlecosdfsfdcco è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
Portatile gaming con RTX 5060 a 1.099€: ...
6G for dummies: al MWC 2026 il CEO di Qu...
Le RAM tornano a salire di prezzo: quest...
5 robot aspirapolvere bestseller al mini...
A 59 anni il mio primo hackathon: dieci ...
Come sfruttare le Offerte di Primavera p...
NVIDIA promette un salto enorme: path tr...
Il meglio di Amazon in 23 articoli: supe...
Questo portatile MSI da 16" OLED 38...
DirectX, prove tecniche di futuro: machi...
Le analisi di ALMA sulla cometa interste...
La missione cinese Tianwen-3 per portare...
Un satellite di HEO Space ha catturato u...
Mini LED 144Hz a prezzo folle: questo Hi...
Novità per Fortinet: arrivano For...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:06.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v