Komandat SQL Sheet mashtruese

Komandat SQL Sheet mashtruese


SQL është Gjuha e strukturuar e pyetjeve. Ajo u krijua posaçërisht për të menaxhuar dhe hyrë në të dhënat e mbajtura në bazën e të dhënave relacionale. Sipërmarrja e parë tregtare për të përdorur SQL ishte Oracle, e cila ende ka gjuhën e saj të pyetjes SQL * Plus, si bazën e të gjithë sistemit të tij të menaxhimit të të dhënave relacionale (RDMS).

Sot, MySQL, SQL Server, SAP dhe Sybase përdorin të gjithë SQL për qasje në bazën e të dhënave. Në këtë udhëzues, ne do t’ju japim versionin standard të komandave SQL, duke i kushtuar vëmendje të veçantë zbatimit të Oracle në SQL * Plus.

ZGJEDHJA E EDITORIT: Ne ju rekomandojmë mjetet e menaxhimit të infrastrukturës SolarWinds për të monitoruar të gjitha mjetet tuaja të Microsoft, përfshirë SQL Server. Keni nevojë për një grup shërbimesh monitorimi që mund të bashkëveprojnë në mënyrë që të mbuloni të gjitha lehtësirat që mbështesin bazën e të dhënave tuaja relacionale.

Baza e të dhënave relacionale

SQL menaxhon bazat e të dhënave relacionale. Një bazë e të dhënave relacionale përmban tabela që janë të ndara për të zvogëluar përsëritjen e të dhënave. Procesi i vendosjes për grupimet e duhura të kategorive të të dhënave quhet “normalizim.”Në disa raste, kërkesat e performancës mund të diktojnë që tabelat të funksionojnë më mirë nëse nuk normalizohen plotësisht. Ky proces quhet “denormalizim” dhe është një dukuri e rrallë.

Eachdo tabelë ka nevojë për një kolonë që identifikon në mënyrë unike secilën rresht. Ky quhet “çelesi primar.”Tabelat e tjera që mund t’i bashkohen këtij entiteti duhet të përmbajnë një referencë për çelësin kryesor në secilën rekord. Kjo referencë quhet një “çelësi i huaj.”Ju bashkohem tabelat së bashku duke përputhur çelësin e huaj në një tabelë me çelësin kryesor në një tjetër. Ky veprim kryhet me SQL. Diagrami i marrëdhënies së entitetit është një referencë e dobishme kur vendosni se si të strukturoni deklaratën tuaj SQL.

Për të shpejtuar hyrjen, është normale të vendosni një indeks në secilën çelës kryesor në bazën e të dhënave. Shtë gjithashtu e mundur që të ruhen bashkime të përdorura shpesh për të krijuar tabela virtuale, të cilat quhen “views.”

Një objekt tjetër i bazës së të dhënave është a shkrehës. Kjo është një pjesë e SQL që lëshon sa herë që një vlerë i shtohet një kolone ose ndryshohet. Një nxitës do të azhurnojë vlerat në një kolonë në një tabelë të ndryshme ose kolona të tjera në të njëjtën tabelë. Kjo ndodh nëse një vlerë shtohet ose ndryshohet në kolonën në të cilën vendoset zëri. Mund të kufizojë gjithashtu vlerat që mund të futen në një kolonë.

DQL, DDL, DCL dhe DML

SQL përfshin katër subsets komanduese. Këto janë Gjuha e pyetjeve të të dhënave (DQL), Gjuha e përshkrimit të të dhënave (DDL), Gjuha e kontrollit të të dhënave (DCL), dhe Gjuha e manipulimit të të dhënave (DML).

Në shumicën e projekteve, Administratori i bazës së të dhënave (DBA) është i vetmi anëtar i ekipit që ka privilegjet e përdorimit DDL. Ky grup i komandave krijon, ndryshon dhe lëshon tabela, indekse, shkaktues dhe pamje.

DML përdoret për të shtuar, ndryshuar ose hequr rekordet nga tabelat në bazën e të dhënave. Qasja në këto funksione SQL është e kufizuar zakonisht për personelin mbështetës ose anëtarët e vjetër, përgjegjës të komunitetit të përdoruesit.

DQL është përdorim për të gjeneruar raporte nga baza e të dhënave. Kjo nëndegë komande përdoret nga programuesit dhe gjithashtu mund të vihet në dispozicion për përdoruesit përfundimtarë në mënyrë që ata të kryejnë pyetjet e tyre.

Menaxhimi i privilegjeve të përdoruesit ruhet në të njëjtën bazë të dhënash si të dhënat. Sidoqoftë, qasja në këto tabela zakonisht është e kufizuar në DBA. Menaxhimi i aksesit të përdoruesit është implementuar përmes DCL.

Ekziston një komandë e dobishme SQL që nuk hyn në klasifikimet e DQL, DDL, DCL, ose DML. Kjo është “përshkruaj”I cili zakonisht zbatohet si DESC. Kjo tregon strukturën e një objekti në bazën e të dhënave. Në rastin e një tabelë, ajo do të tregojë një listë të kolonave dhe të dhënat dhe madhësinë e secilës. Ai do të tregojë SQL që krijoi një pamje ose një shkas dhe do të tregojë kolonat që janë të përfshira në një indeks të caktuar.

Operatorët relacionalë

Teoria pas bazës së të dhënave relacionale u përcaktua nga E. F. Codd në 1970. Brenda përkufizimit të Codd qëndron një kërkesë e një mjeti të pyetjes që duhet të zbatojë tetë operacione thelbësore të marrëdhënies. Këto janë:

  1. SELECT
  2. PROJEKTI
  3. JOIN
  4. PRODUKT
  5. UNION
  6. ndërpritet
  7. DALLIMI
  8. Divide

Ju duhet të zotëroni secilën nga këto operacione në mënyrë që të përdorni në mënyrë efektive të dhënat nga një bazë e të dhënave relacionale. Këto janë shpjeguar më poshtë.

SELECT

SELECT u thirr fillimisht RESTRICT. Theshtë aftësia për të nxjerrë një rekord ose një grup rekordesh përputhen nga një tabelë në bazën e të dhënave. Si dhe është një operacion teorik, SELECT është emri i komandës kryesore në çdo implementim të SQL. Në fakt, të gjithë marrja e të dhënave ekzekutohet me një SELECT. Komanda është aq e fuqishme sa mund të modifikohet në shumë, shumë mënyra. Shumica e SQL që ju do të duhet të mësoni janë “klauzolat” në një deklaratë SELECT.

PROJEKTI

PROJEKTI është aftësia për të izoluar një kolonë (ose “atribut”) në një tabelë. Kjo zbatohet gjithmonë me një deklaratë SELECT.

JOIN

Bëhuni lidhjet së bashku tabelat në një atribut të përbashkët. Ju përdorni tastin e huaj në një tabelë për t’u përputhur me vlerat kryesore të çelësit në një tabelë tjetër. Akti bashkon në mënyrë efektive dy tabela përkohësisht. Kjo zbatohet si klauzolë në një deklaratë SELECT. Një bashkim midis dy tabelave automatikisht do të braktisë çdo regjistrim që nuk figuron në të dyja tabelat mbështetëse. Një “bashkimi i jashtëm“Do të shfaq rekordet që nuk kanë një ndeshje në tabelën tjetër, duke lënë fushat që duhej të ishin furnizuar nga tabela tjetër, e lënë bosh.

PRODUKT

PRODUKTI njihet edhe si “kohët.”Kjo është implementuar si një deklaratë SELECT që tërheq të dhënat nga dy tabela, por nuk përcakton lidhjen midis tyre. Në jetën reale, ka shumë pak arsye praktike pse dikush do të kryejë ndonjëherë një herë në dy tavolina. Zakonisht është një shenjë paralajmëruese që e keni shkruar një klauzolë PINRBASHK keq. Rezultati i një PRODUKTI është se çdo rekord kualifikues në një tabelë përputhet me çdo rekord kualifikues në tabelën tjetër. Pra, nëse krijoni një deklaratë SELECT nga dy tabela, secila prej të cilave ka dhjetë rekorde, rezultatet do të jenë gjithsej 100 rekorde.

UNION

BASHKIMI është një operator i zakonshëm në teorinë e vendosur. Nëse keni dy grupe, sindikata kombinon të gjithë anëtarët e të dy grupeve. Dublikimi hiqet nga rezultatet. Në SQL, kjo zbatohet nga OR Operatori Boolean.

ndërpritet

INTERSECT është operatori tjetër kryesor i teorisë së setit. Nëse keni dy grupe, kryqëzimi përshkruan ato lëndë që janë anëtare të të dy grupeve. Subjectdo subjekt që është anëtar i vetëm një prej dy grupeve është i përjashtuar nga rezultatet. Në SQL, kjo zbatohet nga DHE Operatori Boolean.

DALLIMI

Diferenca njihet edhe si “minus“Dhe në shënim përfaqësohet nga shenja minus (” – “). Ekzistojnë disa mënyra për të zbatuar një Dallim. Mund të krijohet duke përfshirë një Boolean NUK në kriteret e përzgjedhjes dhe mund të zbatohet gjithashtu nga a MINUS operatori i ndjekur nga një nënshkrim.

Divide

DIVIDA është një operacion i pazakontë që, si PRODUCT, ka shumë pak aplikime praktike. Codd e konsideronte DIVID asS si testin e acidit të çdo sistemi relacional dhe mjetin e tij të pyetjes, kështu që çdo implementim i SQL përfshin këtë aftësi vetëm për t’u kualifikuar për titullin “relacional”. Në realitet, nuk do ta përdorni kurrë. Zbatimi i një DIVIDI kërkon një seri subqueries që ushqehen në një MINUS në Oracle SQL * Plus dhe një PËRVEÇ operator në disa zbatime të tjera SQL, të tilla si SQL Server dhe PostgreSQL.

Operatorët Boolean

George Boole ishte një matematikan britanik që vdiq në 1864. Ai shpiku algjebër Boolean, e cila nuk kishte asnjë aplikim praktik derisa fushat e Informatikës dhe bazës së të dhënave relacionale u shfaqën në fund të shekullit të 20-të. Algjebra Boolean është thelbësore për operacionet e SQL – ju mund të shkruani vetëm pyetjen më themelore të SQL pa përdorur logjikën Boolean. Logjika Boolean gjithashtu mbështet të gjithë motorët e kërkimit. Operatorët kryesorë Boolean në SQL janë:

  • DHE
  • OR
  • NUK

Një tjetër britanik i çuditshëm Victorian që ju duhet të dini rreth është Augustus de Morgan. Ai erdhi me një vëzhgim mbi transformimin në teorinë e setit Boolean, për të cilin çdo programues i SQL duhet të jetë i vetëdijshëm. Kjo është se NUK mund të ndryshojë sesi funksionon një AND dhe një OSE. Versioni i shkurtër është se duhet të keni kujdes sesi përdorni kllapa në deklaratat tuaja për të shmangur pasojat e padëshiruara. Pra, “dhe” dhe “ose” gjithashtu duhet të konsiderohen si operatorë të rëndësishëm Boolean në SQL.

DHE

DHE zbaton ndërpritet në teorinë e vendosur. Nëse doni të tërhiqni të dhënat nga një bazë e të dhënave që përputhet vetëm me dy kërkesa dhe jo vetëm një nga ato kritere të përbëra, atëherë duhet të përdorni një AND. Për shembull, ju mund të drejtoni një biznes farërash dhe baza e të dhënave tuaja përmban një tabelë që ruan të gjitha farat tuaja me atributet e tyre. Një klient telefonon dhe kërkon vetëm begonias të verdha. Pra, ju do të kërkoni për bazën e të dhënave tuaja speciet = “begonia” DHE ngjyra = “e verdha” për të marrë katalogun e duhur të farërave.

OR

OSE ju jep të gjithë anëtarëve të dy grupeve – është BASHKIMI në teorinë e grupeve. Pra, në bazën e të dhënave tuaj të farave, nëse keni ekzekutuar një pyetje: speciet = “begonia” OSE ngjyra = “e verdha”, do të merrnit rezultate që përfshinin trëndafila të verdhë, begoni të verdhë, begonias rozë dhe dafina të verdha. Në këtë shembull, begonias të verdhë kualifikohen dy herë. Në teorinë relacionale, vetëm një procesverbal duhet të kthehet. Për fat të mirë, SQL përfshin kualifikuesin dallueshme, pra duke hyrë ZGJIDHJA E ZGJEDHJE * NGA lulet KU specie = “begonia” OSE ngjyra = “e verdha”, ai rekord i verdhë begonia do të shfaqej vetëm një herë.

NUK

NUK është e lehtë për tu kuptuar. Përjashton rezultatet që deklarata e mëposhtme do të prodhonte: DHE NUK, OSE. Në praktikë, pothuajse kurrë nuk do të përdorni “OSE” në një pyetje. Nëse klienti juaj i farës dëshironte ndonjë ngjyrë të begonia tjetër përveç asaj të verdhë, do të përdorni specie = “begonia” DHE Ngjyra = “e verdhë” për të zgjedhur produkte për të ofruar.

kllapa

Sipas Ligjit të De Morgan:

“Shfrytëzimi i mosmarrëveshjes është bashkimi i negociatave; dhe mohimi i një lidhjeje është shkëputja e negociatave “.

Në anglisht të thjeshtë, përdorni kllapa me kujdes në deklaratën tuaj SQL kur përfshini gjithashtu një JO për të parandaluar që AND-të tuaj të shndërrohen në OR dhe anasjelltas. Kushtet e bracketingut gjithashtu mund të shkurtojnë kriteret tuaja të zgjedhjes. Për shembull, JO (speciet = “begonia” DHE ngjyra = “e verdhë”) është njësoj si JO speciet = “begonia” OSE NUK ngjyra = “e verdha”.

Ekstraktimi i regjistrave

Implementime të ndryshme të SQL përdorin sintaksë të ndryshme, por në këtë udhëzues, ne do të ndjekim SQL * Plus të Oracle. Struktura themelore e një seleksionimi të të dhënave SQL është:

SELECT
NGA

KU

Kjo do t’ju japë një listë vlerash nga një kolonë në një tabelë. Kjo është PROJEKTI operacioni relacional i përcaktuar nga Codd.

Mund të shtoni kolona në SELECT ose të përdorni operatorin e kartave të egra (“*“) Për të marrë të gjitha kolonat në tabelë:

SELECT *
NGA

KU

Ky është kodi SELECT operacion relacional. Pa KU klauzola, ju do të merrni çdo rekord në tabelë.

Shumë kolona ndahen me presje (“,“):

SELECT kolona1, kolona2, kolona7
NGA

KU

KU klauzola zgjedh rekorde specifike. Ky është qëllimi më i rëndësishëm i operatorëve Boolean:

SELECT farë_num, farë_desc
NGA farat
KU specie = “begonia” DHE ngjyra = “e verdhë”

Do të vini re në këto shembuj që nuk vendosni thonjëza rreth emrave të kolonave, por vendosni thonjëza rreth vlerave të kolonës. Nëse harroni të vendosni thonjëza rreth vlerave, DBMS do të presë që fjalët të jenë emrat e kolonave. Pra, në pyetjen e mësipërme, pa thonjëza, do të merrni një gabim duke ju thënë se nuk ka begoni dhe kolona të verdha në tabelë.

Tabelat e bashkimit

Puna kryesore në pyetjet SQL qëndron në bashkimin e tabelave së bashku. Ka shumë hile që mund t’i kryeni me kërkime, por nëse e merrni bashkimin gabim, pyetja juaj do të kthejë gjithmonë rezultate të pasakta.

Udhëzuesi juaj më i mirë për një bashkim është Diagrami i marrëdhënieve të entitetit. Gjithçka që ju nevojitet për të krijuar një bashkim është të përfshijë më shumë se një tabelë në NGA klauzola e SELECT dhe sigurohuni që të specifikoni kolonat lidhëse në KU klauzolë. Jini të vetëdijshëm që disa tabela mund të përdorin të njëjtët emra kolonë. Për të shmangur konfuzionin, është më mirë të jepni secilën tabelë në një bashkim a pseudonim në mënyrë që të mund të identifikoni burimin e kolonave që ju referoheni në deklaratën SELECT:

SELECT a.seed_num, a.seed_desc, b.supplier_name
NGA farat a, furnitorët b
KU AE speciet = “begonia” DHE a.color = “e verdhë”
DHE b.supplier_ID = a.supplier_ID

Në shembullin e mësipërm, supplier_ID është çelësi kryesor në tabelën e furnitorëve dhe një fushë me të njëjtin emër është çelësi i huaj në tabelën e farave që lidhet me rekordin e duhur në tabelën e furnitorëve.

Edhe pse është teknikisht e mundur të përdorni një OSE për bashkim, është më e zakonshme të përdorni një AND. Përdorni OR-të vetëm për kriteret e përzgjedhjes dhe jo për krijimin e bashkimit.

subqueries

Ju mund të përdorni një SELECT deklarata si burim i të dhënave për kryesore SELECT dhe gjithashtu mund të bashkoheni në disa SELECT deklarata së bashku me operatorët, si psh MINUS. Këto raste të pyetjeve shtesë që shërbejnë një deklaratë kryesore SELECT quhen “subqueries.”Kur krijoni një subquery, fjalen mund të jetë shumë e dobishme.

Për shembull, nëse dëshironi të merrni begonias të verdhë nga furnitorët në BE, mund të krijoni një listë vlerash me siç janë:

SELECT a.seed_num, a.seed_desc, b.supplier_name
NGA farat a, furnitorët b
KU AE speciet = “begonia” DHE a.color = “e verdhë”
DHE b.supplier_ID = a.supplier_ID
DHE b.supplier_country IN (“Mbretëria e Bashkuar”, “Franca”, “Gjermania” …)

Kjo listë e të gjitha vendeve në BE do të shtrihet në 28 vlera dhe ju do të duhet të shkruani në të gjitha ato – “…” në shembull është vetëm për shkurtësi. Në këtë shembull, ju do të duhet të rishikoni të gjitha pyetjet tuaja dhe të ndryshoni atë listë vlerash sa herë që një vend anëtarësohej ose dilte nga BE. Shtë më efikase të krijoni një tabelë të vendeve të BE-së dhe t’i referoheni asaj. Atëherë duhet të shtoni ose fshini rekorde në një tabelë pasi përbërja e BE ndryshon.

Në këtë skenar do të krijonit një tabelë të quajtur EU_countries me një fushë country_ID si çelësin kryesor dhe kolonën e vendit_name. Atëherë ju mund të krijoni një subquery për të krijuar atë listë të vendeve të BE-së:

SELECT a.seed_num, a.seed_desc, b.supplier_name
NGA farat a, furnitorët b
KU AE speciet = “begonia” DHE a.color = “e verdhë”
DHE b.supplier_ID = a.supplier_ID
DHE b.supplier_country IN (SELECT country_name nga BE_countries)

Shtë e mundur të krijoni një seri pyetjesh të fole dhe disa funksione SQL kërkojnë të paktën dy deklarata SELECT. Për shembull, nëse dëshironi të merrni furnitorë jo të BE-së për farëra, mund të përdorni një MINUS:

SELECT a.seed_num, a.seed_desc, b.supplier_name
NGA farat a, furnitorët b
KU AE speciet = “begonia” DHE a.color = “e verdhë”
DHE b.supplier_ID = a.supplier_ID
MINUS
SELECT c.seed_num, c.seed_desc, d.supplier_name
NGA farat c, furnitorët d, EU_countries e
WHERE d.supplier_country_ID = e.country_ID
DHE b.supplier_ID = a.supplier_ID

Në shembullin e mësipërm, pyetja e dytë do të sjellë përsëri më shumë rekorde sesa e para. Sidoqoftë, asnjë nga rezultatet nga ajo pyetje nuk do të shfaqet në dalje. Resultsdo rezultat në pyetjen kryesore që përputhet me rezultatet e pyetjes së dytë do të hiqet nga lista e rezultateve.

GRUPI NGA

Ju mund të merrni SQL për të grumbulluar të dhëna për ju gjatë përpunimit të një pyetjeje. GRUPI NGA klauzola ju lejon të llogaritni statistikat për grupet e regjistrave. Për shembull:

SELECT speciet lule, numëroni (1) raste
NGA farat
GRUPI NGA speciet

Në këtë shembull mund të shihni një funksion, COUNT. Kjo kërkon një kolonë si një parametër, por thjesht mund t’i jepni një shenjë në vend të kësaj, në këtë rast, 1.  Ky shembull tregon gjithashtu se ju mund të jepni emrat e kolonave emërtime. Nuk ka komë midis specieve dhe luleve në rreshtin e parë të SELECT. DBMS do të interpretojë këtë fjalë të dytë të jetë emri i kolonës për tu shfaqur në dalje. Në disa zbatime të SQL, ai alias duhet të jetë në thonjëza dhe në të tjerët duhet të tregohet nga fjalen AS:

ZGJEDHNI speciet SI “lule”, llogaritni (1) SI “raste”
NGA farat
GRUPI NGA speciet

Vendosja e një emri domethënës në një kolonë është veçanërisht e rëndësishme nëse përdorni funksione në pyetjen tuaj.

Pyetja e mësipërme do t’ju japë një listë të veçantë të emrave të specieve nga tabela e farave dhe do të japë një numër të të gjitha regjistrave në tabelë që kanë secilën vlerë.

URDHËR NGA

Ju mund të specifikoni sekuencën e rezultateve me një URDHËR NGA klauzolë. Kjo do të tregojë vlerat në rendin në ngritje si parazgjedhje, por gjithashtu mund të specifikoni të tregoni rekordet në rend zbritës.

ZGJIDHN L speciesND speciesS speciet
NGA farat
RRETH NGA speciet DESC

Nëse keni disa kolona në daljen tuaj, ju mund të emëroni ndonjë prej tyre që është fusha e porositjes. Në shumicën e zbatimeve të SQL, nuk është e nevojshme të shkruani emrin e kolonës në klauzolën ORDER BY, por thjesht numrin e pozicionit të kolonës, si p.sh. RRETH NGA 2 kur dëshironi që kolona e dytë në dalje të diktojë rendin e ekranit.

Në këtë shembull ju shihni dallueshme opsion në një SELECT, i cili ka të njëjtin efekt si a GRUPI NGA. Sidoqoftë, nëse shtoni funksione grumbulluese në një SELECT, do të duhet të përdorni GRUPI NGA në vend të dallueshme.

Funksionet SQL

Tashmë ju keni parë funksionin COUNT. Ka shumë funksione të tjera të disponueshme në të gjitha zbatimet e SQL. Këto nuk janë, me fjalë të rrepta SQL, por shërbime shtesë të shtuara nga krijuesi i versionit SQL. Funksionet statistikore, si mesatarja, shuma, max dhe min janë të zakonshme për të gjitha shijet e SQL.

Mekanizmat e kontrollit të rrjedhës, të cilat si IFs dhe DERISA sythe nuk ekzistojnë në SQL. Sidoqoftë, përzgjedhja e kushtëzuar mund të zbatohet përmes një sërë funksionesh.

Shefi i mashtrimeve të Krahasuar SQL

Ekziston një listë e gjatë e opsioneve që mund të vendosni në një deklaratë SELECT. Ky udhëzues i shkurtër ka mbuluar vetëm strukturën themelore të deklaratës SELECT, e cila është mjeti kryesor i SQL Gjuha e pyetjeve të të dhënave. Ju mund të shihni një listë gjithëpërfshirëse në Compateritech MySQL Cheat Sheet (PDF). Kjo fletë përfshin gjithashtu komandat standarde të përdorura për gjuhën e përshkrimit të të dhënave të SQL, gjuhën e kontrollit të të dhënave dhe gjuhën e manipulimit të të dhënave.

Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map