Sviluppo di database di risorse Internetpraticamente non differisce dai database standard sviluppati in MS SQL SERVER. In genere, per tali risorse viene utilizzato il linguaggio MY SQL, sebbene possa essere utilizzato anche per sviluppare prodotti software standard per uso locale. Ma questo articolo non riguarda questo.
Spesso quando si lavora con i database in ciascuno deilingue è il compito di fare una selezione di dati per l'output in una varietà di report, grafici e così via. Di norma, quando si implementano tali compiti, è necessario utilizzare non una ma più tabelle, combinandole in un'unica query, complicando notevolmente la sua costruzione. Allo stesso tempo, è necessario tenere in considerazione il modo in cui i dati verranno prodotti, come verranno "tirati" i tavoli e quale sarà il risultato più accettabile per il programmatore. Per risolvere questi problemi, uno dei costrutti standard del linguaggio MySQL è Join.
Lingue di sviluppo del database, non importa cosa esattamentetipo di linguaggio, prendendo come base le parole standard dei dizionari inglesi (che è il motivo per cui la condizione che si sa l'inglese, si bude molto più facile lavorare con le tabelle). Per implementare la connessione delle tabelle nel campione, viene utilizzata la stessa parola: Join. Nel linguaggio di programmazione del database viene utilizzato My SQL. Traduzione del servizio parola è esattamente lo stesso che nel linguaggio - "unione".
Interpretazione del costrutto MySQL-Join equalcuno di loro sarà esattamente lo stesso. Se decifichiamo lo scopo del progetto, vale a dire lo schema della sua operazione, otteniamo il seguente significato: le costruzioni permetteranno di raccogliere i campi necessari da diverse tabelle o query annidate in un unico campione.
Se il programmatore deve prelevare un campione dadiverse tabelle e conosce i campi chiave in esse contenuti e il tipo di dati necessari per il report, quindi è possibile utilizzare uno dei progetti di base dell'unione per ottenere il risultato desiderato. Le costruzioni di base (per unire tabelle) sono quattro:
A seconda del compito, ciascuno dei disegni standard darà risultati diversi, il che consentirà di ricevere report su diversi parametri in breve tempo.
Prima di iniziare, per esempio, prendi in considerazionemeccanismi per lavorare con le federazioni di dati, vale la pena preparare diverse tabelle con le quali continueremo a lavorare. Questo aiuterà a mostrare visivamente tutti i principi degli operatori, inoltre, quindi, i principianti sono più facili da imparare tutte le basi delle tabelle di programmazione.
Il primo tavolo descriverà alcuni elementi che una persona incontra costantemente durante la sua vita.
Nella seconda tabella, descriviamo alcune proprietà degli oggetti dalla prima tabella, in modo che possiamo lavorare con loro in futuro.
In generale, due tabelle saranno sufficienti per mostrare il loro lavoro con l'esempio. Ora puoi iniziare a considerare i nostri progetti.
Quando si utilizza il costrutto MySQL: Join Ineervale la pena considerare alcune delle sue caratteristiche. Questo design consente di selezionare da entrambe le tabelle solo i record che si trovano sia nella prima che nella seconda tabella. Come funziona? Nella prima tabella abbiamo la chiave principale - ID, che indica il numero di serie dei record nella tabella.
Quando si crea la seconda tabella, la stessa chiaveUtilizzato come numero di serie, un esempio può essere visto nelle figure. Quando si selezionano i dati, l'operatore Seleziona determinerà solo i record i cui numeri di sequenza sono uguali, il che significa che esistono sia nella prima sia nella seconda tabella.
Quando si usa la costruzione,quali dati è necessario ricevere. L'errore più comune, in particolare per un programmatore di database per principianti, è l'uso irrazionale e scorretto del design di Inner Join. Ad esempio, MySQL Inner Join, puoi considerare uno script che ci tornerà dalle tabelle precedentemente descritte e riempite con informazioni sugli oggetti e le loro proprietà. Ma ci possono essere diversi modi per utilizzare la struttura. In questo senso, il mio SQL è un linguaggio molto flessibile. Quindi, puoi considerare esempi di utilizzo di MySQL Inner Join.
Combinare tabelle senza specificare alcun parametro. In questo caso, otteniamo il risultato di tale piano:
Se indichiamo attraverso la parola di utilità Using, thatÈ necessario prendere in considerazione le chiavi principali dei record nelle tabelle, il risultato del campione cambierà radicalmente. In questo caso, otteniamo un esempio che restituirà solo le righe che hanno le stesse chiavi principali.
È anche possibile una terza opzionecostruisce, quando nella query viene utilizzata la parola "on" per specificare i campi in base ai quali le tabelle devono essere unite. In questo caso, l'esempio restituirà i seguenti dati:
Se consideriamo un altro modo di combinare le tabelle usando il costrutto MySQL-Join, puoi vedere la differenza nei dati che vengono emessi. Questo meccanismo è il costrutto di sinistra.
Usando il costrutto di Left Join MySQL ha alcune caratteristiche e, come Inner, richiede una chiara comprensione del risultato da ottenere.
In questo caso, tutti i record saranno selezionati per primidalla prima tabella e in seguito verranno allegati ai record della seconda tabella delle proprietà. In questo caso, se c'è una voce nella prima tabella, ad esempio "stool", e nella seconda tabella non ci sono proprietà per essa, quindi l'istruzione Left mostrerà il valore nullo opposto a questo record, che dice al programmatore che non ci sono segni per questo tipo di oggetto .
L'uso di questo design ti consentirà di determinare quali campi o, ad esempio, le merci nel negozio non sono esposte al prezzo, al periodo di garanzia e così via.
Considerare in pratica l'operatoreSinistra Iscriviti MySQL utilizza le tabelle precedentemente descritte. Ad esempio, è necessario selezionare l'intero elenco di prodotti presenti nel negozio e verificare quali di essi non sono contrassegnati da segni o proprietà. In questo caso, l'esempio mostrerà tutti i prodotti sullo schermo e per quelli che non hanno una proprietà, verranno visualizzati i valori vuoti.
Come parametro, un join può includere non solo i campi a cui si desidera collegare le tabelle, ma può anche includere l'operatore clausola Where.
Ad esempio, considera uno script che dovrebbeRitorna a noi solo quei record per i quali non viene mostrato alcun segno. In questo caso, nel costrutto Join, è necessario aggiungere una dichiarazione di condizione e specificare cosa esattamente si desidera restituire come risultato.
Se utilizzato in MySQL Join - Dove, è necessario comprendere chiaramente che verranno visualizzati solo i record a cui si applica la condizione specificata e la selezione sarà simile a questa:
Tali richieste ti permettono di provareDati specifici relativi alla condizione scelta dal programmatore. Esistono diverse condizioni di questo tipo, ma allo stesso tempo si specificano i parametri di selezione dei dati dalle tabelle unite.
Il costrutto Join è, infatti, universale. Permette non solo di creare una varietà di campioni, ma anche di includere nelle richieste da una a più tabelle, inserire condizioni aggiuntive nel campione. Il design può essere utilizzato anche per altre operazioni di dati. Quindi, Join può essere utilizzato per modificare i dati in una tabella. Piuttosto, per chiarire le condizioni nella tabella o in quei casi, se si desidera aggiornare i dati in più tabelle per le stesse condizioni.
Ad esempio, considera questo problema. Sono fornite tre tabelle in cui ci sono alcuni dati. È necessario apportare una modifica ai dati in entrambe le tabelle, utilizzando una query. Solo per risolvere questo tipo di attività, è possibile utilizzare il costrutto Join nel comando Aggiorna. Il tipo di costrutto Join dipende, come nel caso del recupero dei dati, dal risultato che il programmatore vuole ottenere.
Consideriamo l'esempio più semplice. È necessario aggiornare la stessa query per le stesse condizioni. Tali query sono costruite per ottimizzare il lavoro con il database. Perché scrivere query diverse per ciascuna tabella, se è possibile eseguire tutte le manipolazioni dei dati con una query? L'esempio di MySQL Update Join nel nostro caso sarà:
Abbastanza spesso quando si lavora con un databaseÈ necessario creare query non solo con l'unione di più tabelle, ma anche con l'uso di sottoquery. Tali compiti sono piuttosto difficili da comprendere per un programmatore di database principianti. La difficoltà è che devi riflettere su ogni passaggio, determinare quali dati da quale tabella o query devi ottenere e come dovrai lavorare con loro in futuro.
Per una comprensione più concreta,(in MySQL Join) esempi di query complesse. Se sei un principiante e stai appena iniziando a lavorare con i database, questo tipo di formazione ne trarrà beneficio. L'opzione ideale sarà MySQL Left Join esempi.
Questa richiesta ci restituirà 58 voci di contrattoVendite, per le quali il saldo dei fondi per la data selezionata è compilato o esiste. In questo caso, questa è la data corrente. Sempre nell'esempio, è stata aggiunta la condizione che il nome del contratto dovesse contenere i simboli "123". Le informazioni visualizzate sullo schermo (dati) verranno ordinate - ordinando in base al numero del contratto.
Nell'esempio seguente verranno visualizzati i dettagli di tutti i pagamenti in cui è specificato il numero del contratto.
Come accennato in precedenza, quando si lavora con i databasepuoi combinare non solo le tabelle, ma anche una tabella con una query. Questo design è utilizzato principalmente per velocizzare la query e ottimizzarlo.
Ad esempio, se necessario da una tabella cheha diverse centinaia di campi e, diciamo, un migliaio di record, seleziona solo due campi, quindi dovresti utilizzare una query che restituirà solo i campi richiesti e unirli con l'esempio di dati principale. Come esempio di MySQL Join Select, puoi considerare una query di questo tipo:
Non è tutto il modo di usare lo standardCostrutti MySQL, ma solo standard. Il modo di usare il costrutto Join e in quale delle sue forme decide il programmatore stesso, ma vale la pena ricordare e tenere conto di quale risultato si dovrebbe ottenere quando viene eseguita la query.
</ p>