Cos'è la selezione e cos'è la proiezione

3

Sto lavorando su Android con il metodo query () della classe ContentResolver e accetta 6 parametri, (uri,projection,selection,selectionArgs,sortOrder,cancellationSignal) per i parametri di selezione e proiezione.

Sono un po 'confuso con la parte di selezione e proiezione della query.

Nell'esempio seguente, qual è la selezione e la parte del progetto nella query?

select * from Person
where name='zeus';
    
posta mzeus.bolt 04.07.2014 - 09:23
fonte

3 risposte

7

Selezionare significa scegliere alcuni record da una tabella e lasciare fuori altri.

Progettare significa scegliere alcune colonne da ciascun record e lasciare fuori gli altri.

Pertanto, la query esegue la selezione (i record con nome = 'zeus' vengono scelti, ma altri vengono rifiutati) ma non la proiezione (quei record che vengono scelti vengono restituiti con tutti delle loro colonne).

In generale, la parola chiave select esegue la proiezione e la parola chiave where esegue la selezione. (Il fatto che select sia una funzionalità linguistica per la scelta di colonne piuttosto che di righe, ovvero che esegue la proiezione, non la selezione, è sfortunata, ma la sintassi è troppo consolidata ora per essere corretta.)

    
risposta data 04.07.2014 - 09:26
fonte
-1

La proiezione si riferisce alle colonne che vuoi indietro (il bit dopo SELECT e prima di FROM), la selezione si riferisce alla limitazione dei record (il bit dopo WHERE e prima di ORDER BY). Per Android, la variabile di proiezione dovrebbe essere qualcosa del tipo:

new String [] {"name", "age"}

La variabile di selezione dovrebbe avere la clausola WHERE con i valori sostituiti dai punti interrogativi. I valori vanno nella selezioneArgs. Quindi la selezione nel tuo esempio sarebbe:

"name =?"

e selectionArgs sarebbero:

new String [] {"zeus"}

    
risposta data 04.07.2014 - 10:29
fonte
-2

Proiezione = colonne di record che vuoi recuperare ... Selection = puts condition per selezionare righe specifiche selectionArgs = la condizione in base alla quale vengono filtrate le righe ..

nell'esempio sopra ...

projection = *    i.e. all columns
selection = name i.e user want to filter records according to this column
selectionArgs = zesus  i.e records related to zesus are fetched. 

esempio ..

SELECT  **DISTINCT _id, document_type_name** 
FROM metadata 
WHERE *(instrument_name=?)* 
ORDER BY document_type_name ASC
    
risposta data 14.04.2016 - 08:26
fonte

Leggi altre domande sui tag