Sql Server e MySql: creare un Linked Server 4.8 (214)

Come creare Linked Server tra SQL Server e MySQL? Vediamo come connettere un istanza Sql Server con un server MySQL e consentire l’esecuzione di query tramite three dot notation e/o con la funzione OPENQUERY. La guida nasce dalla necessità di accedere ad un database del mio sito da un istanza SQL Server ed eseguire query in tempo reale e poter utilizzare i dati presenti sul server MySQL all’interno di JOIN, MERGE e altri comandi similari. Ciò non esclude la possibilità di ottenere risultati simili…

SQL: DataBase, tabelle e query 0 (0)

Lezione 1 – SQL: DataBase, tabelle e query Pre-requisiti necessari Cos’è un database? Brevissimo ripassoSignificato e uso di SQLParole del linguaggio: SELECT … FROMParole del linguaggio: ORDER BY … WHERE Pre-requisiti necessari conoscere il concetto teorico di Database conoscere le potenzialità pratiche di un DB Cos’è un database? Brevissimo ripasso Molto brevemente affrontiamo il concetto di database (DB), che comunque avremo modo di vedere a fondo con gli esempi che affronteremo lungo il percorso.Un database è un insieme di informazioni organizzate, generalmente…

SQL: Relazioni tra tabelle 0 (0)

Lezione 2 – SQL: Relazioni tra tabelle ARGOMENTI –Che cos’è una relazione?-Relazioni tra tabelle diverse-Parole del linguaggio: INNER JOIN … ON-Tipi di relazione: Uno-A-Molti-Tipi di relazione: Uno-A-Uno-Tipi di relazione: Molti-A-Molti–Funzione della tabella : osservazione finale Che cos’è una relazione? Una relazione, è un legame logico che permette di aggregare informazioni. In un DB una tabella è una relazione, vale a dire una “legge” che mette insieme opportunamente le informazioni che individua, a formare righe (record) e colonne (campi) della tabella stessa.Spesso è…

SQL: Query di comando 5 (1)

Lezione 4 – SQL: Query di comando Query di selezione e query di comandoQuery di creazioneQuery di accodamentoQuery di eliminazioneQuery di modifica Differenza tra query di selezione e query di comando: Query di selezione e query di comando Una query è un’interrogazione, vale a dire una richiesta di reperire dati in un DB, aggregati tra loro per mezzo di criteri che possono essere stabiliti. Tutto quanto visto finora è stato realizzato mediante interventi di questo tipo, che, cioè, mostrano i dati con…

Outer join ( left outer join, right outer join, full outer join) 0 (0)

Outer join Una outer join non richiede che ci sia corrispondenza esatta tra le righe di due tabelle. La tabella risultante da una outer join trattiene tutti quei record che non hanno alcuna corrispondenza tra le tabelle. Le outer join si suddividono in left outer join, right outer join, e full outer join, in base a quale sia la tabella di cui intendiamo trattenere i valori in caso di mancata corrispondenza della regola di confronto da (sinistra, destra, o entrambi). (In questo caso left (sinistra) e right (destra) si…

Cross join 0 (0)

Una cross join, cartesian join o product fornisce le basi (le infrastrutture informatiche) attraverso cui tutti i tipi di inner join operano. Il risultato di una cross join è il prodotto cartesiano di tutte le righe delle tabelle che concorrono alla query di join. È come dire che stiamo facendo una inner join senza impostare la regola di confronto o in cui la regola di confronto ritorna sempre vero. Date le due tabelle di partenza A e B, la cross join si scrive A × B. Esempio…

Natural join 0 (0)

Una natural join offre ulteriori specializzazioni di equi-join. Solitamente la join confronta colonne di tabelle diverse che hanno lo stesso nome. La natural join fa proprio questo. Nell’esempio che segue viene riportata la notazione natural join equivalente alla prima inner-join definita: SELECT * FROM Impiegati NATURAL JOIN Dipartimenti ID_dipartimento Impiegati.Cognome Dipartimenti.Nome_dipartimento 34 Monti Risorse umane 33 Bianchi Tecnico 34 Santoro Risorse umane 33 Mancini Tecnico 31 Rossi Vendite – / 5 Grazie per aver votato!

Equi-join 0 (0)

Equi-join La equi-join, altrimenti conosciuta come equijoin, ha un particolare tipo di comparatore, detto theta join, che utilizza come metodo di verifica, solamente l’uguaglianza matematica come regola di confronto. Usare altri operatori di confronto (come ad esempio <) squalifica la join come equi-join. La query riportata di seguito utilizza una equi-join: SELECT * FROM Impiegati INNER JOIN Dipartimenti ON Impiegati.ID_dipartimento = Dipartimenti.ID_dipartimento SQL fornisce una scorciatoia per definire le equi-joins, attraverso la keyword USING SELECT * FROM Impiegati INNER JOIN Dipartimenti USING (ID_dipartimento) La keyword USING è…

Inner join 0 (0)

Una inner join crea una nuova tabella combinando i valori delle due tabelle di partenza (A and B) basandosi su una certa regola di confronto. La query compara ogni riga della tabella A con ciascuna riga della tabella B cercando di soddisfare la regola di confronto definita. Quando la regola di join viene soddisfatta, i valori di tutte le colonne delle tabelle A e B vengono combinate in un’unica riga nella costruzione della tabella risultante. La inner join è la…

Join (SQL) 0 (0)

Il JOIN è una clausola del linguaggio SQL che serve a combinare le tuple di due o più relazioni di una base di dati. Lo standard ANSI definisce alcune specifiche per il linguaggio SQL sul tipo di JOIN da effettuare: INNER, FULL, LEFT e RIGHT, alle quali diversi DBMS aggiungono CROSS. In alcuni casi è possibile che una tabella possa essere combinata con se stessa, in questo caso si parlerà di self-join. Tabelle di esempio Tutti gli esempi che verranno riportati di seguito faranno uso delle seguenti due tabelle Cognome ID_dipartimento Rossi 31 Bianchi 33 Mancini 33 Santoro 34 Monti…

Viste 0 (0)

Le viste sono tabelle virtuali contenenti dati provenienti da altre tabelle della base di dati. Le viste hanno due principali funzioni: definire una porzione della base di dati accessibili da un particolare gruppo di utenti. Questa caratteristica contribuisce a realizzare la privatezza dei dati, una delle qualità offerte da un DBMS; estendere il potere espressivo di SQL permettendo un annidamento delle interrogazioni più sofisticato rispetto a quello già discusso oppure la realizzazione di attributi calcolati che non dipendono totalmente dai dati presenti nella…

Vincoli di integrità e Trigger 0 (0)

In SQL è possibile specificare dei vincoli di integrità sui dati, sia quelli propri del modello relazionale che quelli che specificano le regole aziendali. Vincoli di dominio. Essi vengono implicitamente specificati quando un attributo viene associato al corrispondente dominio: i valori dell’attributo devono appartenere al relativo dominio. Obligatorietà degli attributi. In SQL, per default, un attributo (non facente parte della chiave primaria) è opzionale, cioè può assumere valori nulli. Per rendere obbligatorio un attributo, cioè per fare in modo che…

Aggiornamento della base di dati 0 (0)

SQL permette di aggiornare lo stato della base di dati mediante inserimenti, modifiche e cancellazioni di righe di tabelle.InserimentoE’ possibile inserire una o più righe in una tabella con il comando insert. Consideriamo il seguente schema di relazione: dipendente(cf, nome, cognome, stipendio) Il seguente comando inserisce un nuovo dipendente: insert into dipendente(cf, nome, cognome, stipendio) values ('ALSBRT69', 'Alessio', 'Bertallot', '1000') Il seguente comando inserisce come dipendenti tutti gli attori presenti nella tabella attore: insert into dipendente(cf, nome, cognome) select cf, nome,…

Interrogazioni di base 0 (0)

Interrogazioni di base Consideriamo la seguente tabella teatro: nome città email CSS Udine css@gmail.com Litta Milano litta@gmail.com Piccolo Milano piccolo@gmail.com Eliseo Roma eliseo@gmail.com L’interrogazione più semplice che si possa scrivere è la seguente: select * from teatro Il risultato è l’intera tabella teatro. La prima riga dell’interrogazione è detta clausola select e serve per selezionare le colonne della tabella che ci interessano. L’operatore * permette di selezionare tutte le colonne. La seconda riga dell’interrogazione è detta clausola from e serve per indicare quali tabelle usare. La…

Interrogazioni nidificate 0 (0)

Interrogazioni nidificate Una interrogazione nidificata è una interrogazione che contiene un’altra interrogazione. SQL non pone limiti al livello di annidamento ma solitamente più di due annidamenti rendono incomprensibile una query ad un umano (una macchina, invece, non ha problemi di comprensione in questo caso). E’ possibile nidificare una interrogazione nella clausola where (vedremo un’altra forma di annidamento parlando delle viste). In particolare una espressione può essere confrontata mediante gli usuali operatori di confronto con una interrogazione. L’operatore di confronto è seguito dalla parola chiave any oppure all.…

SQL- Query di eliminazione 0 (0)

Creare ed eseguire una query di eliminazione Se si vuole eliminare rapidamente una grande quantità di dati o eliminare regolarmente un set di dati in un database desktop di Access, una query di eliminazione o di aggiornamento può essere utile perché le query rendono possibile specificare criteri per trovare ed eliminare rapidamente i dati. L’uso di una query può essere anche un uso più riusato perché è possibile riutilizzare una query salvata. Nota: Prima di eliminare dati o eseguire una query…

SQL: Query di accodamento 0 (0)

Una query di accodamento si usa quando è necessario aggiungere nuovi record a una tabella esistente usando dati da altre origini. Se è necessario modificare i dati in un set di record esistente, ad esempio aggiornare il valore di un campo, è possibile usare una query di aggiornamento Come si fa una query di accodamento? Il processo di creazione di una query di accodamento è costituito dai passaggi di base seguenti: Creare una query di selezione. Convertire la query di selezione in una query di accodamento. Scegliere i campi di destinazione per ogni colonna nella query di accodamento. Eseguire la query per accodare i record.…

Query di creazione tabella 0 (0)

Query di creazione tabella Questo tipo di query consente la creazione di una nuova tabella in base a tutti o parte di essi contenuti in una o più tabelle. Una query di questo tipo, risulta abbastanza utile, nell’operazione di backup dei dati, di esportazione degli stessi in altri Data Base Access, o ancora nella creazione di uno storico cronologico. Le operazioni da compiere per creare una query di questo genere sono semplicissime: Creare una query selezionando le tabelle o le…

SQL: Query di raggruppamento 0 (0)

Lezione 3 – SQL: Query di raggruppamento Che cosa significa “raggruppare”?Funzioni delle query di raggruppamentoParole del linguaggio: GROUP BY …Un passo avanti: le query a campi incrociati Che cosa significa “raggruppare”? Capita con una notevole frequenza di dover effettuare calcoli o statistiche su dati memorizzati, che abbiano qualche caratteristica in comune.SQL mette a disposizione, a questo scopo, un potente strumento: le query di raggruppamento.Raggruppare significa “mettere insieme” tutti i dati, accomunati da qualche caratteristica, su cui vanno fatti alcuni tipi di…

Differenza tra query di selezione e query di comando 0 (0)

Query di selezione: realizza l’aggregazione di dati presi da una o più tabelle, selezionati sulla base di criteri determinati. Il risultato di questa operazione è un RecordSet. Query di comando: permette di variare i dati in modo irreversibile: dopo l’intervento di modifica non è più possibile annullare l’operazione. Query di comando 1) Query di creazione tabella Questo tipo di query crea una nuova tabella con dati provenienti da una tabella esistente o da una query.Un esempio pratico può essere quello di avere dei dati di una tabella con tutti gli iscritti di una gara sportiva…