рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Operatori Relazionali

Operatori Relazionali - раздел Программирование, Appunti sui DataBase Relazionali e sul linguaggio SQL Ci Sono Sei Operatori Relazionali In Sql, E Dopo Averli Specificati Vedremo C...

Ci sono sei operatori relazionali in SQL, e dopo averli specificati vedremo come si usano. gli operatori sono:

= Uguale
<> oppure != (vedere manuali) Non Uguale
< Minore di
> Maggiore di
<= Minore o uguale di
>= Maggiore o uguale di

La clausola WHERE viene utilizzata per specificare che si desidera vedere solo certe righe della tabella, basandosi per la scelta sul criterio stabilito nella clausola stessa. Penso che un paio di esempi possano rendere più chiaro il funzionamento della stessa.

Se si vuole vedere il Codice Impiegato di quegli impiegati che hanno uno stipendio annuo maggiore di 50 milioni possiamo farlo così:

SELECT CodiceImpiegato
FROM TabellaStatisticeImpiegati
WHERE StipendioAnnuo >= 50000000;

Notate che abbiamo utilizzato il simbolo >= (Maggiore o uguale di), in quanto vogliamo vedere sia coloro che hanno uno stipendio di 50 milioni che quelli che hanno uno stipendio maggiore di 50 milioni. il risultato sarà il seguente:

CodiceImpiegato
------------
010
105
152
215
244

la parte del comando WHERE che contiene la regola discriminante, in questo caso StipendioAnnuo >= 50000000, e' conosciuta come una condizione (un' operazione il cui risultato può essere Vero o Falso). La stessa cosa può essere fatta anche con colonne che contengono testo invece che numeri:

SELECT CodiceImpiegato
FROM TabellaStatisticheImpiegati
WHERE POSIZIONE = 'Dirigente';

Questo comando mostrerà come risultato il codice impiegato di tutti i dirigenti. Generalmente quando si utilizzano colonne di testo ci si limita agli operatori = e != , e bisogna assicurarsi che tutti i testi utilizzati compaiano nel comando racchiusi tra singoli apici ('). N.B. il singolo apice e' l' identificatore di testo nell' SQL ANSI, ma alcuni DBMS usano altri qualificatori come i doppi apici.

Condizioni più complesse: Condizioni multiple e Operatori Logici

L' operatore AND congiunge due o più condizioni, e ritorna tutte e solo le righe che soddisfano TUTTE le condizioni. Per esempio, per mostrare i codici di tutti gli impiegati con uno stipendio superiore ai 40 milioni si utilizza il comando seguente:

SELECT CodiceImpiegato
FROM TabellaStatisticheImpiegati
WHERE StipendioAnnuo > 40000000 AND Posizione = 'Impiegato';

L' operatore OR collega anch'esso due o più condizioni, ma ritorna una riga se UNA QUALSIASI delle condizioni inserite risulta vera. ad esempio per vedere tutti coloro che hanno uno stipendio annuo inferiore a 40 milioni o ricevono meno di 10 milioni in benefici accessori si utilizza la seguente query:

SELECT CodiceImpiegato
FROM TabellaStatisticheImpiegati
WHERE StipendioAnnuo < 40000000 OR Benefici < 10000000;

AND ed OR possono venire combinati, come nell' esempio seguente:

SELECT CodiceImpiegato
FROM TabellaStatisticheImpiegati
WHERE Posizione = 'Dirigente' AND StipendioAnnuo > 60000000 OR Benefici > 12000000;

Per prima cosa, SQL trova le righe in cui lo stipendio annuo e' maggiore di 60 milioni e che contengono nella colonna Posizione la parola 'Dirigente', quindi si tiene in memoria questa lista e controlla che soddisfino la condizione OR relativa ad avere benefici per più di 12 milioni. Notate che la condizione AND viene risolta per prima, cosa che modifica nettamente i risultati. spendiamo un paio di parole in più su questo fatto, in quanto se non ben compreso può portare a differenze sostanziali nei risultati delle query ed alla difficile comprensione del perché ciò è avvenuto.

Per generalizzare quello che avviene, SQL calcola i risultati delle operazioni AND per determinare quali sono le righe che soddisfano la condizione (ricordate: TUTTE le condizioni devono essere vere), quindi questi risultati vengono utilizzati per essere confrontati con la condizione OR, e vengono mostrate solo le righe rimanenti dove una qualsiasi delle operazioni collegate dall' operatore OR risulta vera (True). Matematicamente , SQL valuta tutte le condizioni realizzate tramite operatori relazionali, quindi valuta le "coppie" di AND e quindi gli OR (dove entrambi gli operatori sono valutati da sinistra a destra).

Per fare un esempio, guardiamo cosa succede quando il nostro DBMS valuta una determinata condizione, ricordando che i valori booleani "vero" e "falso" in SQL vengono espressi come True e False . il primo passo che il DBMS fa e' di valutare i risultati delle operazioni svolte tramite gli operatori relazionali, quindi si prepara a valutare gli operatori logici sui risultati. mettiamo che dalla valutazione di una condizione complessa al nostro DBMS sia risultato quanto segue:

True AND False OR True AND True OR False AND False

La prima cosa che fa sarà valutare le coppie di AND, ottenendo quanto segue:

True AND False OR True AND True OR False AND False = False OR True OR False
1° coppia 2° Coppia 3°Coppia

Quindi parte a valutare gli OR, da sinistra a destra, ottenendo al primo passaggio quanto segue:

False OR True OR False = True OR False
1° coppia

ed alla fine, valutando l' ultima espressione , arriva al risultato definitivo

True OR False = True

Il risultato finale e' True (vero) e quindi la riga che ha generato questa sequenza di valori verrà inserita all' interno di quelle passate dalla query. Assicuratevi di leggere attentamente anche la prossima sezione sull' operatore NOT e di avere ben compreso l' ordine di valutazione degli operatori, in quanto e' un argomento difficile da spiegare in poche righe, pertanto posso solo sperare di essere stato sufficientemente chiaro.

Per variare l' ordine di esecuzione , ad esempio se volete una lista di dipendenti che percepiscono uno stipendio maggiore di 50 milioni o con benefici maggiori di 10 milioni e che siano dei dirigenti, si usano le parentesi, come in questo esempio:

SELECT CodiceImpiegato
FROM TabellaStatisticheImpiegati
WHERE Posizione = 'Dirigente' AND (StipendioAnnuo > 50000000 OR Benefici > 10000000);

IN , BETWEEN e NOT

Un metodo semplice per usare delle condizioni multiple e' quello di impiegare le due clausole IN e BETWEEN. Per esempio, se volete vedere tutti i dipendenti che siano dirigenti o impiegati potete fare così:

SELECT CodiceImpiegato
FROM TabellaStatisticheImpiegati
WHERE Posizione IN ('Dirigente', 'Impiegato');

Oppure per avere la lista di coloro che hanno uno stipendio maggiore o uguale di 30 milioni e minore o uguale a 50 milioni potete impiegare il seguente comando

SELECT CodiceImpiegato
FROM TabellaStatisticheImpiegati
WHERE StipendioAnnuo BETWEEN 30000000 AND 50000000;

Invece, per mostrare tutti quelli che non sono compresi nell' intervallo, potete usare:

SELECT CodiceImpiegato
FROM TabellaStatisticheImpiegati
WHERE StipendioAnnuo NOT BETWEEN 30000000 AND 50000000;

Similarmente, la clausola NOT IN restituisce tutte le righe escluse dalla lista generata dalla relativa IN, quindi se voleste vedere tutti coloro che non sono ne' dirigenti ne' impiegati potete farlo con il comando

SELECT CodiceImpiegato
FROM TabellaStatisticheImpiegati
WHERE Posizione NOT IN ('Dirigente', 'Impiegato');

Inoltre, l' operatore NOT può venire utilizzato in congiunzione con AND ed OR per invertirne il risultato, ma va tenuto conto che mentre i due operatori AND ed OR sono binari (usano 2 condizioni) il NOT e' unario, cioè si riferisce ad una sola condizione; inoltre il NOT viene calcolato PRIMA dell' AND e dell' OR .

Ordine in SQL degli operatori logici (tutti funzionano da sinistra a destra)

1. NOT

2. AND

3. OR

Utilizzare la clausola LIKE ed il carattere jolly %

Mettiamo di voler estrarre dalla nostra tabella TabellaImpiegati i codici fiscali di tutti gli impiegati il cui nome inizia per "S"; possiamo procedere così:

SELECT CFisc
FROM TabellaImpiegati
WHERE NOME LIKE 'A%';

Il carattere percento (%) viene utilizzato pre rappresentare ogni possibile carattere (numeri, lettere o segni di interpunzione) o blocchi di caratteri che possono venire trovati dopo il carattere "A". similmente, se volessimo trovare coloro il cui nome termina in "A" potremmo farlo con "%A", o se volessimo trovare quelli il cui nome contiene una A potremmo farlo con "%A%". Visto che il funzionamento dell' operatore Like varia tantissimo da DBMS a DBMS consiglio di verificare la sintassi esatta nel vostro sistema prima di impiegarlo e per vedere quali altre possibilità vi può offrire

– Конец работы –

Эта тема принадлежит разделу:

Appunti sui DataBase Relazionali e sul linguaggio SQL

Indice... Introduzione sui database Cos e un database Piccola storia dei database assolutamente incompleta...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Operatori Relazionali

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Невидимые планеты
Не менее интересны приводимые в письмах Е.И. Рерих и в «Письмах Махатм» сведения о том, что в Солнечной системе на самом деле гораздо больше планет, чем это известно нашим астрономам. Так, в «Космо

Piccola storia dei database assolutamente incompleta
Probabilmente il più glorioso (ed a tutt' oggi utilizzato) antenato dei database relazionali odierni può essere identificato con la sana e vecchia agenda telefonica. in effetti penso

I Database Relazionali
allora cosa sono questi famigerati Database relazionali? il concetto che sta alla base è , come spesso succede nell' informatica, molto meno "strampalato" di quello che si pensa: i

SQL questo sconosciuto
Abbiamo appena finito di dire che uno dei requisiti fondamentali per poter utilizzare un database relazionale e' avere un "linguaggio" che ci permetta di interrogarlo in maniera opportuna

Commit e Rollback, ovvero come limitare i danni
In tutti i database relazionali minimamente decenti esistono due comandi fondamentali che rispondono per l' appunto al nome di commit e rollback. questi due comandi provvedono a fare in modo che un

I Semafori , ovvero la gestione della multiutenza
Chiariamo subito una cosa: già linguaggi come Clipper avevano strumenti per gestire la multiutenza sui database, ma in quel caso ancora era completamente demandato al programmatore il fatto

Basi del comando SELECT
Come abbiamo detto prima nell' introduzione, nei database relazionali le informazioni sono contenute in tabelle. Un esempio di tabella puo' essere rappresentato dalla tabella dei dati degli impiega

Selezione Condizionata
Per continuare la discussione sulla selezione, facciamo riferimento a questa nuova tabella di esempio TabellaStatisticheImpiegati CodiceImpiegato

Le Chiavi
Per prima cosa vediamo il concetto di Chiave. Una Chiave Primaria ( o primary key) e' una colonna o un gruppo di colonne che identificano in maniera univoca (singola) ogni data

Creare un Join
Lo scopo delle Chiavi appena discusse e' quella di correlare i dati attraverso le tabelle, senza dover in questo modo ripetere su tutte le tabelle i dati più frequenti, il che e' il vero sco

Creare un Join
Lo scopo delle Chiavi appena discusse e' quella di correlare i dati attraverso le tabelle, senza dover in questo modo ripetere su tutte le tabelle i dati più frequenti, il che e' il vero sco

Creare un Join
Lo scopo delle Chiavi appena discusse e' quella di correlare i dati attraverso le tabelle, senza dover in questo modo ripetere su tutte le tabelle i dati più frequenti, il che e' il vero sco

Funzioni di Aggregazione
In questa sezione introdurrò le cinque più importanti Funzioni di Aggregazione: SUM, AVG, MAX, MIN, e COUNT. Queste funzioni vengono chiamate Di Aggregazione perché serv

Creare Nuove Tabelle
Tutte le tabelle all' interno di un database devono venire create prima o poi. vediamo come possiamo fare. a titolo di esempio prendiamo in esame la creazione della tabella Ordini: CRE

Modificare la struttura delle tabelle
Sempre con la logica di vedere i comandi all' interno di esempi pratici, vediamo come si puo' aggiungere una nuova colonna "Prezzo" alla tabella antichita per permettere l' inserimento de

Inserire dati in una tabella
Per inserire record (righe) in una tabella si usa il seguente comando (esempio riferito alla tabella Antichita a cui e' appena stato aggiunto il prezzo) : INSERT INTO Antichita VALUES

Cancellare dati da una tabella
Adesso proviamo a cancellare la riga di dati che abbiamo appena inserito dalla tabella: DELETE FROM Antichita WHERE Oggetto = 'Ottomana'; Ma, in questo caso

Modifica dei dati
Proviamo ad aggiornare il valore di un prezzo in un record dove questo non e' stato inserito. ricordiamoci che in questo caso non si tratta di un inserimento ma di una modifica del valore NULL prec

Sommario della Sintassi - Solo per veri masochisti
Qui potete trovare le forme generalizzate dei comandi discussi in questi appunti, più alcuni aggiuntivi che possono risultare comodi e la cui spiegazione e' data a latere. ATTENZI

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги