Computer finestre Internet

4 quali funzioni vengono utilizzate nel linguaggio sql. Funzioni di stringa SQL - esempi di utilizzo. Sintassi dell'istruzione SELECT e ordine di elaborazione

In questo articolo puoi esaminare i tipi di funzioni nel linguaggio SQL. Le funzioni possono essere aggregate o scalari. Iniziamo ...

CONTARE ()

CONTARE ()- una funzione che restituisce il numero di record (righe) della tabella. La scrittura di una funzione che specifica una colonna restituirà il numero di record per una colonna specifica, esclusi i record NULL. Sintassi della funzione:

COUNT (nome_colonna);

La registrazione della funzione con la maschera "*" restituirà il numero di tutti i record nella tabella. Sintassi:

CONTARE (*);

Diamo un'occhiata ad alcuni esempi. C'è la seguente tabella Università:

ID NomeUniversità Studenti facoltà professori Posizione Posto
1 Università statale di ricerca nazionale di Perm 12400 12 1229 permanente psu.ru
2 Università statale di San Pietroburgo 21300 24 13126 San Pietroburgo spbu.ru
3 Università statale di Novosibirsk 7200 13 1527 Novosibirsk nsu.ru
4 Università statale di Mosca 35100 39 14358 Mosca msu.ru
5 Scuola Superiore di Economia 20335 12 1615 Mosca hse.ru
6 Università Federale degli Urali 57000 19 5640 Ekaterinburg urfu.ru
7 Università Nazionale di Ricerca Nucleare 8600 10 936 Mosca mephi.ru

Esempio 1. Stampare il numero di record in una tabella utilizzando la funzione COUNT:

SELEZIONA CONTEGGIO (*)
DA Università; // stamperà 7

Esempio 2. Trova il numero di università situate a Mosca utilizzando la funzione COUNT:

SELEZIONA COUNT (*) FROM Università WHERE Località = "Mosca"; // stamperà 3

MEDIA ()

MEDIA ()- una funzione che restituisce il valore medio di una colonna. Questa funzione è applicabile solo alle colonne numeriche. Sintassi:

AVG (nome_colonna);

Diamo un'occhiata a un esempio. Prendiamo il nostro tavolo delle Università. Esempio. Trova il numero medio di studenti per tutte le università utilizzando la funzione AVG:

SELECT AVG (Studenti) FROM Università; // stampa 23133

MIN ()

MIN ()- una funzione che restituisce il valore minimo di una colonna. La funzione ha la seguente sintassi:

MIN (nome_colonna);

Diamo un'occhiata a un esempio. Prendiamo il nostro tavolo delle Università. Esempio. Utilizzando la funzione MIN, trova il valore minimo della colonna Professori:

SELECT MIN (Professori) FROM Università; // stampa 936

MASSIMO ()

MASSIMO ()- una funzione che restituisce il valore massimo di una colonna della tabella. La funzione ha la seguente sintassi:

MAX (nome_colonna);

Diamo un'occhiata a un esempio. Prendiamo il nostro tavolo delle Università. Esempio. Utilizzando la funzione MAX, trova il valore massimo della colonna Studenti:

SELECT MAX (Studenti) FROM Università; // stamperà 57000

SOMMA ()

SOMMA ()- una funzione che restituisce la somma dei valori di una colonna della tabella. Utilizzato solo per colonne numeriche. Sintassi della funzione:

SOMMA (espressione);

Parametro TUTTI- è l'opzione predefinita. Viene conteggiata la somma di tutte le righe. Quando si specifica un parametro DISTINTO- vengono contati solo i valori univoci.

Diamo un'occhiata ad alcuni esempi. Prendiamo il nostro tavolo delle Università. Esempio 1. Utilizzando la funzione SOMMA, trovare nella tabella il numero di Studenti di tutte le università:

SELEZIONA SOMMA (Studenti) DA Università; // stamperà il 161935

Esempio 2. Utilizzando la funzione SOMMA, calcolare i valori univoci della colonna Facoltà:

SELEZIONARE LA SOMMA (Facoltà DISTINTE) DALLE Università; // visualizza 117 (nella colonna Facoltà ci sono 2 record identici, sotto ID 1 e 5. Il valore della colonna sotto ID 5 non viene sommato.)

IL GIRO ()

IL GIRO ()- funzione per arrotondare i numeri decimali. Funziona solo con colonne numeriche o numeri reali arbitrari. Sintassi della funzione:

ROUND (espressione, lunghezza);

espressione- il nome della colonna o delle colonne, nonché un numero reale. lunghezza- indica la precisione di arrotondamento di un numero.

Diamo un'occhiata a un esempio. Prendiamo la tabella dei pianeti:

ID PianetaNome Raggio stagione del sole Anno di apertura AvereAnelli apri
1 Marte 3396 687.58 1659 # Christian huygens
2 Saturno 60268 10759.22 - -
3 Nettuno 24764 60190.91 1846 John Couch Adams
4 Mercurio 2439 115.88 1631 # Niccolò Copernico
5 Venere 6051 243.56 1610 # Galileo Galilei

Esempio. Arrotonda la colonna SunSeason a una cifra decimale utilizzando la funzione ARROTONDA:

SELECT ROUND (SunSeason, 1) FROM Pianeti;

UCAS ()

UCAS ()- una funzione che restituisce i valori di una o più colonne in lettere maiuscole. In MS DBMS server SQL l'analogo di UCASE() è la funzione UPPER con la stessa sintassi:

UCASE (nome_colonna)

Diamo un'occhiata a un esempio. Prendiamo la nostra tabella dei pianeti. Esempio. Stampa i nomi dei pianeti in maiuscolo che non hanno anelli usando la funzione UCASE:

SELECT UCASE (PlanetName) FROM Pianeti WHERE HaveRings = "No";

LCASE ()

LCASE ()- una funzione che restituisce i valori di una o più colonne in lettere minuscole. Nel DBMS MS SQL Server, l'analogo dell'operatore SQL LCASE() è la funzione LOWER con la stessa sintassi:

LCASE (nome_colonna);

Diamo un'occhiata a un esempio. Prendiamo la nostra tabella dei pianeti. Esempio. Usa la funzione LCASE per visualizzare i nomi dei pianeti con gli anelli in minuscolo:

SELECT LCASE (PlanetName) FROM Planets WHERE HaveRings = "Sì";

LUNGHEZZA ()

LUNGHEZZA ()- una funzione che restituisce la lunghezza di un valore in un campo record. La funzione esclude gli spazi finali dal conteggio. Sintassi:

LEN (nome_colonna);

Diamo un'occhiata a un esempio. Prendiamo la nostra tabella dei pianeti. Esempio. Stampa l'Apri e la lunghezza del nome del pianeta che ha scoperto, usando la funzione LEN:

SELECT Opener, LEN (PlanetName) FROM Pianeti;

MEDIA ()

MEDIA ()- una funzione che visualizza un certo numero di caratteri nel campo di testo della tabella. Sintassi della funzione:

MID (nome_colonna, inizio [, lunghezza]);

Parametro cominciare imposta la posizione del carattere iniziale. Parametro lunghezza imposta il numero di caratteri da emettere a partire dalla posizione specificata nel parametro di inizio.

Diamo un'occhiata a un esempio. Prendiamo il nostro vecchio tavolo delle Università. Esempio. Visualizza i primi 3 caratteri del nome della città (Località) utilizzando la funzione MID:

SELECT MID (Località, 1, 3) FROM Università;

ORA ()

ORA ()- una funzione che restituisce l'ora e la data del sistema. Sintassi della funzione:

Diamo un'occhiata a un esempio. Prendiamo il nostro vecchio tavolo delle Università. Esempio. Mostra quanti studenti stanno attualmente studiando in ciascuna università. utilizzando la funzione ADESSO:

SELEZIONA NomeUniversità, Studenti, ORA () COME CurDate FROM Università;

Per proteggere il materiale, segui tu stesso l'esempio di ciascuna funzione. Se hai domande, scrivi nei commenti e ti risponderò sicuramente.

Comandi SQL di base che ogni programmatore dovrebbe conoscere

SQL, o Structured Query Language, viene utilizzato per manipolare i dati in un sistema di database relazionale (RDBMS). Questo articolo parlerà dei comandi SQL comunemente usati con cui ogni programmatore dovrebbe avere familiarità. Questo materiale è l'ideale per coloro che desiderano rispolverare le proprie conoscenze SQL prima di un colloquio di lavoro. Per fare ciò, analizza gli esempi forniti nell'articolo e ricorda cosa hai passato in coppia attraverso i database.

Nota che alcuni sistemi di database richiedono un punto e virgola alla fine di ogni istruzione. Il punto e virgola è un puntatore standard alla fine di ogni istruzione in SQL. Gli esempi usano MySQL, quindi è richiesto un punto e virgola.

Configurazione del database per esempi

Crea un database per dimostrare come lavorano i team. Per funzionare, è necessario scaricare due file: DLL.sql e InsertStatements.sql. Successivamente, apri un terminale e accedi alla console MySQL con il seguente comando (questo articolo presuppone che MySQL sia già installato sul sistema):

Mysql -u root -p

Quindi inserisci la tua password.

Esegui il seguente comando. Chiamiamo il database "università":

CREA DATABASE università; USE università; FONTE ; FONTE

Comandi del database

1. Visualizza i database disponibili

MOSTRA BANCHE DATI;

2. Creazione di un nuovo database

CREA DATABASE;

3. Scegliere un database da utilizzare

UTILIZZO ;

4. Importazione di comandi SQL dal file .sql

FONTE ;

5. Rimozione del database

DROP DATABASE ;

Lavorare con le tabelle

6. Visualizzazione delle tabelle disponibili nel database

MOSTRA TABELLE;

7. Creazione di una nuova tabella

CREA TABELLA ( , , CHIAVE PRIMARIA ( ), CHIAVE ESTERA ( ) RIFERIMENTI ());

Vincoli di integrità utilizzando CREATE TABLE

Potrebbe essere necessario creare vincoli per colonne specifiche nella tabella. Quando si crea una tabella, è possibile impostare le seguenti restrizioni:

  • una cella di tabella non può essere NULL;
  • chiave primaria - PRIMARY KEY (nome_col1, nome_col2, ...);
  • chiave esterna - FOREIGN KEY (col_namex1,…, col_namexn) RIFERIMENTI nome_tabella (col_namex1,…, col_namexn).

È possibile specificare più di una chiave primaria. In questo caso, ottieni una chiave primaria composita.

Esempio

Crea la tabella "istruttore":

CREATE TABLE istruttore (ID CHAR (5), nome VARCHAR (20) NOT NULL, nome_dipartimento VARCHAR (20), stipendio NUMERICO (8,2), CHIAVE PRIMARIA (ID), CHIAVE ESTERA (nome_dipartimento) REFERENCES reparto (nome_dipartimento));

8. Informazioni sulla tabella

Puoi visualizzare varie informazioni (tipo di valore, chiave o meno) sulle colonne della tabella con il seguente comando:

DESCRIVERE ;

9. Aggiunta di dati alla tabella

INSERIRE (, , , ...) VALORI ( , , , …);

Quando si aggiungono dati a ciascuna colonna della tabella, non è necessario specificare i nomi delle colonne.

INSERIRE VALORI ( , , , …);

10. Aggiornamento dei dati della tabella

AGGIORNARE SET = , = , ... DOVE ;

11. Rimozione di tutti i dati dalla tabella

ELIMINA DA ;

12. Eliminare una tabella

TABELLA DROP ;

Comandi per fare query

13. SELEZIONA

SELECT viene utilizzato per recuperare i dati da una tabella specifica:

SELEZIONARE , ,… A PARTIRE DAL ;

Il comando seguente può visualizzare tutti i dati della tabella:

SCELTO DA ;

14. SELEZIONA DISTINTO

Le colonne della tabella possono contenere dati duplicati. Usa SELECT DISTINCT per ottenere solo dati non duplicati.

SELEZIONA DISTINTO , ,… A PARTIRE DAL ;

15. DOVE

Può essere utilizzato parola chiave WHERE in SELECT per specificare le condizioni nella query:

SELEZIONARE , ,… A PARTIRE DAL DOVE ;

Nella richiesta possono essere specificate le seguenti condizioni:

  • confronto di testo;
  • confronto di valori numerici;
  • operazioni logiche AND (and), OR (or) e NOT (negazione).

Esempio

Prova i seguenti comandi. Prestare attenzione alle condizioni specificate nel WHERE:

SELECT * FROM corso WHERE dept_name = 'Comp. Sci. '; SELEZIONA * FROM corso WHERE crediti > 3; SELECT * FROM course WHERE dept_name = "Comp. Sci." AND crediti > 3;

16. GRUPPO PER

La clausola GROUP BY viene spesso utilizzata con funzioni aggregate come COUNT, MAX, MIN, SUM e AVG per raggruppare i valori di output.

SELEZIONARE , ,… A PARTIRE DAL RAGGRUPPARE PER ;

Esempio

Mostriamo il numero di corsi per ciascuna facoltà:

SELECT COUNT (course_id), dept_name FROM corso GROUP BY dept_name;

17. AVERE

La parola chiave HAVING è stata aggiunta a SQL perché WHERE non può essere utilizzata con le funzioni aggregate.

SELEZIONARE , , ... A PARTIRE DAL RAGGRUPPARE PER AVENDO

Esempio

Elenchiamo le facoltà con più di un corso:

SELECT COUNT (course_id), dept_name FROM corso GROUP BY dept_name HAVING COUNT (course_id)> 1;

18. ORDINA PER

ORDER BY viene utilizzato per ordinare i risultati della query in ordine decrescente o crescente. ORDER BY ordinerà in ordine crescente se non viene specificato alcun metodo di ordinamento ASC o DESC.

SELEZIONARE , ,… A PARTIRE DAL ORDINATO DA , , ... ASC | DESC;

Esempio

Mostriamo un elenco di corsi in ordine crescente e decrescente del numero di crediti:

SELEZIONA * DA corso ORDINA PER crediti; SELEZIONA * DA corso ORDINA PER crediti DESC;

19. TRA

BETWEEN viene utilizzato per selezionare i valori dei dati da un intervallo specificato. È possibile utilizzare valori numerici e di testo, nonché date.

SELEZIONARE , ,… A PARTIRE DAL DOVE TRA E ;

Esempio

Ecco un elenco di istruttori il cui stipendio è superiore a 50.000 ma inferiore a 100.000:

SELECT * FROM istruttore DOVE stipendio TRA 50000 E 100000;

20. MI PIACE

L'operatore LIKE viene utilizzato in WHERE per specificare un modello di ricerca per un valore simile.

Ci sono due operatori gratuiti che vengono utilizzati in LIKE:

  • % (nessuno, uno o più caratteri);
  • _ (un carattere).
SELEZIONARE , ,… A PARTIRE DAL DOVE COME ;

Esempio

Mostriamo un elenco di corsi, il cui nome contiene "to", e un elenco di corsi, il cui nome inizia con "CS-":

SELEZIONA * FROM corso WHERE titolo LIKE ‘% to%’; SELECT * FROM course WHERE course_id LIKE "CS -___";

21. IN

Puoi utilizzare IN per specificare più valori per la clausola WHERE:

SELEZIONARE , ,… A PARTIRE DAL DOVE IN ( , , …);

Esempio

Mostriamo un elenco di studenti di Comp. Sci. Fisica e Elec. Ing.:

SELECT * FROM studente WHERE nome_dipartimento IN ('Comp. Sci.', 'Fisica', 'Ing.elettr.');

22. ISCRIVITI

JOIN viene utilizzato per collegare due o più tabelle utilizzando attributi comuni al loro interno. L'immagine qui sotto mostra diversi modi si unisce in SQL. Nota la differenza tra un join esterno sinistro e un join esterno destro:

SELEZIONARE , ,… A PARTIRE DAL ADERIRE SU = ;

Esempio 1

Verrà visualizzato un elenco di tutti i corsi e le informazioni corrispondenti sulle facoltà:

SELECT * FROM corso ISCRIVITI dipartimento ON course.dept_name = dipartimento.dept_name;

Esempio 2

Elenchiamo tutti i corsi richiesti e i dettagli su di essi:

SELECT prereq.course_id, titolo, dept_name, crediti, prereq_id FROM prereq LEFT OUTER JOIN corso ON prereq.course_id = course.course_id;

Esempio 3

Mostriamo un elenco di tutti i corsi, indipendentemente dal fatto che siano obbligatori o meno:

SELEZIONA course.course_id, title, dept_name, credits, prereq_id FROM prereq RIGHT OUTER JOIN course ON prereq.course_id = course.course_id;

23. Visualizza

View è una tabella SQL virtuale creata eseguendo un'espressione. Contiene righe e colonne ed è molto simile a una normale tabella SQL. Visualizza mostra sempre le informazioni più recenti dal database.

Creazione

CREA VISTA COME SELEZIONA , ,… A PARTIRE DAL DOVE ;

Eliminazione

VISTA A GOCCIA ;

Esempio

Creiamo una vista composta da corsi con 3 crediti:

24. Funzioni aggregate

Tali funzioni vengono utilizzate per ottenere un risultato aggregato relativo ai dati in oggetto. Le seguenti sono funzioni aggregate comunemente usate:

  • COUNT (col_name) - restituisce il numero di righe;
  • SUM (col_name) - restituisce la somma dei valori nella colonna data;
  • AVG (col_name) - Restituisce il valore medio della colonna data;
  • MIN (col_name) - Restituisce il valore più piccolo per la colonna data;
  • MAX (col_name) - Restituisce maggior valore data colonna.

25. Sottoquery nidificate

Le sottoquery nidificate sono query SQL che includono clausole SELECT, FROM e WHERE nidificate all'interno di un'altra query.

Esempio

Troviamo i corsi che sono stati tenuti nell'autunno 2009 e nella primavera 2010:

SELECT DISTINCT id_corso FROM sezione WHERE semestre = 'Autunno' AND anno = 2009 AND id_corso IN (SELEZIONARE id_corso FROM sezione WHERE semestre = 'Primavera' AND anno = 2010);

Le funzioni sono un tipo speciale di comando in un insieme di comandi SQL e ogni dialetto ha la propria implementazione del set di comandi. Di conseguenza, possiamo dire che le funzioni sono comandi composti da una sola parola che restituiscono un unico valore. Il valore di una funzione può dipendere dai parametri di input, come nel caso di una funzione che calcola la media di una lista di valori in un database. Tuttavia, molte funzioni non utilizzano alcun parametro di input, ad esempio la funzione che restituisce l'ora di sistema corrente - CURRENTJ1ME.

Lo standard ANSI supporta diverse funzioni utili. Questo capitolo descrive queste funzioni e descrizione dettagliata ed esempi per ciascuna delle piattaforme. Inoltre, ogni piattaforma ha un lungo elenco delle proprie funzioni interne che vanno oltre lo standard SQL. Questo capitolo fornisce parametri e descrizioni di tutte le funzioni interne di ciascuna piattaforma.

Inoltre, la maggior parte delle piattaforme ha la possibilità di creare funzioni personalizzate. Per Informazioni aggiuntive Per le funzioni definite dall'utente, vedere le istruzioni CREATE/ALTER FUNCTION/PROCEDURE

Tipi di funzione

esiste diversi modi classificazione delle funzioni. Le seguenti sottosezioni descrivono importanti differenze per aiutarti a capire come funzionano le funzionalità.

Funzioni deterministiche e non deterministiche

Le funzioni possono essere deterministiche e non deterministiche. Una funzione deterministica restituisce sempre lo stesso risultato per lo stesso insieme di input. Le funzioni non deterministiche possono restituire risultati diversi su chiamate diverse, anche se vengono passati gli stessi valori di input.

Perché è così importante che con lo stesso parametri di input hai ottenuto gli stessi risultati? Questo è importante perché definisce il modo in cui le funzioni vengono utilizzate nelle viste, nelle UDF e nelle stored procedure. Le limitazioni possono variare da piattaforma a piattaforma, ma a volte su questi oggetti possono essere utilizzate solo funzioni deterministiche. SQL Server, ad esempio, può creare un indice su un'espressione in una colonna, a meno che l'espressione non contenga funzioni non deterministiche. Le regole e le restrizioni su piattaforme diverse sono diverse, quindi fare riferimento alla documentazione del produttore quando si utilizzano le funzioni.

Funzioni aggregate e scalari

Un altro modo per classificare le funzioni è quando possono lavorare con una sola riga, con una raccolta di valori o con insiemi di righe. Le funzioni aggregate operano su una raccolta di valori e restituiscono un unico valore totale. Le funzioni scalari restituiscono un singolo valore a seconda degli argomenti di input scalari. Alcune funzioni scalari, come CURRENTJTIME, non richiedono alcun argomento.

Funzioni della finestra

Le funzioni finestra possono essere pensate come simili alle funzioni aggregate in quanto possono operare su più righe contemporaneamente. La differenza è come vengono specificate queste righe. Le funzioni aggregate operano sui set di righe specificati nella clausola GROUP BY. Nel caso delle funzioni finestra, il set di righe viene specificato con ogni chiamata alla funzione e diverse sfide le funzioni all'interno della stessa query possono funzionare con diversi set di righe.

Continuiamo a studiare il linguaggio di query SQL e oggi ne parleremo Funzioni stringa SQL... Tratteremo le funzioni di stringa di base e comunemente usate come: ABBASSARE, LTRIM, SOSTITUIRE e altri, considereremo tutto, ovviamente, con esempi.

SELEZIONA nome || cognome COME FIO DA tabella

Oppure, per separare con uno spazio, inserisci

SELEZIONA nome || "" || cognome COME FIO DA tabella

quelli. due barre verticali uniscono due colonne in una e per separarle con uno spazio, metto uno spazio tra di loro ( è possibile utilizzare qualsiasi carattere, come trattino o due punti) in apostrofi e anche combinato con due barre verticali ( Transact-SQL usa + invece di due barre verticali).

Funzione INITCAP

Poi c'è anche una funzione molto utile, INITCAP- che restituisce il valore in una stringa in cui ogni parola inizia con una lettera maiuscola e continua con una minuscola. Ciò è necessario se non si seguono le regole di riempimento in una colonna particolare e per visualizzare il tutto in bella forma puoi usare questa funzione, ad esempio, hai il seguente modulo nella colonna del nome nella tabella: IVAN ivanov o petr petrov, usi questa funzione.

SELEZIONA INITCAP (nome) COME FIO DA tabella

E lo otterrai così.

Funzione SUPERIORE

Una funzione simile, restituisce solo tutti i caratteri in maiuscolo, questo è SUPERIORE.

SELEZIONA SUPERIORE (nome) COME FIO DA tabella

  • nome - il nome della colonna;
  • 20 - numero di caratteri ( lunghezza del campo);
  • '-' è un carattere da aggiungere al numero di caratteri richiesto.

Funzione RPAD

Consideriamo subito la funzione inversa. RPAD- l'azione e la sintassi sono le stesse di LPAD, solo i caratteri a destra sono riempiti ( nel LPAD a sinistra).

SELEZIONA RPAD (nome, 20, "-") COME nome DA tabella

Ivan —————-
Sergey -----

Funzione LTRIM

Next è anche una funzione utile in alcuni casi, LTRIM- questa funzione rimuove i caratteri più a sinistra specificati. Ad esempio, hai una colonna "città" nel tuo database, in cui la città è indicata come "Mosca", e ci sono anche città che sono indicate semplicemente come "Mosca". Ma devi visualizzare il rapporto solo sotto forma di "Mosca" senza "g". Devi solo specificare una sorta di modello "g" e se i caratteri più a sinistra iniziano con "g", questi caratteri semplicemente non verranno visualizzati.

SELEZIONA LTRIM (città, "città") COME Gorod FROM tabella

Questa funzione esegue la scansione dei caratteri a sinistra, se non ci sono caratteri nel modello all'inizio della riga, restituisce il valore originale della cella e, se presente, li elimina.

Funzione RTRIM

Diamo subito un'occhiata anche alla funzione inversa. RTRIM- come LTRIM, a destra vengono cercati solo i caratteri.

Nota! In Transact-SQL, le funzioni RTRIM e LTRIM rimuovono gli spazi rispettivamente da destra e da sinistra.

Funzione SOSTITUISCI

Ora diamo un'occhiata a una funzione così interessante come SOSTITUIRE- restituisce una stringa in cui tutte le corrispondenze di caratteri vengono sostituite con i caratteri che specifichi. Per quello che può essere usato, ad esempio, hai colonne nel tuo database, in cui ci sono alcuni simboli di separazione, ad esempio "/". Ad esempio, Ivan / Ivanov e desideri visualizzare Ivan-Ivanov, quindi scrivi

SELEZIONA SOSTITUISCI (nome, "/", "-") FROM tabella

e avrai una sostituzione dei simboli.

Questa funzione sostituisce solo una corrispondenza completa di caratteri, se ad esempio si specifica "-", ad es. cercherà solo tre trattini e non sostituirà ogni singolo trattino, a differenza della funzione successiva.

Funzione TRANSLATE

TRADURRE- una funzione stringa che sostituisce tutti i caratteri nella stringa con i caratteri specificati. In base al nome della funzione, potresti intuire che si tratta di un feed di riga completo. La differenza tra questa funzione e REPLACE è che sostituisce ogni carattere specificato, ad es. hai tre caratteri, diciamo abc e s usando TRANSLATE Puoi sostituirlo con abc in modo da avere a = a, b = b, c = c e, secondo questo principio, tutte le corrispondenze di caratteri verranno sostituite. E se hai sostituito con SOSTITUISCI, stavi cercando solo una corrispondenza completa di simboli abc situati in una riga.

Funzione SUBSTR

SUBSTRquesta funzione, restituisce solo l'intervallo di caratteri specificato. In altre parole, diciamo una stringa di 10 caratteri e non ti servono tutti e dieci, ma diciamo che ti occorrono solo 3-8 ( dalla terza all'ottava). Con questa funzione, puoi farlo facilmente. Ad esempio, hai un identificatore nel database di lunghezza fissa (come AA-BB-55-66-CC) e ogni combinazione di caratteri significa qualcosa. E in un bel momento ti è stato detto di visualizzare solo 2 e 3 combinazioni di caratteri, per questo scrivi una query della forma seguente.

SELECT SUBSTR (ident, "4", "8") FROM tabella

quelli. stampiamo tutti i caratteri, iniziando con 4 e finendo con 8, e dopo questa query otterrai questo:

Funzione LENGTH - lunghezza della stringa

Anche la funzione successiva può tornare utile, è LUNGHEZZA- che conta solo il numero di caratteri in una riga. Ad esempio, devi scoprire quanti caratteri ci sono in ogni cella in una colonna, diciamo "nome", una tabella come questa.

SELEZIONA LUNGHEZZA (nome) DA tabella

dopo questa richiesta riceverai questo.

4
6
7

Eccoci qui con te e abbiamo esaminato le funzioni di base delle stringhe SQL. Continueremo la nostra esplorazione di SQL nei prossimi articoli.

Impareremo a riassumere. No, questi non sono ancora i risultati dello studio di SQL, ma i risultati dei valori delle colonne delle tabelle del database. Le funzioni aggregate SQL agiscono sui valori delle colonne per produrre un singolo valore di risultato. Le funzioni di aggregazione SQL più comunemente utilizzate sono SUM, MIN, MAX, AVG e COUNT. È necessario distinguere tra due casi di utilizzo di funzioni aggregate. Innanzitutto, le funzioni aggregate vengono utilizzate da sole e restituiscono un singolo valore risultante. In secondo luogo, le funzioni aggregate vengono utilizzate con la clausola SQL GROUP BY, ovvero con il raggruppamento per campi (colonne) per ottenere i valori dei risultati in ciascun gruppo. Consideriamo prima i casi di utilizzo di funzioni aggregate senza raggruppamento.

Funzione SOMMA SQL

La funzione SQL SUM restituisce la somma dei valori di una colonna in una tabella di database. Può essere applicato solo alle colonne i cui valori sono numeri. Query SQL per ottenere l'importo risultante, inizia in questo modo:

SELEZIONA SOMMA (COLUMN_NAME) ...

Questa espressione è seguita da FROM (TABLE_NAME), quindi è possibile specificare una condizione utilizzando la clausola WHERE. Inoltre, DISTINCT può essere specificato davanti al nome della colonna, il che significa che verranno conteggiati solo i valori univoci. Per impostazione predefinita, vengono presi in considerazione tutti i valori (per questo, è possibile specificare specificamente non DISTINCT, ma ALL, ma la parola ALL è facoltativa).

Esempio 1. C'è un database dell'azienda con i dati sulle sue divisioni e dipendenti. La tabella Personale, oltre a tutto, ha una colonna con i dati sugli stipendi dei dipendenti. La selezione dalla tabella è la seguente (per ingrandire l'immagine cliccarci sopra con il tasto sinistro del mouse):

Per ottenere la somma di tutti gli stipendi, utilizziamo la seguente query:

SELEZIONA SOMMA (stipendio) DA Personale

Questa query restituirà 287664.63.

E adesso . Negli esercizi, stiamo già iniziando a complicare i compiti, avvicinandoli a quelli che si incontrano nella pratica.

Funzione SQL MIN

La funzione SQL MIN funziona anche su colonne i cui valori sono numeri e restituisce il minimo di tutti i valori nella colonna. Questa funzione ha la stessa sintassi della funzione SOMMA.

Esempio 3. Il database e la tabella sono gli stessi dell'esempio 1.

È necessario scoprire il salario minimo dei dipendenti del dipartimento con il numero 42. Per fare ciò, scrivi la seguente richiesta:

La richiesta restituirà il valore 10505.90.

E di nuovo esercizio di auto-aiuto... In questo e in altri esercizi, avrai bisogno non solo della tabella Staff, ma anche della tabella Org, che contiene i dati sulle divisioni dell'azienda:


Esempio 4. La tabella Org viene aggiunta alla tabella Staff, che contiene i dati sulle divisioni dell'azienda. Visualizza il numero minimo di anni in cui un singolo dipendente ha lavorato in un dipartimento situato a Boston.

Funzione SQL MAX

La funzione SQL MAX funziona in modo simile e ha una sintassi simile, che viene utilizzata quando è necessario determinare il valore massimo tra tutti i valori in una colonna.

Esempio 5.

È necessario scoprire lo stipendio massimo dei dipendenti del dipartimento numero 42. Per fare ciò, scrivi la seguente richiesta:

La richiesta restituirà il valore 18352.80

È giunto il momento esercizi per l'autosoluzione.

Esempio 6. Stiamo lavorando di nuovo con due tabelle: Staff e Org. Visualizza il nome del reparto e le provvigioni massime guadagnate da un dipendente in un reparto appartenente alla Divisione Orientale. Utilizzo UNISCITI (unisci tabelle) .

Funzione SQL AVG

La sintassi precedente per le funzioni descritte in precedenza è vera anche per la funzione SQL AVG. Questa funzione restituisce la media di tutti i valori in una colonna.

Esempio 7. Il database e la tabella sono gli stessi degli esempi precedenti.

Supponiamo di voler scoprire l'esperienza lavorativa media dei dipendenti del dipartimento numero 42. Per fare ciò, scrivi la seguente query:

Il risultato sarà un valore di 6.33

Esempio 8. Lavoriamo con un tavolo - Staff. Ritirare lo stipendio medio dei dipendenti con un'esperienza da 4 a 6 anni.

Funzione SQL COUNT

La funzione SQL COUNT restituisce il numero di record in una tabella di database. Se specifichi SELECT COUNT (COLUMN_NAME) ... nella query, il risultato sarà il numero di record esclusi i record in cui il valore della colonna è NULL (non definito). Se si utilizza un asterisco come argomento e si avvia una query SELECT COUNT (*) ..., il risultato sarà il numero di tutti i record (righe) nella tabella.

Esempio 9. Il database e la tabella sono gli stessi degli esempi precedenti.

È necessario conoscere il numero di tutti i dipendenti che ricevono commissioni. Il numero di dipendenti i cui valori della colonna Comm non sono NULL restituirà la seguente query:

SELEZIONA COUNT (Comm) DA Staff

Il risultato è 11.

Esempio 10. Il database e la tabella sono gli stessi degli esempi precedenti.

Se hai bisogno di scoprire il numero totale di record in una tabella, usiamo una query con un asterisco come argomento della funzione COUNT:

SELEZIONA COUNT (*) FROM Staff

Il risultato è 17.

Nel prossimo esercizio di auto-aiuto sarà necessario utilizzare una sottoquery.

Esempio 11. Lavoriamo con un tavolo - Staff. Visualizzare il numero di dipendenti nel reparto di pianificazione (pianure).

Funzioni di aggregazione con SQL GROUP BY (raggruppamento)

Ora diamo un'occhiata all'utilizzo delle funzioni aggregate in combinazione con la clausola SQL GROUP BY. La clausola SQL GROUP BY viene utilizzata per raggruppare i valori dei risultati in base alle colonne della tabella del database. Il sito ha una lezione dedicata a questo operatore a parte .

Esempio 12. C'è un database del portale di annunci. Contiene la tabella Annunci, che contiene i dati sugli annunci inviati per la settimana. La colonna Categoria contiene dati su grandi categorie di annunci (ad esempio, Immobili), mentre la colonna Parti contiene dati sulle parti più piccole incluse nella categoria (ad esempio, le parti Appartamenti e Ville fanno parte della categoria Immobili). La colonna Unità contiene i dati sul numero di annunci inviati e la colonna Denaro contiene la quantità di denaro ricevuta per l'invio degli annunci.

CategoriaParteUnitàSoldi
TrasportoVeicoli a motore110 17600
ImmobiliareAppartamenti89 18690
ImmobiliareCottage57 11970
TrasportoMotociclette131 20960
Materiali da costruzionetavole68 7140
Ingegnere elettricotelevisori127 8255
Ingegnere elettricoFrigoriferi137 8905
Materiali da costruzioneRegips112 11760
Tempo liberolibri96 6240
Immobiliarecase47 9870
Tempo liberoMusica117 7605
Tempo liberoGiochi41 2665

Utilizzando l'istruzione SQL GROUP BY, trova la quantità di denaro guadagnata dalla pubblicazione di annunci in ciascuna categoria. Scriviamo la seguente richiesta:

SELEZIONA Categoria, SOMMA (Soldi) COME Denaro DAGLI Annunci GRUPPI PER Categoria

Esempio 13. Il database e la tabella sono gli stessi dell'esempio precedente.

Usa l'istruzione SQL GROUP BY per scoprire quale parte di ogni categoria ha avuto il maggior numero di annunci. Scriviamo la seguente richiesta:

SELEZIONA Categoria, Parte, MAX (Unità) AS Massimo FROM Annunci GRUPPO PER Categoria

Il risultato sarà la seguente tabella:

È possibile ottenere i valori totali e individuali in una tabella combinazione dei risultati della query utilizzando l'operatore UNION .

Database relazionali e linguaggio SQL