Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-03-2008, 17: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, 17: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, 17: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, 18: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, 18: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, 20: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, 20: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, 21: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, 22: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, 22: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


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
L'uscita di Rayman Legends Retold &egrav...
Dazio UE sui pacchi extra UE, in Italia ...
La nuova lavatrice smart di Xiaomi ha tr...
Hai una PSP nel cassetto? Questo nuovo p...
Oracle presenta Java 27 con diverse novi...
Il microscopio dell'EPFL vede più...
Volvo avvia la produzione dei nuovi cami...
26 offerte Amazon da non perdere, da iPh...
Google Pixel 10 e 10a a 619€ e 399€: sco...
iPhone 18 Pro e 18 Pro Max prenotabili s...
Anche Sam Altman ha paura: ecco i due sc...
Perplexity Portable Computer arriva su W...
Se l'IA sostituisse il lavoro i salari r...
Fujitsu Monaka è pronto: 144 core...
Il dispositivo ultra compatto che trasfo...
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: 16:05.


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