Giorno 7: Advance SQL per la scienza dei dati

Jan 27 2023
Finora questo è il settimo blog nel viaggio delle basi per far avanzare sql. puoi fare riferimento ai blog precedenti per imparare sql da zero, questo blog contiene una buona conoscenza di viste, funzioni e procedure memorizzate.

Finora questo è il settimo blog nel viaggio delle basi per far avanzare sql. puoi fare riferimento ai blog precedenti per imparare sql da zero, questo blog contiene una buona conoscenza di viste, funzioni e procedure memorizzate.

VISUALIZZAZIONI

Una vista è in realtà un approccio basato su tabella virtuale come set di risultati per l'istruzione SQL. Possono essere presenti più tabelle, ad esempio il numero massimo di origini tabella che possono essere unite in una singola query è 256 .

Una vista contiene righe e colonne proprio come una tabella nel database, i campi in una vista sono campi di una o più tabelle.

Perché abbiamo bisogno di visualizzazioni??

Le viste vengono utilizzate per motivi di sicurezza perché incapsulano il nome della tabella . I dati sono nella tabella virtuale, non memorizzati in modo permanente. Le visualizzazioni mostrano solo i dati selezionati e, tuttavia, è necessario che i tuoi dati lo siano.

Possiamo usare la clausola Joins/function/sql nelle viste.

Sintassi per creare una vista:

CREATE VIEW nome_vista AS
SELECT colonna1 , colonna2 , … FROM nome_tabella WHERE condizione ;

Create View Salesman_info
As
select s.salesmanid,s.city, count(customerid) no_of_sales from salesman s 
left join customer c on c.salesmanid = s.salesmanid
group by 1;

      
                

Sintassi per aggiornare una vista:

CREATE OR REPLACE VIEW nome_vista AS
SELECT colonna1 , colonna2 , … FROM nome_tabella WHERE condizione ;

Sintassi per eliminare una vista:

DROP VIEW nome_vista ;

Una vista offre diversi vantaggi.

  1. Le viste possono nascondere la complessità.
  2. Le viste possono essere utilizzate come meccanismo di sicurezza.
  3. Le viste possono semplificare il supporto del codice legacy.

Funzioni integrate : ci sono molte funzioni integrate a cui possiamo accedere o manipolare i nostri dati come richiesto. Alcune delle funzioni sono funzioni stringa, funzioni matematiche/numeriche, funzioni data, funzioni avanzate o funzioni aggregate.

Funzione definita dall'utente : SQL consente agli utenti di creare funzioni personalizzate in base alle loro esatte esigenze.

Esistono tre tipi di funzioni definite dall'utente:

  1. Le funzioni scalari restituiscono un singolo valore.
  2. Funzioni di valore della tabella, ad esempio restituiscono un set di tabelle.
  3. Funzioni di valore multi-tabella, ad esempio restituiscono un set di tabelle.

Qui ho creato una funzione per calcolare l'età utilizzando la data di nascita in MYSQL.

DELIMITER $$
CREATE FUNCTION Calculate_Age
(
 DOB date
)
RETURNS INT DETERMINISTIC
BEGIN
 RETURN YEAR(CURRENT_DATE()) - YEAR(DOB);
END$$
DELIMITER ;

      
                
Query :::: SELECT Calculate_Age(‘1988–02–29’) as DOB;

Procedure memorizzate : una procedura memorizzata è un codice SQL preparato che è possibile salvare, in modo che il codice possa essere riutilizzato più e più volte. Quindi, se hai una query SQL che scrivi più e più volte, salvala come procedura memorizzata, quindi chiamala per eseguirla.

Sintassi della procedura memorizzata:

CREATE PROCEDURE nome_procedura
AS
istruzione_sql
GO;

Eseguire una procedura memorizzata

EXEC nome_procedura ;

Perché usiamo la procedura memorizzata piuttosto che la funzione?

  1. La procedura memorizzata può restituire valori zero, singoli e multipli.
  2. La stored procedure può anche restituire un set di dati di tabelle come richiesto utilizzando più query SQL.
  3. Possiamo chiamare la funzione nella stored procedure.
  4. La procedura memorizzata può avere valori e parametri di input/output.
  5. Non possiamo usare l'istruzione select/where/having con gli SP.
  6. Possiamo usare insert/update/delete e select in stored procedure.
  7. La stored procedure SQL può eseguire SQL dinamico.
  8. DELIMITER $$
    CREATE PROCEDURE Proc_Saleman_Info_Data()
    BEGIN
     ## Type 1
        select s.salesmanid,s.city, count(customerid) no_of_sales from salesman s 
     left join customer c on c.salesmanid = s.salesmanid
     group by 1;
        
        ## Type 2
        insert into salesman
     values(5008,'Shikha rawat','India',12);
        
    END$$
    DELIMITER ;
    

    call Proc_Saleman_Info_Data();
    

Domande di intervista popolari per viste/funzioni/procedura archiviata.

Domanda 1: Cosa sono le visualizzazioni?

Ques2: Quante tabelle possiamo usare nelle viste?

Ques3: Differenza tra funzione e stored procedure?

Grazie per averlo letto e se ti piace, non dimenticare di dare un applauso!

Buona giornata!.

=============================LA FINE=================== =======

GitHub: sessione del giorno 7

Per favore, dagli una stella su Git Hub!!

Riferimento :

  1. https://www.w3schools.com/sql/default.asp
  2. https://www.geeksforgeeks.org/

Seguimi per altri post relativi a Data Science!

Connettiamoci su LinkedIn !