Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> PHP /MySQL Programmazione >> .

MySQL entra a far parte di relazione Tutorial

MySQL è un sistema open source di gestione di database relazionali ( RDBMS) che gli individui e le aziende utilizzano spesso per eseguire il back-end di applicazioni web . In SQL , si unisce spesso frustrare i nuovi utenti . Poiché i database diventano più grandi , diventa fondamentale per le query da utilizzare unisce in modo efficiente . Parola chiave JOIN di MySQL rende più facile lavorare con i nuovi e il codice legacy . Inner join

Quando si pensa di unire due tabelle , probabilmente pensate di una query con un semplice join di una tabella come dipendenti con una tabella come Dipartimenti :

SELEZIONA Employees.last_name , Employees.first_name , Departments.department_nameFROM Dipartimenti , EmployeesWHERE Departments.department_id = Employees.department_id ;

Questo è un inner join . Si recupera solo le righe in cui il department_id è esattamente uguale in entrambe le tabelle . Il codice sopra funziona in MySQL , ma si può trovare meno leggibile la seguente :

Seleziona Employees.last_name , Employees.first_name , Departments.department_nameFROM DepartmentsINNER JOIN EmployeesON Departments.department_id = Employees.department_id ;

Queste due query producono esattamente lo stesso output . La differenza è che utilizzando la parola chiave di MySQL JOIN , che hai fatto più evidente di che tipo di join che hai utilizzato . Dal inner join è l'impostazione predefinita , se si lascia fuori la parola chiave INNER , MySQL esegue ancora un join interno .
Outer join

Se avete dipendenti che non sono assegnati ad uno specifico reparto e hanno un valore NULL per la loro department_id , quanto sopra join non visualizzerà tali dipendenti a tutti. Se si desidera che tutti i dipendenti siano essi hanno un reparto o non , è necessario utilizzare un outer join .

MySQL usa sinistra o destra con la parola chiave JOIN per specificare che si desidera che un join esterno , e dirgli che da tavolo si desidera che i valori NULL da . Ecco la nostra rivista ricerca:

SELEZIONA Employees.last_name , Employees.first_name , Departments.department_nameFROM EmployeesLEFT outer join DepartmentON Departments.department_id = Employees.department_id ;

Ottenete tutti i dipendenti in uscita , anche se MySQL non trova department_id per abbinare il record dipendente . La tabella che si desidera consentire valori null da ( dipartimenti ) si trova a sinistra del segno di uguale .

Se si voleva vedere reparti senza dipendenti nel vostro output , è necessario utilizzare un right outer join . La tabella che si desidera consentire valori null da in questo caso si trova sulla destra del segno di uguale .
Cross join

Facendo croce si unisce per caso è un errore comune . E ' quello che succede quando non si specifica un join a tutti. Se non si dispone né mettere un join nella clausola WHERE , oppure utilizzare uno degli altri JOIN ... ON opzioni , si ottiene ogni combinazione possibile di righe in ciascuna delle tabelle nel vostro DAL se hanno una relazione o no .

Se si tira da tre tabelle che hanno , rispettivamente , 10, 20 , e 3 righe , si ottiene 10 x 20 x 3 righe come la vostra produzione totale . Potete vedere il problema che ne consegue se il database ha più di qualche record .

Raramente , si vuole fare un cross join di proposito. MySQL permette di utilizzare la CROSS JOIN ... ON sintassi per mostrare a chiunque modificare il codice dopo che il join croce era intenzionale .

 

Programmazione © www.354353.com