Esempio di interrogazioni dirette SQL

Quelli seguenti sono alcuni esempi di interrogazioni alle quali si può sottoporre il gruppo dei dati del Catasto. Non si può in questo contesto fornire una spiegazione dettagliata sulla tipologia del SQL (Structured Query Language), ma soltanto consigliare il titolo di qualche buon manuale a tutt’oggi disponibile. Se si  vuole un maggiore approfondimento a proprosito del SQL, bisognerà informarsi presso un centro informatico. Il tipo qui usato di SQL non permetterà di ricodificare i valori delle variabili dal data base, ma consentirà comunque di selezionare differenti gruppi di casi e variabili e fare qualche semplice calcolo. Si può anche scaricare casi  e variabili per usarli su foglio o su un proprio programma di analisi statistica.

Martin Gruber, Understanding SQL (SYBEX: San Francisco, 1990--ISBN 0895886448)

C.J. Date and Hugh Darwen, A Guide to the SQL Standard (Addison Wesley: Boston, 1993--ISBN 020155822X)

Martin Gruber, SQL Instant Reference (SYBEX: San Francisco, 1993--ISBN 0782111483)

Esempio 1

Mostra tutte le variabili dei capi-famiglia nel 1427-29, il cui cognome era “MACHIAVELL” (cioè Machiavelli).

select * from catasto where family_name = “MACHIAVELL”

[Per scaricare i risultati di questo e dei seguenti esempi, clicca su ‘Download to spreadsheet’ in fondo allo schermo]

Esempio 2

Mostra i campi “name”, “patronymic”, “family_name”, “sex”, “total”, e “bocche” per i capi-famiglia del 1427-29, il cui cognome era “MACHIAVELL” (cioè Machiavelli); ordina l’elenco in base al patronimico.

select name, patronymic, family_name, sex, total, bocche from catasto where family_name = “MACHIAVELL” order by patronymic

Esempio 3

Conta le famiglie elencate nel catasto del 1427.

select count(*) from catasto where series = 1

Esempio 4

Conta le famiglie elencate nel Catasto, distinguendo tra famiglie capeggiate da donne e famiglie capeggiate da uomini.

select count(*), sex from catasto where series = 1 group by sex

Esempio 5

Mostra la ricchezza media delle famiglie nel 1427, distinguendo tra famiglie capeggiate da donne e famiglie capeggiate da uomini, ed escludendo le famiglie con la ricchezza totale uguale a 0, o quelle nelle quali il sesso del capo-famiglia fosse incerto.

select avg(total), sex from catasto where series = 1 and sex <> 0 and total <> 0 group by sex

Esempio 6

Calcola il numero dei capi-famiglia ai quali nel 1427 sono state attribuite attività lavorative, distinguendo tra uomini e donne, ed escludendo le famiglie nelle quali il sesso del capo-famiglia fosse incerto.

select count(*), trade, sex from catasto where series = 1 and sex <> 0 group by trade, sex

[Nota che  per questa e per le seguenti operazioni si dovrà incrementare il numero massimo assegnato delle righe selezionate da 50 a 250.]

Esempio 7

Mostra la ricchezza media per testa nel 1427, distinguendo fra attività lavorative differenti, escludendo famiglie con ricchezza totale indicata uguale a 0, e quelle capeggiate da donne o con il capo-famiglia dal sesso sconosciuto, arrotondando poi la media a due cifre decimali.

select (round(avg(total/ bocche), 2)), trade from catasto where series = 1 and total <> 0 and sex = 1 group by trade

Esempio 8

Scarica le informazioni relative ai campi “name”, “patronymic”, “family_name”, “volume”, “page”, “trade”, “sex”, “age”, “marital_status”, “bocche” e “total” di tutte le famiglie tedesche viventi a Firenze ed elencate nel 1427.

select name, patronymic, family_name, volume, page, trade, sex, age, marital_status, bocche, total from catasto where series = 1 and migration = 4

[Per questa operazione bisognerà incrementare il numero massimo delle registrazioni. Si potrà usare comunque 'download to spreadsheet', un’opzione fornita per poter scaricare i daticondurre così un’ulteriore analisi dei risultati sul proprio computer.]

Quella seguente è una rappresentazione schematica della logica generale e della sintassi dei comandi SQL; per leggerla correttamente bisogna avere un  browser capace di fornire larghe schermate.

Select

 

From catasto where

 

order by [var. name]

[or] group by[var. name]

 

*

[all variables]

 

[conditions such as]

series = 1
sex = 2
family_name = "STROZZI";

[an alphanumeric value has to be enclosed in ""]

[lists each value]:

order by patronymic

[groups aggregated variables by another variable, or by more than one variable separated by commas]:

group by sex
group by trade, sex

or

[variable list of all variables to be used in output, separated by commas]

and/or

aggregate functions:

(count (var. name))
(max(var.name))
(min(var.name))
(sum(var.name))
(avg( var.name))

and/or

a calculation:

(total/bocche)[the total wealth divided by the number of bocche in the household]
(round(total/bocche, 2))[total wealth/bocche rounded to two decimal points].

You can use the symbols:
+, -, *, /, = ,<> [not equals]
< [less than] <= [less than or equal to]
> [greater than] >= [greater than or equal to]

Return to the direct search form.