Utveckling av databaser över Internetresurserskiljer sig praktiskt taget inte från standarddatabaser som utvecklats i MS SQL SERVER-systemet. Som regel används MY SQL-språket för sådana resurser, även om det också kan användas för utveckling av standardprogramvaruprodukter för lokalt bruk. Men den här artikeln handlar inte om det.
Ofta när man arbetar med databaser i var och en avspråk, är uppgiften att göra ett urval av data för utdata till en mängd olika rapporter, grafer och så vidare. När du genomför sådana uppgifter måste du som regel inte använda en, utan flera tabeller, som kombinerar dem i en fråga, vilket komplicerar dess design avsevärt. I det här fallet är det nödvändigt att ta hänsyn till hur data kommer att visas, hur tabellerna kommer att "dras upp" och vilket resultat som är det mest acceptabla för programmeraren. En av de vanliga MySQL-språkkonstruktionerna, Join, används för att lösa sådana problem.
Begreppet ordet Gå med
Språk för databasutveckling, oavsett vaddetta är språket, standardord från engelskspråkiga ordböcker tas som grund (det är därför, förutsatt att du kan engelska, blir det mycket lättare för dig att arbeta med tabeller). För att implementera anslutningen av tabeller i urvalet tas samma ord - Gå med. I databasprogrammeringsspråket används min SQL. Översättningen av detta serviceord är exakt samma som i själva språket - ”union”.
Tolkning av MySQL-konstruktionen - Gå med ochnågon av dem kommer att vara exakt densamma. Om vi dechiffrerar syftet med strukturen, nämligen schemat för dess drift, får vi följande betydelse: strukturerna gör det möjligt att samla in nödvändiga fält från olika tabeller eller kapslade frågor i ett val.
Typer av strukturer för att kombinera
Om en programmerare behöver samla ett prov frånflera tabeller och han vet vilka nyckelfält som finns i dem och vilken typ av data som behövs för rapporten, då kan du använda en av de grundläggande sammanfogningskonstruktionerna för att uppnå önskat resultat. Det finns fyra grundläggande konstruktioner (för sammanfogning av tabeller):
- Inre koppling.
- Cross Join.
- Vänster gå med.
- Right Join.
Beroende på uppgiften till hands kommer var och en av standarddesignerna att ge olika resultat, vilket gör att du kan få rapporter om olika parametrar på kort tid.
Skapande och fyllning av tabeller för vidare användning
Innan du börjar, till exempel, övervägamekanismer för att arbeta med dataunionskonstruktioner är det värt att förbereda flera tabeller som vi kommer att arbeta med i framtiden. Detta hjälper till att visuellt visa alla operatörens principer, dessutom är det lättare för nybörjare att lära sig alla grunderna för programmeringstabeller.
Den första tabellen beskriver några av de föremål som en person ständigt stöter på under hela sitt liv.
I den andra tabellen kommer vi att beskriva några av objektens egenskaper från den första tabellen så att du kan arbeta med dem i framtiden.
Generellt räcker det med två tabeller för att illustrera deras arbete med ett exempel. Nu kan du börja med en praktisk undersökning av våra mönster.
Använda Inner Join
När du använder MySQL-konstruktion - Gå med Ineerdet är värt att överväga några av dess funktioner. Denna design gör att du endast kan välja de poster som finns i första och andra tabellen från båda tabellerna. Hur det fungerar? I den första tabellen har vi en huvudnyckel - ID, som anger det ordinarie antalet poster i tabellen.
När du skapar en andra tabell, samma tangentanvänds som serienummer, ett exempel kan ses i figurerna. När du väljer data bestämmer Select-uttalandet endast de poster vars sekvensnummer sammanfaller, vilket innebär att de finns i både första och andra tabellen.
När du använder konstruktionen måste du förståvilken typ av data du behöver få. Det vanligaste misstaget, särskilt för en nybörjad databasprogrammerare, är den irrationella och felaktiga användningen av Inner Join-konstruktionen. Som ett exempel, MySQL Inner Join, kan du överväga ett skript som kommer att returnera oss från de tidigare beskrivna och fyllda tabellerna information om objekt och deras egenskaper. Men även här kan det finnas flera sätt att använda strukturen. I detta avseende är My SQL ett mycket flexibelt språk. Så du kan titta på exempel på hur du använder MySQL Inner Join.
Sammankoppling av tabeller utan att specificera några parametrar. I det här fallet får vi resultatet av en sådan plan:
Om vi genom att använda serviceordet anger attdet är absolut nödvändigt att ta hänsyn till huvudnycklarna för poster i tabellerna, då kommer valresultatet att förändras dramatiskt. I det här fallet får vi ett val som bara returnerar de rader som har samma huvudnycklar.
Ett tredje användningsfall är också möjligt.konstruktioner, när i frågan genom ordet "på" anges de fält som tabellerna ska sammanfogas med. I det här fallet returnerar valet följande data:
Funktioner för att använda Left Join
Om du funderar på ett annat sätt att gå med i tabeller med hjälp av MySQL - Join-konstruktionen, kan du märka skillnaden i data som visas. Den vänstra konstruktionen är en sådan mekanism.
Att använda Left Join MySQL-konstruktionen har vissa särdrag och, som Inner, kräver en tydlig förståelse för det resultat som behöver erhållas.
I det här fallet kommer alla poster att väljas först.från den första tabellen och senare poster från den andra egenskapstabellen kommer att bifogas dem. Dessutom, om den första tabellen innehåller en post, till exempel "pall", och den andra tabellen inte har en enda egenskap för den, kommer vänsteroperatören att visa noll framför denna post, vilket säger till programmeraren att det finns inga tecken för denna typ av objekt ...
Användningen av denna design gör det möjligt för dig att bestämma vilka fält eller till exempel varor i butiken som inte prissätts, garantiperioden och så vidare.
Exempel på användning av vänster
Att beaktas i praktiken av operatörenMySQL Left Join-konstruktioner använder de tidigare beskrivna tabellerna. Du måste till exempel välja hela listan över produkter som finns i butiken och kontrollera för vilka av dem det inte finns några tecken eller egenskaper. I det här fallet visar valet alla produkter och tomma värden ställs in för de som inte har en egendom.
Använda Where in a Join-klausul
Som en parameter kan en koppling inkludera inte bara ange de fält som tabellerna ska kopplas till utan kan också inkludera en Where-klausuloperator.
Tänk till exempel på ett skript som skaatt bara returnera de poster för vilka tecknet inte är fäst. I det här fallet måste du lägga till en tillståndsoperatör i Join-konstruktionen och ange vad som exakt behöver returneras som ett resultat.
När du använder Gå med - Var i MySQL måste du tydligt förstå att endast de poster kommer att visas för vilka det angivna villkoret gäller, och sedan kommer valet att se ut så här:
Sådana frågor gör att du kan göra val efterspecifika data som avser det tillstånd som valts av programmeraren. Du kan ange flera sådana villkor, samtidigt som du maximerar parametrarna för att välja data från de kombinerade tabellerna.
Använda Join för att modifiera data i tabeller
Join-konstruktionen är i grunden universell.Det låter dig inte bara göra en mängd olika val utan också att inkludera i frågor från en till flera tabeller för att ange ytterligare villkor i valet. Konstruktionen kan också användas för andra datahantering. Till exempel kan Join användas för att modifiera data i en tabell. Snarare för att klargöra villkoren i en tabell eller i fall där du behöver uppdatera data i flera tabeller för samma förhållanden.
Tänk till exempel på följande problem.Det finns tre tabeller som innehåller en del data. Du måste ändra data i båda tabellerna med en fråga. Bara för att lösa den här typen av uppgifter kan du använda Join-konstruktionen i kommandot Uppdatera. Typ av anslutningskonstruktion i sig beror, som i fallet med datasampling, på resultatet som programmeraren vill få.
Låt oss titta på det enklaste exemplet.Det är nödvändigt att uppdatera data för samma förhållanden med en begäran. Frågor av detta slag är byggda för att optimera arbetet med databasen. Varför skriva olika frågor för var och en av tabellerna när du kan göra all datamanipulering med en fråga? Ett exempel på MySQL Update-anslutning i vårt fall kommer att vara så här:
Bygga komplexa frågor
Ganska ofta när man arbetar med en databasdet är nödvändigt att bygga frågor inte bara genom att gå med i flera tabeller utan också använda underfrågor. Sådana uppgifter är ganska svåra för en nybörjad databasprogrammerare att förstå. Svårigheten ligger i det faktum att du måste tänka igenom varje steg, bestämma vilka data från vilken tabell eller fråga du behöver få och hur du kommer att behöva arbeta med dem i framtiden.
För en mer specifik förståelse kan du överväga(i MySQL Join) exempel på komplexa frågor. Om du är nybörjare och precis börjar arbeta med databaser, kommer den här utbildningen bara att gynna. Det perfekta alternativet är exempel på MySQL Left Join.
Denna begäran returnerar 58 kontraktsregister till ossförsäljning för vilken ett kontantsaldo fylls eller existerar från det valda datumet. I det här fallet är detta det aktuella datumet. Dessutom har ett villkor lagts till valet att namnet på kontraktet måste innehålla symboler - "123". Informationen (data) som visas på skärmen kommer att sorteras - ordnas efter kontraktets nummer.
I följande exempel visas uppgifter om alla betalningar, där kontraktsnumret kommer att anges.
Använda underfrågor
Som nämnts tidigare, när du arbetar med databaserdata kan du kombinera inte bara tabeller utan också en tabell med en fråga. Denna design används främst för att påskynda frågan och optimera den.
Till exempel, om det behövs från en tabell somhar flera hundra fält och, säg, tusen poster, välj bara två fält, sedan ska du använda en fråga som bara returnerar de obligatoriska fälten och kombinera den med huvuddatauppsättningen. Som ett exempel på MySQL Join Select kan du överväga en fråga av den här typen:
Det här är inte alla sätt att använda standardenMySQL-konstruktioner, men bara vanliga. Hur man använder Join-konstruktionen och i vilka former det är upp till programmeraren själv, men det är värt att komma ihåg och ta hänsyn till vilket resultat som ska uppnås när en fråga utförs.