Een subquery is een vraag binnen een andere query . Een subquery kan ook een andere subquery bevatten . Deze zijn naar verluidt " genest " subquery . Een join is wanneer twee of meer tabellen wordt verwezen in het "Van" -clausule van de query . Verschillende database engines kunnen subqueries optimaliseren en sluit zich anders . Bijvoorbeeld , zal DB2 optimizer een subquery te transformeren naar een join indien aan bepaalde criteria is voldaan . In sommige gevallen , een join levert betere prestaties dan subquery . Wat maakt een Subquery Een subquery is een "SELECT " statement binnen de "WAAR " of "met "-clausule van een buitenste " INSERT , " " UPDATE ", "merge " of " DELETE " statement . De subquery wordt ook de " innerlijke vraag" of de zogenaamde " innerlijke select . " De subquery kan een " FROM " -clausule met een of meer tafels hebben en kan optioneel een "WAAR , " " GROUP BY " of "met " -clausule . Het is altijd tussen haakjes . Voordelen en nadelen van Subquery Subquery zijn voordelig omdat ze de query structureren om elk deel van de verklaring te isoleren , voeren dezelfde operatie dat normaal zou vereisen complexe verbindingen en vakbonden en zijn gemakkelijker te lezen . Subquery waren ook de basis voor de benaming " Structured Query Language" ( SQL ) vanwege hun gemakkelijk leesbare structuur . Een nadeel is dat je een tafel niet kan wijzigen en kiezen uit dezelfde tafel binnen een subquery in dezelfde SQL-instructie . Subquery kan ook langer duren om uit te voeren dan een join vanwege de manier waarop de database optimizer verwerkt ze . Wat maakt een Join meeste subqueries kan worden herschreven als sluit zich aan , en de meeste joins kan worden herschreven als subquery . Een join definieert twee of meer tabellen met een bijbehorende kolom . Tafels zijn meestal aangesloten op de primaire en externe sleutels . Zo kan een medewerker tabel een primaire sleutel van een id kolom werknemer hebben , terwijl een rooster tafel heeft ook een medewerker id kolom dat is een vreemde sleutel tot de werknemer tafel . De SQL join kan worden geschreven als "WAAR employee.empid = timesheet.empid " of " FROM werknemer JOIN rooster ON ( employee.empid = timesheet.empid ) . " -En nadelen van joins < Br> Het belangrijkste voordeel van een join is het sneller uitgevoerd . De stijging prestaties kunnen niet merkbaar zijn door de eindgebruiker . Omdat de kolommen specifiek genoemd en geïndexeerd en geoptimaliseerd door de database- engine , de ophaaltijd bijna altijd sneller dan die van een subquery zijn . Er zijn ook binnenste en buitenste joins links en rechts joins volledige joins en cross joins . Een nadeel van het gebruik joins is dat ze niet zo gemakkelijk te lezen als subqueries . Een ander nadeel is dat het kan verwarrend over welke join is het juiste type join te gebruiken om de juiste gewenste resultaat set opleveren .
|