SQL programmeerimiskeel. Mis on "kasutaja"? Muud piirangud – UNIQUE, DEFAULT, CHECK

Selles peatükis...

  • Mis on SQL
  • SQL-i väärarusaamad
  • Vaata erinevad standardid SQL
  • Tutvumine standardsed käsud Ja reserveeritud sõnad SQL
  • Esitavad numbreid, sümboleid, kuupäevi, kellaaegu ja muid andmetüüpe
  • Määratlemata väärtused ja piirangud
  • SQL-i kasutamine kliendi/serveri süsteemis
  • SQL veebis

SQL on paindlik keel, mida saavad kasutada enamik erinevaid viise. See on kõige levinum tööriist relatsiooniandmebaasiga suhtlemiseks. Selles peatükis selgitan, mis on SQL ja mis see ei ole, täpsemalt kuidas SQL erineb arvutikeeled muud tüübid. Seejärel saate tuttavaks käskude ja andmetüüpidega, mida standardne SQL toetab. Lisaks selgitan põhimõisteid nagu määratlemata väärtused Ja piiranguid. Lõpetuseks antakse ülevaade, kuidas SQL sobitub kliendi/serveri keskkonda, aga ka organisatsioonide Internetti ja sisevõrku.

Mis on SQL ja mis see ei ole

Esimene asi, mida SQL-i puhul mõista, on see, et see ei ole a protseduuriline nagu FORTRAN, Basic, C, COBOL, Pascal ja Java. Probleemi lahendamiseks ühe neist protseduurikeeltest peate kirjutama protseduuri, mis sooritab üksteise järel määratud toiminguid kuni ülesande täitmiseni. Protseduur võib olla lineaarne jada või sisaldada hargnemist, kuid mõlemal juhul määrab programmeerija täitmise järjekorra.

Teisisõnu, SQL on mitteprotseduuriline keel. Selle probleemi lahendamiseks kasutamiseks öelge SQL-ile, Mida täpselt sa vajad seda nii, nagu räägiksid džinniga Aladdini lambist. Ja samal ajal pole vaja öelda, kuidas saad mida sa tahad. Andmebaasi haldussüsteem (DBMS) otsustab, kuidas teie taotlust kõige paremini täita.

Hästi. Ütlesin just, et SQL ei ole protseduurikeel. Sisuliselt on see tõsi. Miljonid programmeerijad (ja teie võite olla üks neist) on aga harjunud probleeme lahendama protseduuriliselt, nii et viimased aastad SQL-i protseduuriliste võimaluste lisamiseks oli palju survet. Seega nüüd kaasatud uus versioon SQL-i spetsifikatsioonis SQL:2003 on olemas protseduurilised keeletööriistad, nagu BEGIN-plokid, tingimuslikud väited IF, funktsioonid ja protseduurid. Nende uute tööriistade abil saab programme serverisse salvestada, et paljud kasutajad saaksid neid uuesti kasutada.

Et illustreerida, mida ma mõtlesin, kui ütlesin "ütle süsteemile täpselt, mida vajate", oletame, et teil on töötajate andmetega tabel TÖÖTAJAD ja soovite sealt valida kõik read, mis vastavad kõigile "vanematele" töötajatele. Vanemtöötajateks võib pidada kõiki üle 40-aastaseid või üle 60 000 dollari aastas teenivaid töötajaid. Vajaliku valiku saab teha järgmise päringu abil:

VALI * TÖÖTAJALT, KES VANUS >40 VÕI PALK >60000;

See lause valib tabelist TÖÖTAJA kõik read, milles veeru VANUS (vanus) väärtus on suurem kui 40 või PALG (palk) veeru väärtus suurem kui 60000. SQL ise teab, kuidas infot valida. Andmebaasi mootor kontrollib andmebaasi ja otsustab ise, kuidas päring tuleb täita. Peate vaid märkima, milliseid andmeid vajate.

Pidage meeles:
Päring on küsimus, mille esitate andmebaasile. Kui mõni selle andmetest vastab teie päringu tingimustele, edastab SQL selle teile
.

Kaasaegsetes SQL-i rakendustes puuduvad paljud lihtsad programmeerimiskonstruktsioonid, mis on enamiku teiste keelte jaoks olulised. Taotlustes jaoks Igapäevane elu tavaliselt on vähemalt osa neist konstruktsioonidest nõutavad, nii et SQL on tegelikult vajalik allkeel andmeid. Isegi koos SQL-i standardiga koos SQL-is ilmunud täiendustega: 1999 ja täiendavad laiendused SQL:2003 lisatud, peate siiski kasutama koos SQL-iga üht järgmistest, et luua terviklik rakendus. programmi keeled, nagu S.

Saate andmebaasist teavet valida ühel järgmistest viisidest.

  • Ühekordse mitteprogrammeeritava päringu kasutamine arvutikonsoolist, SQL-käsu sisestamine ja selle täitmise tulemuste lugemine ekraanilt. Konsool on traditsiooniline termin, mis tähendab arvutiseadmed, mis täidab tänapäevastes arvutites kasutatava klaviatuuri ja ekraani tööd. Konsoolipäringud on kasulikud, kui vajate konkreetsele päringule kiiret vastust. Mõne praeguse vajaduse rahuldamiseks võite vajada andmebaasist andmeid, mida pole kunagi varem vajatud. Te ei pruugi neid enam kunagi vajada, kuid vajate neid nüüd. Sisesta klaviatuurilt sobiv SQL-päring ja mõne aja pärast ilmub tulemus sinu ekraanile.
  • Programmi kasutamine, mis otsib andmebaasist teavet ja loob seejärel nende andmete põhjal aruande, mis kuvatakse ekraanil või prinditakse. SQL-i saab ka sel viisil kasutada. Raske SQL päring, millest võib tulevikus veel kasu olla, saab paigutada otse programmi. See võimaldab teil seda tulevikus uuesti kasutada. Seega täidetakse päringu formuleering üks kord. Peatükk 15 käsitleb SQL-koodi sisestamist teises keeles kirjutatud programmidesse.

Iga SQL-käsk algab märksõnaga, tegusõnaga, mis kirjeldab käsu sooritatavat toimingut, näiteks CREATE. Meeskonnal võib olla üks või mitu lauset. Lause kirjeldab andmeid, millega käsk töötab, või sisaldab täpsustavat teavet käsu sooritatava toimingu kohta. Iga klausel algab märksõnaga, näiteks WHERE Mõned käsulaused on kohustuslikud, teised mitte. Mõned laused võivad sisaldada täiendavaid märksõnu ja väljendeid. Paljud laused sisaldavad tabelite või väljade nimesid. Nimed peavad olema 1–18 tähemärgi pikkused, algama tähega, ei tohi sisaldada tühikuid ja Erisümbolid kirjavahemärgid. Märksõnu ei saa nimedena kasutada.

52. SQL (struktureeritud päringu keel) – Struktureeritud keel Taotlused- See standardkeel taotlused töötamiseks relatsioonilised andmebaasid andmeid.

SQL ei sisalda traditsioonilised operaatorid, mis kontrollib programmide täitmist, sisaldab ainult komplekti standardsed operaatorid juurdepääs andmebaasis salvestatud andmetele.

SQL-i saab kasutada andmebaasile juurdepääsuks kahes režiimis: interaktiivne töö ja sisse rakendusprogrammid .

Kasutades SQL kasutaja võib-olla sisse interaktiivne režiim saada kiiresti vastused kõigile, sealhulgas üsna keerukatele päringutele, samas kui nende päringute realiseerimiseks teises keeles oleks vaja välja töötada vastav programm. Teatud programmeerimiskeeltes kirjutatud rakendusprogrammid kasutavad SQL-i kui sisseehitatud andmebaasi juurdepääsu keel.

SQL-keelt tervikuna iseloomustades võime esile tõsta järgmisi funktsioone:

· kõrgetasemeline struktuur, meenutab inglise keel;

· sõltumatus konkreetsest DBMS-ist;

· arendusstandardite kättesaadavus;

· võimalus sooritada interaktiivseid päringuid andmete hankimiseks ja nende struktuuri muutmiseks;

· säte tarkvara juurdepääs andmebaasidesse;

· kliendi/serveri arhitektuuri tugi;

· objektorienteeritud tehnoloogiate laiendatavus ja tugi;



· juurdepääs andmetele Internetis.

SQL-keele põhifunktsioonid:

SQL – interaktiivne päringukeel. Kasutajad sisenevad SQL-käsud interaktiivselt andmete hankimiseks ja nende kuvamiseks ekraanil, samuti andmebaasis muudatuste tegemiseks;

SQL – andmebaasi programmeerimiskeel. Andmebaasi pääsemiseks sisestatakse rakendusprogrammidesse SQL-käsud;

SQL – andmebaasi halduskeel. Andmebaasi administraator saab kasutada SQL-i andmebaasi struktuuri määratlemiseks ja andmetele juurdepääsu kontrollimiseks;

SQL – kliendi/serveri rakenduse keel. Rakendatud SQL programmid kasutatakse suhtluse korraldamise vahendina kohalik võrk andmebaasiserveriga, mis salvestab jagatud andmeid jne.

55. Keeleoskus SQL-keel, mis vastab uusimatele standarditele SQL:2003, SQL:1999, on väga rikkalik ja Keeruline keel, mille kõiki võimalusi on raske kohe realiseerida, veel vähem mõista. Seetõttu peame jaotama keele tasemeteks. Ühes SQL-standardi pakutavas klassifikatsioonis on see keel jagatud "põhi" (sisestus), "keskmine" (keskmine) ja "täielik" tasemeks. Põhitase sisaldab umbes nelikümmend käsku, mida saab nende funktsionaalsuse järgi kategooriatesse rühmitada.

LOO TABELI üksikasjad (NOMZ INT, TÄISNIME MÄRK(15), YEAR INT, SUGU MÄRK(3))

Drop TABLE Üksikasjad

MUUDATA TABELIT (NÄIDISTABEL (10))

LOO vaade Akadeemiline edenemine M1 AS SELECT *FROM Akadeemiline jõudlus WHERE GROUP= "M-1"

INSERT INTO Information VALUES (980101, "IVANOV I. I.", 1980, "MEES")

DELETE FROM Üksikasjad WHERE NOMZ=980201

VÄRSKENDAMISE teabe KOMPLEKT Täisnimi = "KRAVTSOVA I. I." KUS NOMZ=980201

SELECT * FROM Teave WHERE TÄISNIMI="SIDOROV S. S." VÕI TÄISNIMI = "PETROV P. P."

54. Andmetüübid ja avaldised Relatsioonitabeli juurde pääsemiseks SQL keel peate kirjutama (täpsustama) käsu. VALI (vali)märksõnaütleb DBMS-ile, millise toimingu see teeb see käsk. Käsupäringud algavad märksõna. Lisaks SELECT-le võivad need olla sõnad LOO- luua, LISA- sisestada, KUSTUTA- kustutada, KOHTU- täielik jne.

FROM – märksõna nagu SELECT, mis ilmub igas käsus. Sellele järgneb tühik ja seejärel teabeallikana kasutatud tabelite nimed. Tabelite ja väljade nimed peavad sisaldama 1 kuni 18 tähemärki, algama tähega ega sisalda tühikuid ega erimärke.

KUS märksõna, millele järgneb predikaat – tabelikirjele seatud tingimus, mida see peab täitma, et valikusse kaasata.

TELLI - kuvatavate kirjete sortimine (Asc – tõusev, Desc – kahanevalt. Kui sortimise tüüp pole määratud, siis toimub sortimine kasvavas järjekorras).

CHAR(pikkus) CHARACTER(pikkus)Konstantse pikkusega märgistringid

TÄISARV INTTäisarvud

VÄIKEVäike täisarv

ARV(täpsus, kraad) DECIMAAL(täpsus, kraad DEC(täpsus, kraad)Fikseeritud punkti number

FLOAT (täppis)Ujukomaarv

Topelttäpsusujuva lukuga numbrid, kõrge täpsus

Väljendid SQL-is kasutatakse kriteeriumide määramiseks andmete valimiseks või toimingute tegemiseks andmebaasist loetavate väärtustega. Avaldised on operaatoritega ühendatud andmebaasiväljade, konstantide, funktsioonide konkreetne jada.

Konstandid kasutatakse konkreetsete andmeväärtuste tähistamiseks. Fikseeritud punkti konstandid, näiteks: 21 -375,18 62,3

ujukoma konstandid, näiteks: 1,5E7 -3,14E9 2,5E-6 0,783E24

Stringi konstandid tuleb lisada üksikud jutumärgid. Näited sellistest konstantidest: "Minsk" "New York" "Ivanov I. I."

Väärtus puudub(NULL). SQL toetab puuduvate andmete käsitlemist, kasutades puuduva väärtuse kontseptsiooni.

Enamik SQL-ile orienteeritud DBMS-e toetab nn agregeeritud (kogu)funktsioonid. Sageli kasutatavaks koondfunktsioonid võib lisada järgmist:

· COUNT– väärtuste arv tabeli veerus;

· SUMMA– veerus olevate väärtuste summa;

· AVG- veerus olevate väärtuste aritmeetiline keskmine;

· MAXmaksimaalne väärtus veerus;

· MINminimaalne väärtus veerus.

Kasutada võib järgmisi väljendeid: operaatori tüübid:

· aritmeetika: + (lisandus), - (lahutamine), * (korrutamine), / (jaotus);

· suhe: = (võrdne), > (suurem),< (меньше), >= (suurem või võrdne sellega),<= (меньше или равно), <>(pole võrdne);

· ajurünnak: JA(loogiline "JA"), VÕI(loogiline "VÕI"), MITTE(loogiline eitus);

56. Tehingute kontrolli käsud võimaldab teil tagada andmebaasi terviklikkuse.

SQL tehing on mitu järjestikust SQL-käsku, mis tuleb käivitada ühe üksusena.

SQL-keeles rakendatakse tehingute töötlemist kahe käsuga - KOHTU Ja TAGASI. Nad haldavad rühmade tehtud muudatusi. Meeskond KOHTU teatab tehingu edukast sooritamisest. See teavitab DBMS-i, et tehing on lõpule viidud, kõik selle käsud on edukalt lõpule viidud ja andmebaasis pole ilmnenud vastuolusid. Meeskond TAGASI teatab tehingu ebaõnnestumisest. See teavitab DBMS-i, et kasutaja ei soovi tehingut lõpule viia, ja DBMS peaks tühistama kõik tehingu tulemusel andmebaasis tehtud muudatused. Sel juhul tagastab DBMS andmebaasi olekusse, milles see oli enne tehingu sooritamist.

Meeskonnad KOHTU Ja TAGASI kasutatakse peamiselt programmirežiimis, kuigi neid saab kasutada ka interaktiivselt.

57. Juurdepääsu juhtkäsklustele Need on käsud haldusfunktsioonide täitmiseks, mis annavad või tühistavad õiguse (privileegi) kasutada andmebaasitabeleid teatud viisil. Igal andmebaasi kasutajal on andmebaasiobjektidega seoses teatud õigused.

Õigused– need on toimingud objektiga, mida kasutaja saab teha. Õigused võivad aja jooksul muutuda: vanu saab tühistada, uusi saab lisada. Pakutakse järgmised õigused:

· INSERT – õigus tabelisse andmeid lisada;

· UPDATE – tabeliandmete muutmise õigus;

· DELETE – õigus tabelist andmeid kustutada;

· VIITED – primaarvõtme määramise õigus.

58 Keele manustamine rakendusprogrammidesse.Sisseehitatud Need on käsud, mis on loodud juurdepääsuks andmebaasile konkreetses programmeerimiskeeles kirjutatud rakendusprogrammidest.

Tõlge: Alexandr Pyramidin

See artikkel tutvustab teile SQL-keele struktuuri, samuti mõningaid üldisi mõisteid, nagu andmeväljade tüübid, mida võivad sisaldada, ja mõningaid SQL-is esinevaid ebaselgusi. Te ei pea meeles pidama kõiki selles artiklis mainitud detaile. See on vaid lühike ülevaade; on toodud palju üksikasju, et saaksite neile hiljem keelt valdades viidata.

Kuidas SQL töötab?

SQL on keel, mis on loodud spetsiaalselt relatsiooniandmebaaside (RDB) jaoks. See teeb suure osa tööst, mida peaksite tegema, kui kasutaksite üldotstarbelist programmeerimiskeelt nagu C. RDB moodustamiseks C-s peaksite alustama nullist. Määratleksite objekti nimega tabel, mis võib kasvada suvalise arvu ridadeni, ja seejärel looge väärtuste sisestamiseks ja toomiseks järkjärgulised protseduurid.

Kui soovite leida mõnda konkreetset stringi, peate järgima järgmist samm-sammult protseduuri:

  • Kaaluge tabeli rida.
  • Kontrollige, kas see string on üks vajalikest stringidest.
  • Kui jah, salvestage see kuhugi, kuni kogu tabel on kontrollitud.
  • Kontrollige, kas tabelis on teisi ridu.
  • Kui on, naaske 1. sammu juurde.
  • Kui ridu pole enam, printige kõik sammus 3 salvestatud väärtused.

(Loomulikult pole see tegelik C-käskude komplekt, vaid lihtsalt reaalses programmis sisalduvate sammude loogika.) SQL teeb seda kõike teie eest. SQL-i käsud võivad töötada kõigis tabelirühmades ühe üksusena ja töödelda mis tahes teavet, mis on neist eraldatud või tuletatud ühe üksusena.

Mida ANSI teeb?

Nagu me sissejuhatuses ütlesime, on SQL-standard defineeritud ANSI (American National Standards Institute) koodi abil. SQL-i ei leiutanud ANSI. See on sisuliselt IBMi leiutis. Kuid teised ettevõtted hakkasid kohe SQL-i kasutama. Vähemalt üks ettevõte (Oracle) on võitnud IBM-i SQL-toodete turustamise õiguse.

Pärast mitmete konkureerivate SQL-programmide turule ilmumist määratles ANSI standardi, millele need peaksid vastama. (Selliste standardite määratlemine on ANSI funktsioon.) Kuid pärast seda ilmnesid mõned probleemid. Need tekkisid ANSI standardimise tulemusena teatud piirangute kujul. Kuna ANSI ei määratle alati, mis on kõige kasulikum, püüavad programmid järgida ANSI standardit, lubamata sellel neid liiga palju piirata. See omakorda toob kaasa juhuslikud ebakõlad. Andmebaasiprogrammid lisavad tavaliselt ANSI SQL-ile lisafunktsioone ja leevendavad sageli paljusid piiranguid. Seetõttu kaalutakse ka levinud ANSI variante. Kuigi ilmselgelt ei saa me käsitleda kõiki erandeid või variatsioone, kiputakse häid ideid vastu võtma ja kasutama erinevates programmides, isegi kui need pole ANSI standardiga määratletud. ANSI on teatud tüüpi miinimumstandard ja saate teha rohkem, kui see võimaldab, kuigi peate järgima selle juhiseid selles määratud ülesannete täitmisel.

Interaktiivne ja pesastatud SQL

SQL-e on kaks: interaktiivne ja pesastatud. Enamasti töötavad mõlemad vormid ühtemoodi, kuid neid kasutatakse erinevalt. Interaktiivset SQL-i kasutatakse otse andmebaasis käitamiseks, et toota väljundit kliendile kasutamiseks. Selles SQL-is - kui sisestate käsu, siis see käivitatakse kohe ja näete kohe väljundit (kui see on olemas).

Pesastatud SQL koosneb SQL-käskudest, mis on paigutatud programmidesse, mis on tavaliselt kirjutatud teises keeles (nt COBOL või PASCAL). See muudab sellised programmid võimsamaks ja tõhusamaks.

Nende keelte lubamisega kaasneb aga SQL-i struktuur ja andmehaldusstiil, mis nõuab mõningaid interaktiivseid SQL-laiendeid. SQL-i käskude edastamine pesastatud SQL-i on muutujate või parameetrite puhul, mida kasutab programm, millesse need olid pesastatud.

Selles raamatus tutvustame SQL-i interaktiivsel viisil. See annab meile võimaluse arutada käske ja nende toiminguid, muretsemata selle pärast, kuidas need on liidestatud teiste keeltega. Interaktiivne SQL on mitte-programmeerijatele kõige kasulikum vorm. Kõik, mida interaktiivse SQL-i kohta õpite, kehtib üldiselt pesastatud vormi kohta. Pesastatud vormi kasutamiseks vajalikke muudatusi käsitletakse selle raamatu viimases peatükis.

SQL-i alajaotised

Nii interaktiivsetel kui ka pesastatud SQL-vormidel on palju osi või alajaotisi. Kuna tõenäoliselt puutute SQL-i lugedes kokku selle terminoloogiaga, anname selgitusi. Kahjuks ei kasutata neid termineid kõigis rakendustes universaalselt. Neid määrab ANSI ja need on kasulikud kontseptuaalsel tasandil, kuid enamik SQL-programme ei suuda neid eraldi käsitleda, seega muutuvad need sisuliselt SQL-käskude funktsionaalseteks kategooriateks.

  • DDL (Data Definition Language) – ANSI-s nimetatakse skeemi kirjelduskeeleks – koosneb käskudest, mis loovad andmebaasis objekte (tabeleid, indekseid, vaateid ja nii edasi).
  • DML (Data Manipulation Language) on käskude komplekt, mis määrab, milliseid väärtusi tabelites igal ajahetkel esitatakse.
  • DCD (Data Control Language) koosneb tööriistadest, mis määravad, kas lubada kasutajal teatud toiminguid teha või mitte. Need on osa ANSI DDL-ist.

Ärge unustage neid nimesid. Need ei ole erinevad keeled, vaid SQL-käskude osad, mis on rühmitatud nende funktsioonide järgi.

Erinevad andmetüübid

Kõik väärtused, mida tabeliväljadelt leida, ei ole loogiliselt ühesugused. Kõige ilmsem erinevus on numbrite ja teksti vahel. Te ei saa panna numbreid tähestiku järjekorda ega lahutada üht nime teisest.

Kuna DDB süsteemid põhinevad infokildude vahelistel suhetel, tuleb eri tüüpi andmeid üksteisest eristada, et saaks teha nende vahel sobivaid protsesse ja võrdlusi. SQL-is määratakse selleks igale väljale andmetüüp, mis näitab, millist väärtust see väli võib sisaldada. Kõik sellel väljal olevad väärtused peavad olema sama tüüpi. Näiteks tabelis Kliendid sisaldavad cname ja city hindamist vajavaid tekstiridu ning snum ja cnum on numbrid. Sel põhjusel ei saa te hinnanguväljale sisestada väärtust Kõrgeim või Puudub, mis on numbriline andmetüüp. See piirang on hea, kuna see paneb teie andmetele teatud struktuuri. Võrrelte sageli mõnda või kõiki antud välja väärtusi, nii et soovite võib-olla sooritada toimingu ainult teatud ridadega, mitte kõigiga. Te ei saanud seda teha, kui väljade väärtused olid segatüüpi.

Kahjuks on nende andmetüüpide määratlemine suur valdkond, kus enamik kommertsandmebaasiprogramme ja ametlik SQL-standard alati kokku ei lange. ANSI SQL-standard tunneb ära ainult teksti ja numbri, samas kui enamik kommertsprogramme kasutab muid eritüüpe. Näiteks DATA ja TIME on tegelikult peaaegu standardsed tüübid (kuigi nende täpne vorming varieerub). Mõned paketid toetavad ka selliseid tüüpe nagu RAHA ja BINARY. (MONEY on spetsiaalne "valuuta" süsteem, mida arvutid kasutavad.)

Kogu arvutis olev teave edastatakse kahendarvudena ja teisendatakse seejärel teistesse süsteemidesse, et saaksime neid hõlpsalt kasutada ja mõista.

ANSI määratleb mitu numbritüüpi, mille erinevused on üsna peened ja mõnikord segased. Lubatud ANSI andmetüübid on loetletud lisas B. ANSI numbritüüpide keerukust võib vähemalt osaliselt seostada püüdega muuta pesastatud SQL ühilduvaks paljude teiste keeltega. Kaks ANSI numbritüüpi, INTEGER ja DECIMAL (mida võib lühendada vastavalt INT ja DEC), sobivad nii meie eesmärkideks kui ka enamiku praktiliste ärirakenduste jaoks. Loomulikult saab INTEGER tüüpi esitada KÜMNENDARVINA, mis ei sisalda koma paremal asuvaid numbreid.

Teksti tüüp on CHAR (või CHAR), mis viitab tekstistringile. Väljal CHAR on pikkus, mille määrab väljale sisestatavate märkide maksimaalne arv. Enamikul rakendustel on ka mittestandardne tüüp nimega VARCHAR, mis on tekstistring ja võib olla mis tahes pikkusega kuni juurutuse määratud maksimumini (tavaliselt 254 tähemärki). CHARACTER ja VARCHAR väärtused sisalduvad üksikutes jutumärkides kui "tekst". CHARi ja VARCHARi erinevus seisneb selles, et CHAR peab reserveerima piisavalt mälu stringi maksimaalse pikkuse jaoks, samas kui VARCHAR eraldab mälu vastavalt vajadusele.

Märgitüübid koosnevad kõigist prinditavatest tähemärkidest, sealhulgas numbritest. Kuid number 1 ei ole sama mis sümbol "1". Märk "1" on ainult trükitud tekstiosa, mida süsteem ei määratle numbrilise väärtusena 1. Näiteks 1 + 1 = 2, kuid "1" + "1" ei võrdu numbriga "2". Märgiväärtused salvestatakse arvutisse kahendväärtustena, kuid kuvatakse kasutajale trükitud tekstina.

Teisendamine toimub vormingus, mille määrab teie kasutatav süsteem. See teisendusvorming on üks kahest arvutisüsteemides kasutatavast standardtüübist (võimalik, et koos laiendustega): ASCII-kood (kasutatakse kõigis personaal- ja väikearvutites) ja EBCDIC-kood (laiendatud binaarne kümnendandmete vahetamise kood) (kasutatakse suurtes arvutites). Teatud toimingud, näiteks välja väärtuste tähestikuline järjestamine, muutuvad koos vorminguga.

Tüübi DATE kasutamisel peame järgima turgu, mitte ANSI-d. (Süsteemi puhul, mis ei tunne ära DATE tüüpi, saate loomulikult deklareerida kuupäeva märgi- või numbriväljana, kuid see muudab enamiku toimingutest töömahukamaks.)

Peaksite üle vaatama kasutatava tarkvarapaketi dokumentatsiooni, et täpselt teada saada, milliseid andmetüüpe see toetab.

SQL. Vastuolud.

Eelmisest arutelust saate aru, et SQL-maailmas on toodete vahel eraldi lahknevused. SQL tekkis kommertsandmebaaside maailmast tööriistana ja hiljem arendati sellest välja ANSI standard. Kahjuks ei määra ANSI alati, mis on kõige kasulikum, nii et programmid püüavad järgida ANSI standardit, laskmata sellel end liiga palju piirata. ANSI on omamoodi miinimumstandard – saab teha rohkem, kui lubab, kuid sama ülesande täitmisel peab olema võimalik saada samu tulemusi.

MIS ON "KASUTAJA"?

SQL asub tavaliselt arvutisüsteemides, millel on rohkem kui üks kasutaja ja seetõttu tuleb neil vahet teha (teie arvutiperekonnal võib olla suvaline arv kasutajaid, kuid tavaliselt ei ole tal võimalik üht kasutajat teisest eristada).

Tavaliselt on sellises süsteemis igal kasutajal mingi õiguste kinnituskood, mis teda identifitseerib (terminoloogia on erinev). Arvutiga seansi alguses logib kasutaja sisse (registreerub), teatades arvutile, kes on kasutaja, identifitseerides end konkreetse ID abil. Suvaline arv juurdepääsu ID-d kasutavaid inimesi on üksikkasutajad; ja samamoodi võib üks inimene esindada suurt hulka kasutajaid (eri aegadel), kasutades erinevaid SQL-i juurdepääsu ID-sid. Enamikus SQL-keskkondades on toimingud vastendatud konkreetsele juurdepääsuidentifikaatorile, mis vastab täpselt konkreetsele kasutajale. Tabel või muu objekt kuulub kasutajale, kellel on selle üle täielik kontroll. Kasutajal võib, kuid ei pruugi olla privileegi objektiga toimingu sooritamiseks. Oma eesmärkidel nõustume, et igal kasutajal on mis tahes toimingu tegemiseks vajalikud õigused, kuni pöördume tagasi konkreetselt peatükis 22 toodud privileegide arutelu juurde. Eriväärtust USER saab kasutada käsu argumendina. See näitab käsu andnud kasutaja saadaolevat ID-d.

Konventsioonid ja terminoloogia

Märksõnad on sõnad, millel on SQL-is eriline tähendus. Need võivad olla käsud, kuid mitte teksti- või objektinimed. Võtmesõnad tõstame esile, tippides need SUURTE TÄHTEGA. Peate olema ettevaatlik, et mitte segi ajada märksõnu terminitega.

SQL-il on selle kirjeldamiseks teatud eriterminid. Nende hulgas on selliseid sõnu nagu "päring", "klausel" ja "predikaat", mis on keele kirjeldamisel ja mõistmisel kõige olulisemad, kuid ei tähenda SQL-i jaoks midagi iseseisvat.

Käsud või avaldused on juhised, mille abil pääsete juurde SQL-i andmebaasile.

Käsud koosnevad ühest või mitmest eraldiseisvast loogilisest osast, mida nimetatakse klausliteks.

Laused algavad märksõnaga ja koosnevad märksõnadest ja argumentidest. Näiteks klauslid, millega võite kokku puutuda, on "FROM Salespeope" ja "WHERE city = "London"". Argumendid täiendavad või muudavad lause tähendust. Ülaltoodud näidetes on müügiinimesed argumendiks ja FROM on klausli FROM märksõna. Samamoodi on "linn = "London" argument WHERE-klauslile.

Objektid on andmebaasistruktuurid, millele antakse nimed ja mis salvestatakse mällu. See hõlmab baastabeleid, vaateid ja indekseid.

Et näidata teile, kuidas meeskonnad moodustatakse, teeme seda näidete abil. Siiski on käskude kirjeldamiseks ametlikum meetod, mis kasutab standardseid kokkuleppeid. Kasutame seda järgmistes peatükkides, et neid konventsioone paremini mõista juhuks, kui leiate neid teistes SQL-dokumentides.

Ruudusulud () tähistavad osi, mida ei tohi kasutada, ja ellipsid (...) näitavad, et kõike eelnevat saab korrata suvalise arvu kordi. Nurksulgudes () olevad sõnad on eriterminid, mis selgitavad, mis need on. Oleme standardset SQL-terminoloogiat oluliselt lihtsustanud, muutmata selle mõistmist keeruliseks.

Kokkuvõte

Selles peatükis käsitlesime lühidalt põhitõdesid. Kuid meie eesmärk oli kiiresti katta SQL-i põhitõed, et saaksite hõlmata kogu teabe ulatust.

Nüüd teate SQL-i kohta mõnda asja: milline on selle struktuur, kuidas seda kasutatakse, kuidas see andmeid esitab ja kuidas need on määratletud (ja mõned sellega kaasnevad ebakõlad), mõned nende kirjeldamiseks kasutatavad kokkulepped ja terminid. Kõik see on ühe peatüki jaoks liiga palju teavet; Me ei eelda, et mäletate kõiki neid üksikasju, kuid võite vajadusel neile hiljem tagasi pöörduda.

Tänapäeval muutuvad üha populaarsemaks SQL-i kursused mannekeenidele. Seda saab seletada väga lihtsalt, sest kaasaegses maailmas võib üha enam leida nn “dünaamilisi” veebiteenuseid. Neid eristab üsna paindlik kest ja need põhinevad sellel, et kõik algajad programmeerijad, kes otsustavad veebisaite pühendada, registreeruvad kõigepealt SQL-i kursustele "mannekeenidele".

Miks seda keelt õppida?

Esiteks õpetatakse SQL-i selleks, et luua veelgi laia valikut rakendusi tänapäeval ühele populaarsemale ajaveebimootorile – WordPressile. Pärast mõne lihtsa õppetunni läbimist saate luua mis tahes keerukusega päringuid, mis ainult kinnitab selle keele lihtsust.

Mis on SQL?

Või struktureeritud päringukeel, mis loodi ühel eesmärgil: nende kindlaksmääramiseks, neile juurdepääsu võimaldamiseks ja töötlemiseks üsna lühikese aja jooksul. Kui teate SQL-i tähendust, saate aru, et see server on klassifitseeritud nn "mitteprotseduuriliseks" keeleks. See tähendab, et selle võimalused hõlmavad ainult nende komponentide või tulemuste kirjeldust, mida soovite saidil tulevikus näha. Millal aga täpselt ei näita, milliseid tulemusi kavatsetakse saada. Iga uus taotlus selles keeles on nagu täiendav pealisehitus. Päringuid täidetakse nende andmebaasi sisestamise järjekorras.

Milliseid protseduure saab seda keelt kasutades teha?

Vaatamata oma lihtsusele võimaldab SQL-andmebaas luua väga erinevaid päringuid. Mida saate teha, kui õpite selle olulise programmeerimiskeele?

  • luua mitmesuguseid tabeleid;
  • vastu võtta, salvestada ja muuta vastuvõetud andmeid;
  • muuta tabeli struktuure oma äranägemise järgi;
  • ühendada saadud teave üksikuteks plokkideks;
  • arvutada saadud andmed;
  • tagada teabe täielik kaitse.

Millised käsud on selles keeles kõige populaarsemad?

Kui otsustate läbida SQL for Dummies kursuse, saate üksikasjalikku teavet käskude kohta, mida kasutatakse seda kasutades päringute loomisel. Tänapäeval on kõige levinumad:

  1. DDL on käsk, mis määratleb andmed. Seda kasutatakse andmebaasis mitmesuguste objektide loomiseks, muutmiseks ja kustutamiseks.
  2. DCL on käsk, mis töötleb andmeid. Seda kasutatakse erinevatele kasutajatele juurdepääsu võimaldamiseks andmebaasis olevale teabele, samuti tabelite või vaadete kasutamiseks.
  3. TCL on meeskond, mis haldab erinevaid tehinguid. Selle põhieesmärk on tehingu edenemise kindlaksmääramine.
  4. DML – manipuleerib vastuvõetud andmetega. Selle ülesandeks on võimaldada kasutajal mitmesugust infot andmebaasist teisaldada või sinna sisestada.

Selles serveris eksisteerivate õiguste tüübid

Privileegid viitavad neile toimingutele, mida konkreetne kasutaja saab teha vastavalt oma staatusele. Kõige minimaalsem on muidugi tavaline sisselogimine. Muidugi võivad privileegid aja jooksul muutuda. Vanad kustutatakse ja lisatakse uusi. Tänapäeval teavad kõik need, kes osalevad SQL Serveri "for dummies" kursustel, et lubatud toiminguid on mitut tüüpi:

  1. Objekti tüüp – kasutajal on lubatud täita mis tahes käsku ainult seoses konkreetse objektiga, mis asub andmebaasis. Samas on privileegid erinevate objektide puhul erinevad. Samuti on need seotud mitte ainult konkreetse kasutajaga, vaid ka tabelitega. Kui keegi, kasutades oma võimalusi, lõi tabeli, peetakse teda selle omanikuks. Seetõttu on tal õigus määrata teistele kasutajatele selles sisalduva teabega seotud uusi õigusi.
  2. Süsteemi tüüp on nn andmete autoriõigus. Sellised õigused saanud kasutajad saavad andmebaasis luua erinevaid objekte.

SQL-i ajalugu

Selle keele lõi IBM Research Laboratory 1970. aastal. Tol ajal oli selle nimi veidi teistsugune (SEQUEL), kuid pärast paariaastast kasutamist muudeti seda veidi lühendades. Sellest hoolimata hääldavad paljud maailmakuulsad programmeerimiseksperdid seda nime ikka veel vanamoodsalt. SQL loodi üheainsa eesmärgiga – leiutada keel, mis oleks nii lihtne, et isegi tavalised Interneti-kasutajad saaksid seda probleemideta õppida. Huvitav fakt on see, et tol ajal polnud SQL ainus selline keel. Californias töötas teine ​​spetsialistide rühm välja sarnase Ingresi, kuid see ei saanud kunagi laialt levinud. Enne 1980. aastat oli SQL-is mitu variatsiooni, mis erinesid üksteisest vaid veidi. Segaduste vältimiseks loodi 1983. aastal standardversioon, mis on populaarne tänaseni. SQL-i kursused "mannekeenidele" võimaldavad teil teenuse kohta palju rohkem teada saada ja seda mõne nädala jooksul täielikult õppida.

Täna pöördume arvutiteema poole, nii et see artikkel pakub eelkõige programmeerijatele huvi. Meie, hea lugeja, räägime struktureeritud päringute keelest, mis inglise keeles on krüpteeritud kui SQL (Structured Query Language). Niisiis, asume asja juurde. Räägime nüüd sellest, mis on SQL ja milleks seda vaja on.

Struktureeritud päringukeel on universaalne keel relatsiooniandmebaaside osaks oleva teabe loomiseks, muutmiseks ja haldamiseks. Algselt oli SQL peamine viis andmetega töötamiseks. Seda kasutades saab kasutaja teha järgmisi toiminguid:

  • uue tabeli loomine andmebaasis (DB);
  • uute kirjete lisamine olemasolevatesse tabelitesse;
  • kirjete toimetamine;
  • kirjete täielik kustutamine;
  • kirje valimine erinevatest tabelitest vastavalt kindlaksmääratud tingimustele;
  • ühe või mitme tabeli välimuse ja struktuuri muutmine.

Arenedes muutus SQL kõvasti ja rikastus uute kasulike funktsioonidega, mille tulemusel hakkas see üha enam välja nägema tõelise programmeerimiskeele moodi. Tänapäeval on SQL ainus mehhanism, mis suudab rakendustarkvara ja andmebaasi siduda. See on SQL.

SQL-is on mitut tüüpi päringuid. Väärib märkimist, et iga SQL-päring eeldab kas soovitud andmebaasi andmete päringut või juurdepääsu andmebaasile koos selles sisalduvate andmete kohustusliku muutmisega. Sellega seoses on tavaks eristada järgmist tüüpi päringuid:

  • uute või olemasolevate objektide loomine või muutmine andmebaasis;
  • andmete vastuvõtmine;
  • uute andmete lisamine tabelisse;
  • andmete kustutamine;
  • juurdepääs andmebaasihaldussüsteemile (DBMS).

Natuke selle andmetöötlussüsteemi eelistest ja puudustest.

SQL-i eelised

  • Sõltumatus antud süsteemis olemasolevast DBMS-ist. SQL-tekstid on paljude DBMS-ide jaoks universaalsed. See reegel kehtib aga tabelites andmete töötlemisega seotud lihtsate ülesannete puhul.
  • SQL standardite olemasolu aitab keelt "stabiliseerida".
  • Deklaratiivsus. See eelis seisneb selles, et andmetega töötades valib programmeerija ainult muutmist või muutmist vajava teabe. Kuidas seda tehakse, otsustatakse automaatselt DBMS-i enda tarkvara tasemel.

SQL-i miinused

  • SQL ei järgi relatsiooniandmemudelit. Sellega seoses asendab SQL Tutorial D keele, mis on tõeliselt relatsiooniline.
  • SQL-i keerukus määrab selle eesmärgi. Keel on nii keeruline, et seda saab kasutada ainult programmeerija. Kuigi see oli algselt mõeldud juhtimisvahendiks, millega tavakasutaja töötaks.
  • Teatav ebakõla standardites. Paljud DBMS-i arendavad ettevõtted lisavad SQL-keele dialektile oma funktsioone, mis mõjutavad oluliselt keele universaalsust.

Viimane asi: mis on SQL Server? See on andmebaasihaldussüsteem, mis töötati välja kuulsa ettevõtte Microsofti seintes. See süsteem töötab edukalt nii koduste personaalarvutite kui ka suurte ettevõtete andmebaasidega. Selles turusegmendis on SQL Server enam kui konkurentsivõimeline.

Noh, meenutagem lühidalt MySQL-i. Seda rakendust kasutatakse tavaliselt serverina, mis võtab vastu päringuid kohalikelt või kaugklientidelt. MySQL-i saab lisada ka eraldiseisvatesse programmidesse. Tuleb märkida, et see rakendus on üks paindlikumaid andmehaldussüsteeme, kuna sisaldab palju erinevat tüüpi tabeleid.