Fem tips for å unngå Access-spørsmål

Tabeller kan være grunnlaget for en database, men spørsmål er girene som får alt til å fungere. Heldigvis er de fleste spørsmål enkle å lage og krever bare litt spesialisert kunnskap. Men fordi spørsmål er så allsidige, er det lett å gjøre feil og ikke engang innse det før det er for sent. Følgende tips hjelper deg med å unngå ytelsesproblemer, vanskelige å feilsøke feil og tilfeldig tap av data.

1: Ikke bruk SELECT * datakilde

Ikke hent alle feltene i datakilden ved å bruke * -tegnet. Hvis du bruker SQL-vinduet, ikke bruk SELECT *. Hvis du bruker spørringsdesignrutenettet, ikke dra * -elementet fra feltlisten til designnettet. RELLE virker SELECT * effektivt fordi det er raskt og enkelt å skrive, men ikke la det lure deg. Ytelsen hit kommer senere når brukere må vente mens spørringen henter alle disse feltene over et travelt nettverk.

Angi bare feltene spørringen faktisk trenger for ytelsen. Bruk denne regelen på alle spørsmålene dine. Det er faktisk ikke så bra å bruke SELECT * når du vil hente alle feltene. Det er funksjoner som ikke liker *. For eksempel kan du ikke endre et SELECT * -spørsmål til en totalvisning. Med andre ord kan du ikke bruke tilslag i en SELECT * -bestemmelse. Unngå å bruke SELECT * hvis du ikke skriver et raskt, midlertidig spørsmål.

2: Unngå skrivebeskyttet spørsmål med mindre det er det du virkelig ønsker

Sjansen er stor at de fleste av spørsmålene dine tillater endringer i eksisterende data. Du kan raskt se om et spørsmål kan oppdateres. Bare åpne spørringen i databladvisning. Hvis det er en tom rad nederst på databladet, kan det oppdateres. Hvis du arbeider med et bundet skjema, sjekk navigasjonsverktøylinjen. Hvis knappen Ny post er deaktivert, er skjemaets underliggende spørsmål sannsynligvis ikke et oppdaterbart søk. (Det er ikke en absolutt, bare den mest sannsynlige konklusjonen.)

Du kan bruke følgende retningslinjer for å unngå å skrive spørsmål som ikke kan oppdateres:

  • Ikke bruk en GROUP BY-klausul.
  • Ikke bruk en TRANSFORM-klausul.
  • Ikke ta med en samlet funksjon i SELECT-leddet eller en totalvisning.
  • Ikke bruk DISTINCT-predikatet.
  • Ikke bruk UNION-operatøren.
  • Ikke legg inn en underkurs i SELECT-leddet.
  • Ikke bruk et SQL Pass-Through-spørsmål.
  • Ikke bli med på tre (eller flere) tabeller i et forhold-til-en-til-mange-forhold.
  • Ikke baser en spørring på et skrivebeskyttet bord.

3: Ikke bruk et slettespørsmål for å slette data

Et slettespørsmål sletter hele poster, ikke individuelle oppføringer, noe som kan være litt forvirrende. SQL øker forvirringen ved å tillate deg å spesifisere individuelle felt i DELETE-leddet, men den ignorerer listen. Du kan for eksempel skrive følgende DELETE-uttalelse, med hensikt å slette bare lønnsverdiene fra tabellen Ansatte:

 SLETT Ansatte. Salaris FRA Ansatte 

Dessverre ville denne spørringen resultere i en tom tabell. Spørsmålet vil advare deg om at du er i ferd med å slette poster, men la oss innse det, vi klikker ofte gjennom advarsler uten en gang å lese dem. For å slette oppføringer, bruk et oppdateringsspørsmål, ikke et slettespørsmål.

4: Ikke slett den opprinnelige datakilden når du oppretter en ny tabell

SQLs SELECT INTO-setning (Access 's Make Table query) kopierer data fra en eksisterende kilde til en ny tabell den oppretter. Denne rutinen kan føre til problemer hvis en tabell med samme navn som den nye tabellen allerede eksisterer. Jet vil slette den eksisterende tabellen med samme navn før den oppretter den nye. For eksempel vil følgende uttalelse slette den eksisterende ansatte-tabellen før den oppretter den nye:

 VELG Ansatte.ID, Ansatte.Leskenavn, Ansatte.FirstNAMN I Ansatte FRA Ansatte 

Hvis noe går galt, eller hvis du avbryter prosessen, mister du fortsatt den eksisterende tabellen for ansatte. Før du kjører en Make Table-spørring eller en SELECT INTO-setning, må du lage en kopi av den eksisterende tabellen.

5: Kjenn til ditt aggregat

Samlede funksjoner evaluerer et sett eller en gruppe poster. De grupperer og oppsummerer dataene dine. Du kan spesifisere aggregater via SQL-vinduet eller ved å bruke en totalvisning i spørringsdesignvinduet. Dessverre vurderer de ikke alle nullverdiene like. Hvis du ikke tillater denne oppførselen, kan det hende at spørsmålene dine ikke returnerer de riktige resultatene - returnerer null eller ikke, uavhengig av intensjonen din. Tabell A viser hvordan SQL-aggregatfunksjonene evaluerer null.

Tabell A

Feil data som skyldes feil evaluerte nullverdier er vanskelig å feilsøke - det er best å unngå problemet helt. Vet hvordan aggregatet du bruker evaluerer nullverdier og imøtekommer atferden i spørringen eller koden.


© Copyright 2021 | pepebotifarra.com