De essensielle egenskapene til SELECT-setning er Selection, projeksjon og delta. Viser bestemte kolonner fra en tabell som er kjent som et prosjekt operasjon. Vi vil nå fokusere på å vise spesifikke rader med utgang. Dette er kjent som en valgprosedyren. Bestemte rader kan velges ved å legge til et WHERE-ledd til en SELECT spørring. Som et spørsmål om faktum, vises WHERE-leddet like etter FROM-leddet i SELECT spørring hierarki. Sekvensen må opprettholdes i alle situasjoner. Hvis krenket, hever Oracle et unntak
Syntax:
SELECT * | {[DISTINCT] kolonne |. uttrykk [alias], ..} FROM tabell [WHERE betingelse (r)]
I syntaks, etter
WHERE klausulen er nøkkelordet
[betingelse] inneholder kolonnenavn, uttrykk, konstanter, litteraler og en sammenligning operatør.
Tenk deg at din leder jobber med den kvartalsvise budsjett for organisasjonen. Som en del av denne aktiviteten, er det nødvendig å gi en oversikt over hver enkelt ansattes viktige detaljer, men bare for ansatte som er betalt minst $ 25 000 årlig. SQL-spørringen under oppnår denne oppgaven. Legg merke til bruken av WHERE-leddet vist i fet skrift.
Velg ansatt_nr, LAST_NAME, First_Name, SalaryFROM employeesWHERE Lønn> = 25000; Ansatt_nr LAST_NAME FIRST_NAME LØNN ---------- --------------- --------------- ------ ----- 88303 Jones Quincey $ 30,550.0088404 Barlow William $ 27,500.0088505 Smith Susan $ 32,500.003 rader utvalgte
Punkter å bli lagt merke til -
En SELECT-leddet kan bare inneholde ett WHERE klausulen. Imidlertid kan flere filterbetingelsene legges til WHERE klausulen bruke AND eller OR operatør.
De søyler, litteraler eller uttrykk i en predikatleddet må være av lignende eller innbyrdes omdannbare datatyper.
Kolonne alias kan ikke brukes i WHERE-leddet.
Character konstanter må vedlegges innenfor anførselstegnene og små bokstaver.
Dato litteraler må vedlegges innenfor anførselstegnene og er format sensitive. Standardformatet er DD-Man-RR
.
Sammenligning Operatører
Sammenligningsoperatorer brukes i predikater å sammenligne ett semester eller operand med et annet begrep . SQL tilbyr omfattende sett av likhet, ulikhet og diverse operatører. De kan brukes avhengig av data og filter tilstand logikk i SELECT spørring. Når du bruker sammenligningsoperatorer i en WHERE klausulen, må argumentene (gjenstander eller verdier du sammenligner) på begge sider av operatøren enten et kolonnenavn, eller en bestemt verdi være. Hvis en bestemt verdi benyttes, da verdien må være enten en numerisk verdi eller en streng. Hvis verdien er en tegnstreng eller dato, må du angi verdien i anførselstegn ('').
Oracle har ni sammenligning operatører som skal brukes i likestillings eller ulikhetsforhold. mellom operatør kan brukes til å sammenligne verdien en kolonne i et bestemt område. Det angitte området må ha en nedre og øvre grense hvor begge er inkluderende i sammenligning. Bruken er lik kompositt ulikhet operator (<= og> =). Den kan brukes med numeriske, karakter og dato type verdier. For eksempel WHERE betingelse lønn mellom 1500 AND 2500 I operatør brukes til å teste verdien en kolonne i et gitt sett av verdi. Hvis kolonnen kan likestilles med en hvilken som helst av verdiene fra det gitte sett, er tilstanden validert. Tilstanden defineres ved hjelp av IN operatøren er også kjent som medlemskapet tilstand. For eksempel WHERE betingelse lønn i (1500, 3000, 2500) SOM operatør brukes for mønstergjenkjenning og jokertegnsøk i en SELECT spørring. Hvis en del verdi av kolonnen er ukjent, kan wildcard brukes til å erstatte det ukjente delen. Den bruker joker operatører å bygge opp søkestrengen, og dermed søk er kjent som Wildcard søk. Disse to operatører er Percentile ('%') og understrek ('_'). Strek ('_') erstatter ett enkelt tegn mens persentil ('%') erstatter mer enn ett tegn. De kan brukes i kombinasjon også. For eksempel viser under SELECT spørringen de første navnene på de ansatte med etternavn som begynner på 'SA ". For å bli lagt merke til, kan NULL verdier ikke testes med likestilling operatør. Det er fordi NULL verdier er ukjente og ledig mens likestilling operatør tester for en bestemt verdi. IS NULL operatør fungerer som likestilling operatøren å kontrollere NULL verdier av en kolonne. For eksempel COMMISSION_PCT IS WHERE betingelse NULL flere filter forholdene kan legges til WHERE klausulen predikat. Mer enn én betingelse kan kombineres sammen ved hjelp av logiske operatorene AND, OR og NOT Og:. Blir to eller flere forhold, og returnerer resultater bare når alle forhold er til stede SV: blir to eller flere forhold, og det gir resultater når noen av betingelsene er oppfylt IKKE:.. benekter uttrykket som følger det AND-operatoren knytter to eller flere betingelser i et WHERE-ledd og returnerer SANN hvis alle vilkårene er oppfylt. Anta at en leder trenger en liste over kvinnelige ansatte. Videre bør listen kun omfatter ansatte med etternavn som begynner med bokstaven "E" eller som kommer senere i alfabetet. I tillegg bør resultattabellen skal sorteres etter ansatt etternavn. Det er to enkle vilkår som må oppfylles. WHERE-leddet kan skrives som: WHERE Kjønn = 'F' OG last_name> 'E' eller operatør linker mer enn én tilstand i et WHERE-ledd og returnerer SANN hvis et av tilstanden returnerer true. Anta at organisasjons lederens krav endre litt. En annen ansatt oversikt er nødvendig, men i denne liste opp de ansatte skal: (1) være kvinne, eller (2) har et etternavn som begynner med bokstaven "T" eller et brev som kommer senere i alfabetet. Resultattabellen skal være sortert etter ansatt etternavn. I denne situasjonen er en av de to betingelser kan oppfylles for å tilfredsstille spørringen. Kvinnelige ansatte skal være oppført sammen med de ansatte å ha et navn som tilfredsstiller den andre betingelsen. NOT-operatoren brukes for å oppheve et uttrykk eller conition. Når du viser bare noen få rader med data, kan det være unødvendig å sortere utgang; men når du viser mange rader, ledere kan bli hjulpet i beslutningsprosesser ved å ha informasjon sortert. Utgang fra en SELECT-setning kan sorteres ved å bruke den valgfrie ORDER BY-leddet. Når du bruker ORDER BY-leddet, må kolonnenavnet der du bestiller også være et kolonnenavn som er angitt i SELECT-leddet. under SQL-spørring bruker en ORDER BY-ledd for å sortere resultattabellen ved last_name kolonnen i stigende rekkefølge. Stigende rekkefølge er standard sorteringsrekkefølge Sorting kan være basert på numeriske og datoverdier også. Sortering kan også gjøres på grunnlag av flere kolonner. Som standard vil ORDER BY-leddet sortere utgangs rader i resultattabellen i stigende rekkefølge. Vi kan bruke søkeordet DESC (forkortelse for synkende) for å aktivere synkende slag. Alternativet Standard er ASC som sorterer i stigende rekkefølge, men ASC nøkkelordet er sjelden brukt siden det er standard. Når ASC eller DESC valgfritt nøkkelordet brukes, må det kolonnenavnet der du sorterer i WHERE-leddet følge. Posisjons Sortering Z - Numerisk posisjon av kolonnen listen valgt kolonne i kan gis i ORDER BY-leddet, i stedet for kolonnenavn. Det er hovedsakelig brukt i UNION spørringer (omtalt senere). Spørre beordrer resultatet satt av lønn siden det vises andre kolonnelisten i Når en SQL-spørring har å bli henrettet mer enn en gang for det annet sett av innganger, kan erstatningsvariabler brukes. Erstatningsvariabler kan brukes til å be om bruker innganger før spørringen kjøres. De er mye brukt i spørring basert rapport generasjon som tar dataområde fra brukerne som innspill til betinget filtrering og dataskjermen. Erstatningsvariabler innledes av en enkelt-tegn (&) symbol for å midlertidig lagre verdier. For eksempel, etter SELECT ansatt_nr, LAST_NAME, SALARYFROM employeesWHERE LAST_NAME = &last_nameOR ansatt_nr = &EMPNO; Når ovenfor SELECT spørringen utføres, identifiserer '&' som erstatningsvariabel orakel. Det ber brukeren om å angi verdien for 'last_name' og 'EMPNO' som under Når brukeren gir input til begge variablene, er verdiene erstattet, er søket bekreftet og henrettet Hvis variabelen er ment å erstatte et tegn eller dato verdi, bokstavelig behov for å bli i enkle anførselstegn. En nyttig teknikk er å omslutte tegnet erstatningsvariabelen i enkle anførselstegn når du arbeider med karakter og datoverdier. Både SQL Developer og SQL * Plus støtter erstatningsvariabler og Definer /unde kommandoer . Selv om SQL Developer eller SQL * Plus støtter ikke valideringskontroller (unntatt for datatype) på brukerundersøkelser. Du kan bruke erstatningsvariabler ikke bare i WHERE-leddet i en SQL-setning , men også som erstatning for kolonnenavn, uttrykk eller tekst. Når det samme erstatningsvariabelen brukes på mer enn ett sted, så for å unngå å skrive inn de samme dataene på nytt, vi dobbel tegnet substitusjon bruke. I slike tilfeller kan verdien av substitusjons variable, når angitt, ville være substituert ved alle tidspunkter bruk. Legg merke til at den samme verdien av &DT er byttet to ganger i ovennevnte spørringen. Så, vil verdien gang gitt av brukeren erstattes på to steder. Innstilling definisjonen av variablene i en sesjon er satt av DEFINE funksjon i SQL * Plus . Variablene kan defineres i økten, slik at man unngår stans under kjøring søket. Oracle leser den samme variabelen når påtruffet i en SQL-spørring. Det er i ON tilstand som standard. Med hjelp av DEFINE klausulen, kan man deklarere en variabel i kommandolinjen før spørringen kjøres som Definer variabel = verdi;. Bekreft kommandoen verifiserer ovenfor substitusjon viser så gamle og nye statement. Det er AV som standard, og kan settes til ON SET-kommandoen bruker
Operatør
Betydning
= lik
The mellom operatør
i en SELECT spørring vil liste de ansatte som lønn er mellom 1500 og 2500.
IN Operator
i en SELECT spørring vil begrense radene hvor lønnen er enten på 1500, 3000 eller 2500.
lignende Operator
SELECT first_nameFROM employeesWHERE last_name LIKE 'SA%';
IS (NOT) NULL betingelser
i en SELECT spørring vil liste ansatte som ikke har provisjon prosent.
logiske operatører
<. br>
VELG last_name "etternavn", FIRST_NAME "fornavn", Gender "Gender" FRA employeesWHERE Kjønn = 'F' OG last_name. > 'E'ORDER BY last_name;
ORDER BY-leddet
SELECT last_name, first_nameFROM employeesWHERE last_name> = 'J'ORDER BY last_name;. Last_name FIRST_NAME --------------- ------- -------- Jones QuinceyKlepper RobertQuattromani ToniSchultheis Robert
SELECT FIRST_NAME, salaryFROM employeesORDER BY 2;.
erstatningsvariabler
Oppgi verdien for last_name. Oppgi verdien for empno:
Poeng å bli lagt merke til -.
Bruke Dobbeltampersand Innbytte Variabel
Velg FIRST_NAME, HIRE_DATE, SEPARATION_DATEFROM employeesWHERE HIRE_DATE LIKE '% &DT%' AND SEPARATION_DATE '% &&DT%'
Define og kontroller kommandoer
SQL> SET DEFINE ONSQL> sett BEKREFTE ONSQL> Definer NAME = MARTIN'SQL> SELECT FIRST_NAME, lønn fra employeesWHERE FIRST_NAME = '&NAME'; OLD en.: Velg FIRST_NAME, sal fra ansatt der FIRST_NAME = '&first_name'new 1: velg FIRST_NAME, sal fra ansatt der FIRST_NAME =' MARTIN'first_name LØNN ------- ------- MARTIN 5000