Kas įmanoma naudojant sql kalbą. SQL: universali kalba, skirta darbui su duomenų bazėmis

Sveiki visi! Šiandien pasistengsiu kuo paprasčiau, ypač pradedantiesiems, papasakoti apie kas yra SQL, ir kam jis reikalingas. Iš šios medžiagos taip pat sužinosite, kas yra duomenų bazė ir duomenų bazių valdymo sistema, taip pat kas yra SQL kalbos dialektas, nes visas straipsnis bus sukurtas remiantis sklandžiai leis jums suprasti, kas yra SQL.

Manau, jūs jau įsivaizduojate, kad SQL yra tam tikra kalba, susijusi su kažkokiomis duomenų bazėmis, bet norint geriau suprasti, kas yra SQL, reikia suprasti, kam skirtas SQL, kam ši kalba skirta , t.y. jos tikslas.

Todėl pirmiausia pateiksiu jums šiek tiek įžanginės informacijos, iš kurios bus aišku, kokia SQL kalbos paskirtis ir kodėl ji apskritai reikalinga.

Kas yra duomenų bazė

Ir pradėsiu nuo to, kad duomenų bazė paprastai suprantama kaip bet koks informacijos rinkinys, kuris yra saugomas tam tikru būdu ir gali būti naudojamas. Bet jei kalbame apie kai kurias automatizuotas duomenų bazes, tai, žinoma, kalbame apie vadinamąsias reliacines duomenų bazes.

Reliacinė duomenų bazė– tai užsakyta informacija, susieta tam tikrais ryšiais. Jis pateikiamas lentelių pavidalu, kuriose yra visa ši informacija. Ir tai labai svarbu, nes dabar turėtumėte įsivaizduoti modernią duomenų bazę tiesiog lentelių pavidalu ( kalbant SQL kontekste), t.y. Bendrąja prasme duomenų bazė yra lentelių rinkinys. Žinoma, tai labai supaprastintas apibrėžimas, tačiau jis suteikia praktinio duomenų bazės supratimo.

Kas yra SQL

Dėl to, kad informacija duomenų bazėje yra sutvarkyta, suskirstyta į tam tikrus subjektus ir pateikiama lentelių pavidalu, mums reikiamą informaciją lengva pasiekti ir rasti.

Ir čia iškyla pagrindinis klausimas: Kaip su ja susisiekti ir gauti reikiamą informaciją?

Tam turi būti specialus įrankis, ir čia mums į pagalbą ateina SQL, kuris yra įrankis, kuriuo manipuliuojami duomenys ( kurti, atkurti, ištrinti ir pan.) duomenų bazėje.

SQL (Struktūrinės užklausos kalba) yra struktūrinė užklausų kalba, naudojama rašyti specialias užklausas ( vadinamieji SQL sakiniai) į duomenų bazę, siekiant gauti duomenis iš duomenų bazės arba manipuliuoti tais duomenimis.

Taip pat verta paminėti, kad duomenų bazė, o ypač reliacinis modelis, yra pagrįsta aibių teorija, kuri reiškia skirtingų objektų sujungimą į vieną visumą; viena visuma duomenų bazėje reiškia lentelę. Tai svarbu, nes SQL kalba veikia konkrečiai su aibė, su duomenų rinkiniu, t.y. su stalais.

Naudinga medžiaga šia tema:

  • Duomenų bazės kūrimas Microsoft SQL Server – instrukcijos pradedantiesiems;
  • Duomenų įtraukimas į lenteles Microsoft SQL Server – INSERT INTO sakinys.

Kas yra DBVS

Jums gali kilti klausimas, jei duomenų bazė yra tam tikra informacija, kuri saugoma lentelėse, tai kaip ji atrodo fiziškai? Kaip į tai žiūrėti kaip į visumą?

Trumpai tariant, tai tik failas, sukurtas specialiu formatu, būtent taip atrodo duomenų bazė ( daugeliu atvejų duomenų bazėje yra keli failai, tačiau dabar šiame lygyje tai nėra taip svarbu).

Eikime toliau, jei duomenų bazė yra specialaus formato failas, kaip jį sukurti ar atidaryti? Ir čia iškyla sunkumas, nes kaip tik taip, be jokių įrankių susikurkite tokį failą, t.y. Reliacinė duomenų bazė neįmanoma, tam reikia specialaus įrankio, kuris galėtų sukurti ir valdyti duomenų bazę, kitaip tariant, dirbti su šiais failais.

Tai būtent instrumentas DBVS yra duomenų bazių valdymo sistema, sutrumpintai DBVS.

Kokios yra DBVS?

Tiesą sakant, yra gana daug įvairių DBVS, kai kurios iš jų yra mokamos ir kainuoja nemažus pinigus, jei kalbame apie visas versijas, tačiau net ir pačiose, taip sakant, „kietiausiose“ yra nemokami leidimai, kurie , beje, puikiai tinka mokytis.

Tarp visų, atsižvelgiant į jų galimybes ir populiarumą, galima išskirti šias sistemas:

  • Microsoft SQL serveris yra „Microsoft“ duomenų bazių valdymo sistema. Tai labai populiarus verslo sektoriuje, ypač didelėse įmonėse. Ir tai ne tik DBVS – tai visas programų rinkinys, leidžiantis saugoti ir keisti duomenis, juos analizuoti, užtikrinti šių duomenų saugumą ir dar daugiau;
  • Oracle duomenų bazė yra „Oracle“ duomenų bazių valdymo sistema. Tai taip pat labai populiari DBVS, taip pat tarp didelių įmonių. Savo galimybėmis ir funkcionalumu „Oracle Database“ ir „Microsoft SQL Server“ yra palyginami, todėl vienas kitam yra rimti konkurentai, o jų pilnų funkcijų versijų kaina yra labai didelė;
  • MySQL yra duomenų bazių valdymo sistema taip pat iš Oracle, tačiau tik ji platinama nemokamai. Labai platų populiarumą interneto segmente susilaukė MySQL, t.y. Beveik visos interneto svetainės veikia MySQL, kitaip tariant, dauguma interneto svetainių naudoja šią DBVS kaip duomenų saugojimo priemonę;
  • PostgreSQL– Ši duomenų bazių valdymo sistema taip pat yra nemokama ir labai populiari bei funkcionali.

Naudinga medžiaga šia tema:

  • „Microsoft SQL Server 2016 Express“ diegimas – nemokamos „Microsoft SQL Server“ leidimo sistemoje „Windows“ diegimo pavyzdys;
  • „Microsoft SQL Server 2017 Express“ diegimas „Ubuntu Server“ – nemokamo „Microsoft SQL Server“ leidimo „Linux“ diegimo pavyzdys;
  • „PostgreSQL 11“ diegimas sistemoje „Windows“ – „PostgreSQL“ diegimo „Windows“ sistemoje pavyzdys;
  • „MySQL“ diegimas sistemoje „Windows“ – „MySQL“ diegimo „Windows“ sistemoje pavyzdys;
  • MySQL diegimas ir konfigūravimas Linux Mint sistemoje – MySQL diegimo Linux sistemoje pavyzdys;
  • „Oracle Database Express Edition 11g“ diegimas – nemokamos „Oracle“ leidimo sistemoje „Windows“ diegimo pavyzdys ( Straipsnis parašytas seniai, bet vis tiek bus naudingas).

SQL dialektai (SQL plėtiniai)

SQL kalba yra standartas, ji yra įdiegta visose reliacinėse duomenų bazėse, tačiau kiekviena DBVS turi šio standarto plėtinį, turi savo kalbą darbui su duomenimis, ji paprastai vadinama SQL dialektu, kuris, žinoma, yra pagrįstas SQL, bet suteikia daugiau galimybių visaverčiam programavimui, be to, tokia vidinė kalba leidžia gauti sistemos informaciją ir supaprastinti SQL užklausas.

Štai keletas SQL dialektų:

  • Transact-SQL(sutrumpintai T-SQL) – naudojamas Microsoft SQL Server;
  • PL/SQL(Procedural Language / Structured Query Language) – naudojama Oracle duomenų bazėje;
  • PL/pgSQL(Procedural Language/PostGres Structured Query Language) – naudojama PostgreSQL.

Taigi, nuo DBVS priklauso, kurį plėtinį naudosite SQL sakiniams rašyti. Pavyzdžiui, jei kalbame apie paprastas SQL užklausas,

PASIRINKITE produkto ID, produkto pavadinimą iš prekių

tada, žinoma, tokios užklausos veiks visose DBVS, nes SQL yra standartas.

Pastaba! Tai paprasta SQL užklausa, skirta gauti duomenis iš vienos lentelės, rodant du stulpelius.

Tačiau jei ketinate programuoti, naudokite visas vidines DBVS galimybes ( kurti procedūras, naudoti integruotas funkcijas, gauti sistemos informaciją ir kt.), tuomet turite išmokti tam tikrą SQL tarmę ir atitinkamai praktikuotis DBVS, kurioje naudojamas šis dialektas. Tai svarbu, nes skiriasi daugelio konstrukcijų sintaksė, galimybės ir daug daugiau. O jei, pavyzdžiui, kitoje DBVS paleidžiate SQL sakinį, kuris naudoja tam tikro SQL plėtinio galimybes, tada tokia instrukcija, žinoma, nebus vykdoma.

Pavyzdžiui, aš asmeniškai specializuojuosi T-SQL kalba, todėl su Microsoft SQL Server dirbu daugiau nei 8 metus!

Nors, žinoma, dirbau ir su kitomis DBVS, vienu metu palaikiau dvi programas, iš kurių viena veikė su PostgreSQL, o antra, turbūt jau aiški, su Microsoft SQL Server.

Dirbau su MySQL, kaip ir tikriausiai daugelis kitų, prižiūrėdamas svetaines ir paslaugas. Na, aš turėjau dirbti su „Oracle Database“ kaip kitų projektų dalimi.

Visą savo sukauptą T-SQL kalbos patirtį sugrupavau į vieną vietą ir sudėjau į knygų formą, tad jei turite noro išmokti Transact-SQL (T-SQL) kalbos, rekomenduoju perskaityti mano knygas:

  • T-SQL programuotojo kelias – pamoka apie Transact-SQL kalbą pradedantiesiems. Jame išsamiai kalbu apie visas kalbos konstrukcijas ir nuosekliai pereinu nuo paprastos prie sudėtingos. Tinka visapusiškam T-SQL kalbos mokymuisi;
  • T-SQL programavimo stilius – teisingo kodavimo pagrindai. Knyga, skirta pagerinti T-SQL kodo kokybę ( tiems, kurie jau yra susipažinę su T-SQL kalba, t.y. žino bent pagrindinius dalykus).

Tikiuosi, dabar suprasite, kas yra SQL ir kam jis reikalingas. Tolesnėje medžiagoje papasakosiu, kaip sukurti SQL užklausas, papasakosiu, kokius įrankius tam reikia naudoti ir kuriai DBVS, nes kiekviena DBVS turi savo įrankiai, todėl sekite naujus straipsnius mano grupėse socialiniuose tinkluose.

Pagrindinės SQL komandos, kurias turėtų žinoti kiekvienas programuotojas

SQL arba struktūrinių užklausų kalba yra kalba, naudojama duomenims tvarkyti reliacinėje duomenų bazių sistemoje (RDBMS). Šiame straipsnyje bus aptariamos dažniausiai naudojamos SQL komandos, kurias turėtų žinoti kiekvienas programuotojas. Ši medžiaga puikiai tinka tiems, kurie nori pagyvinti savo SQL žinias prieš darbo pokalbį. Norėdami tai padaryti, pažiūrėkite į straipsnyje pateiktus pavyzdžius ir prisiminkite, kad duomenų bazes studijavote poromis.

Atminkite, kad kai kurios duomenų bazių sistemos reikalauja kabliataškio kiekvieno teiginio pabaigoje. Kabliataškis yra standartinė rodyklė į kiekvieno SQL sakinio pabaigą. Pavyzdžiuose naudojamas MySQL, todėl kabliataškis yra būtinas.

Pavyzdžių duomenų bazės nustatymas

Sukurkite duomenų bazę, kad parodytumėte, kaip dirba komandos. Norėdami dirbti, turėsite atsisiųsti du failus: DLL.sql ir InsertStatements.sql. Po to atidarykite terminalą ir prisijunkite prie „MySQL“ konsolės naudodami šią komandą (straipsnyje daroma prielaida, kad „MySQL“ jau įdiegtas sistemoje):

Mysql -u root -p

Tada įveskite slaptažodį.

Vykdykite šią komandą. Pavadinkime duomenų bazę „universitetu“:

KURTI DUOMENŲ BAZĘ universitetas; USE universitetas; ŠALTINIS ; ŠALTINIS

Darbo su duomenų bazėmis komandos

1. Peržiūrėkite galimas duomenų bazes

RODYTI DUOMENŲ BAZES;

2. Sukurkite naują duomenų bazę

KURTI DUOMENŲ BAZĘ;

3. Naudojamos duomenų bazės pasirinkimas

NAUDOTI ;

4. Importuokite SQL komandas iš .sql failo

ŠALTINIS ;

5. Ištrinkite duomenų bazę

DROP DUOMENŲ BAZĖ ;

Darbas su stalais

6. Peržiūrėkite duomenų bazėje esančias lenteles

RODYTI LENTELES;

7. Sukurkite naują lentelę

KURTI LENTELĘ ( , , PIRMINIS RAKTAS ( ), SVETIMAS RAKTAS ( ) NUORODOS ());

Vientisumo apribojimai naudojant CREATE TABLE

Gali tekti sukurti apribojimus tam tikriems lentelės stulpeliams. Kurdami lentelę galite nustatyti šiuos apribojimus:

  • lentelės langelis negali turėti NULL reikšmės;
  • pirminis raktas - PRIMARY KEY (stulpelio_pavadinimas1, stulpelio_vardas2, ...) ;
  • užsienio raktas - Svetimas RAKTAS (stulpelio_vardas1, …, stulpelio_pavadinimas) NUORODOS lentelės_pavadinimas(col_namex1, …, col_namexn) .

Galite nurodyti daugiau nei vieną pirminį raktą. Tokiu atveju gausite sudėtinį pirminį raktą.

Pavyzdys

Sukurkite lentelę „instruktorius“:

KURTI LENTELĘ instruktorius (ID CHAR(5), vardas VARCHAR(20) NOT NULL, skyriaus_pavadinimas VARCHAR(20), atlyginimas SKAIČIUS(8,2), PIRMINIS RAKTAS (ID), UŽSIENIO RAKTAS (dept_name) NUORODOS skyrius(dept_name));

8. Lentelės informacija

Galite peržiūrėti įvairią informaciją (reikšmės tipą, raktą ar ne) apie lentelės stulpelius naudodami šią komandą:

APIBŪDINTI ;

9. Duomenų įtraukimas į lentelę

INSERT INTO (, , , ...) VERTĖS ( , , , …);

Kai įtraukiate duomenis į kiekvieną lentelės stulpelį, jums nereikia nurodyti stulpelių pavadinimų.

INSERT INTO VERTYBĖS ( , , , …);

10. Lentelės duomenų atnaujinimas

ATNAUJINTI NUSTATYTI = , = , ... KUR ;

11. Visų duomenų pašalinimas iš lentelės

IŠTRINTI IŠ ;

12. Ištrinkite lentelę

NURODYMAS STALAS ;

Užklausų kūrimo komandos

13. PASIRINKTI

SELECT naudojamas duomenims iš konkrečios lentelės gauti:

PASIRINKTI , , … IŠ ;

Ši komanda gali parodyti visus duomenis iš lentelės:

PASIRINKTI * NUO ;

14. PASIRINKITE ATSKIRIMĄ

Lentelės stulpeliuose gali būti pasikartojančių duomenų. Jei norite gauti tik nepasikartojančius duomenis, naudokite SELECT DISTINCT.

PASIRINKTI ATSKIRIMĄ , , … IŠ ;

15. KUR

Norėdami nurodyti užklausos sąlygas, skiltyje SELECT galite naudoti WHERE raktinį žodį:

PASIRINKTI , , … IŠ KUR ;

Prašyme gali būti nurodytos šios sąlygos:

  • teksto palyginimas;
  • skaitinių reikšmių palyginimas;
  • loginiai operatoriai AND (ir), OR (arba) ir NOT (neigimas).

Pavyzdys

Išbandykite šias komandas. Atkreipkite dėmesį į sąlygas, nurodytas KUR:

SELECT * FROM kursas WHERE dept_name=’Comp. Sci.“; SELECT * FROM kurso WHERE kreditai>3; SELECT * FROM course WHERE dept_name="Comp. Sci." IR kreditai>3;

16. GROUP BY

Operatorius GROUP BY dažnai naudojamas su agregacinėmis funkcijomis, tokiomis kaip COUNT, MAX, MIN, SUM ir AVG, norint grupuoti išvesties reikšmes.

PASIRINKTI , , … IŠ GRUPUOTI PAGAL ;

Pavyzdys

Parodykime kursų skaičių kiekvienam fakultetui:

SELECT COUNT(kurso_id), skyriaus_pavadinimas FROM kurso GROUP BY skyriaus_pavadinimas;

17. TURIMAS

Raktažodis HAVING buvo įtrauktas į SQL, nes WHERE negalima naudoti su agregacinėmis funkcijomis.

PASIRINKTI , , ... NUO GRUPUOTI PAGAL TURIMAS

Pavyzdys

Parodykime fakultetų, turinčių daugiau nei vieną kursą, sąrašą:

SELECT COUNT(kurso_id), skyriaus_pavadinimas FROM kurso GROUP BY skyriaus_pavadinimas HAVING COUNT(kurso_id)>1;

18. UŽSAKYMAS IŠ

ORDER BY naudojamas rūšiuoti užklausos rezultatus mažėjančia arba didėjančia tvarka. ORDER BY bus rūšiuojama didėjančia tvarka, nebent nurodytas ASC arba DESC.

PASIRINKTI , , … IŠ RŪŠIUOTI PAGAL , , …ASC|DESC;

Pavyzdys

Parodykime kursų sąrašą kreditų didėjimo ir mažėjimo tvarka:

PASIRINKTI * IŠ kurso ORDER BY kreditų; SELECT * FROM kurso ORDER BY kreditai DESC;

19. TARP

BETWEEN naudojamas pasirinkti duomenų reikšmes iš konkretaus diapazono. Galima naudoti skaitines ir tekstines reikšmes, taip pat datas.

PASIRINKTI , , … IŠ KUR TARP IR ;

Pavyzdys

Pateikiame sąrašą instruktorių, kurių atlyginimas didesnis nei 50 000, bet mažesnis nei 100 000:

PASIRINKTI * IŠ instruktoriaus KUR atlyginimas NUO 50000 IKI 100000;

20. PATINKA

Ženklas LIKE naudojamas WHERE, kad būtų nurodytas panašios reikšmės paieškos šablonas.

Yra du nemokami operatoriai, kurie naudojami LIKE:

  • % (nėra, vienas ar daugiau simbolių);
  • _ (vienas simbolis).
PASIRINKTI , , … IŠ KUR KAIP ;

Pavyzdys

Parodykime kursų, kurių pavadinimuose yra „iki“, sąrašą ir kursų, kurių pavadinimai prasideda raide „CS-“, sąrašą:

SELECT * FROM kurso WHERE pavadinimas LIKE ‘%to%’; SELECT * FROM kursas WHERE kurso_id LIKE "CS-___";

21. IN

Naudodami IN galite nurodyti kelias WHERE sąlygos reikšmes:

PASIRINKTI , , … IŠ KUR IN ( , , …);

Pavyzdys

Parodykime studentų iš Comp specialybių sąrašą. Sci., fizika ir elektro. angl.:

SELECT * FROM student WHERE dept_name IN ('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. PRISIJUNK

JOIN naudojamas susieti dvi ar daugiau lentelių, naudojant jose esančius bendrus atributus. Žemiau esančiame paveikslėlyje parodyti skirtingi prisijungimo prie SQL būdai. Atkreipkite dėmesį į skirtumą tarp kairiojo išorinio sujungimo ir dešiniojo išorinio sujungimo:

PASIRINKTI , , … IŠ PRISIJUNK ĮJUNGTA = ;

1 pavyzdys

Pateiksime visų kursų sąrašą ir aktualią informaciją apie fakultetus:

SELECT * FROM kurso JOIN departamento ON kursas.dept_name=department.dept_name;

2 pavyzdys

Pateiksime visų reikalingų kursų sąrašą ir išsamią informaciją apie juos:

PASIRINKITE prereq.course_id, title, dept_name, credits, prereq_id FROM prereq LEFT OUTTER JOIN ON prereq.course_id=course.course_id;

3 pavyzdys

Pateiksime visų kursų sąrašą, neatsižvelgiant į tai, ar jie reikalingi, ar ne:

PASIRINKITE kurso.kurso_id, pavadinimą, skyriaus_pavadinimą, kreditus, prereq_id FROM prereq RIGHT OUTTER JOIN kursą ON prereq.course_id=course.course_id;

23. Žiūrėti

Rodinys yra virtuali SQL lentelė, sukurta vykdant išraišką. Jame yra eilučių ir stulpelių ir jis labai panašus į įprastą SQL lentelę. Rodinyje visada rodoma naujausia informacija iš duomenų bazės.

Kūrimas

KURTI VAIZDĄ KAIP PASIRINKTI , , … IŠ KUR ;

Pašalinimas

NURODYTI ;

Pavyzdys

Sukurkime vaizdą, susidedantį iš kursų su 3 kreditais:

24. Suvestinės funkcijos

Šios funkcijos naudojamos norint gauti bendrą rezultatą, susijusį su atitinkamais duomenimis. Dažniausiai naudojamos agregacinės funkcijos:

  • COUNT (col_name) – grąžina eilučių skaičių;
  • SUM (col_name) - grąžina šio stulpelio reikšmių sumą;
  • AVG (col_name) – grąžina vidutinę nurodyto stulpelio reikšmę;
  • MIN (col_name) – grąžina mažiausią duoto stulpelio reikšmę;
  • MAX (col_name) – pateikia didžiausią nurodyto stulpelio reikšmę.

25. Įdėtos antrinės užklausos

Įdėtos antrinės užklausos yra SQL užklausos, kuriose yra SELECT , FROM ir WHERE sąlygos, įdėtos į kitą užklausą.

Pavyzdys

Raskime kursus, kurie buvo dėstomi 2009 m. rudenį ir 2010 m. pavasarį:

SELECT DISTINCT course_id FROM section WHERE semestras = 'Ruduo' AND year= 2009 AND course_id IN (SELECT course_id FROM section WHERE semestras = 'Pavasaris' IR metai = 2010);

Norėdami pradėti mokytis SQL pirmiausia turime suprasti, kas yra duomenų bazė.

1. Kas yra duomenų bazė

Duomenų bazė (DB)- užsakytas logiškai susijusių duomenų rinkinys, naudojamas kartu ir saugomas vienoje vietoje. Trumpai tariant, paprasčiausias DB tai įprasta lentelė su eilutėmis ir stulpeliais, kuriuose saugoma įvairių tipų informacija (pavyzdys būtų lentelė Excel). Taigi, dažnai su DB neatskiriamai surišti Duomenų bazių valdymo sistemos (DBVS), kurie suteikia funkcionalumą darbui su DB. Kalba SQL yra tik dalis DBVS, kuris tvarko informaciją DB. Mes suskaičiuosime DBįprastų lentelių rinkinys, saugomas atskiruose failuose.

2. Kas yra SQL

Taigi pereikime prie SQL.

SQL yra paprasta programavimo kalba, turinti nedaug komandų ir kurią gali išmokti bet kas. Reiškia Struktūrinės užklausos kalba yra struktūrinė užklausų kalba, kuri buvo sukurta dirbti DB, būtent gauti/pridėti/keisti duomenis, gebėti apdoroti didelius informacijos kiekius ir greitai gauti struktūrizuotą bei sugrupuotą informaciją. Yra daug kalbų variantų SQL, bet jie visi turi tas pačias pagrindines komandas. Taip pat yra daug DBVS, bet pagrindiniai yra šie: „Microsoft Access“, „Microsoft SQL Server“, „MySQL“, „Oracle SQL“, „IBM DB2 SQL“, „PostgreSQL“ ir „Sybase Adaptive Server SQL“. Dirbti su SQL kodą, mums reikės vieno iš aukščiau išvardytų DBVS. Treniruotėms naudosime Microsoft Access DBVS.

SQL kaip ir kitos programavimo kalbos turi savo komandas (operatorius), kurių pagalba pateikiami nurodymai duomenims gauti. Norėdami pamatyti, kaip dirba operatoriai SQL, naudosime įsivaizduojamą DB su informacija apie parduodamus produktus.

Sveiki atvykę į duomenų bazių kūrimą naudojant standartinę SQL užklausų kalbą. Duomenų bazių valdymo sistemose (DBVS) yra daug įrankių, kurie veikia įvairiose aparatinės įrangos platformose.

  • Reliacinės duomenų bazės pagrindai

    Šiame skyriuje... | Informacijos organizavimas | Kas yra duomenų bazė | Kas yra DBVS | Duomenų bazių modelių palyginimas | Kas yra reliacinė duomenų bazė

  • SQL pagrindai

    Šiame skyriuje... | Kas yra SQL | SQL klaidingos nuomonės | Žvilgsnis į skirtingus SQL standartus | Įvadas į standartines SQL komandas ir rezervuotus žodžius | Nurodomi skaičiai, simboliai, data, laikas ir kitų tipų duomenys | Neapibrėžtos vertės ir apribojimai

  • SQL komponentai

    Šiame skyriuje... | Duomenų bazių kūrimas | Duomenų apdorojimas | Duomenų bazės apsauga | SQL yra kalba, specialiai sukurta duomenims reliacinėse duomenų bazėse kurti ir palaikyti. Ir nors įmonės, tiekiančios tokių duomenų bazių valdymo sistemas, siūlo savo SQL diegimus, pačios kalbos kūrimą lemia ir kontroliuoja ISO/ANSI standartas.

  • Paprastos duomenų bazės kūrimas ir priežiūra

    Šiame skyriuje... | Sukurkite, keiskite ir ištrinkite lentelę iš duomenų bazės naudodami RAD įrankį. | Sukurkite, keiskite ir ištrinkite lentelę iš duomenų bazės naudodami SQL. | Duomenų bazės perkėlimas į kitą DBVS.

  • Kelių lentelių reliacinės duomenų bazės kūrimas

    Šiame skyriuje... | Kas turėtų būti duomenų bazėje | Ryšių tarp duomenų bazės elementų apibrėžimas | Lentelių susiejimas naudojant raktus | Duomenų vientisumo dizainas | Duomenų bazės normalizavimas | Šiame skyriuje bus pateiktas kelių lentelių duomenų bazės kūrimo pavyzdys.

  • Manipuliavimas duomenimis iš duomenų bazės

    Šiame skyriuje... | Darbas su duomenimis | Reikiamų duomenų gavimas iš lentelės | Rodoma informacija, pasirinkta iš vienos ar kelių lentelių | Informacijos atnaujinimas lentelėse ir rodiniuose | Naujos eilutės įtraukimas į lentelę

  • Vertybių apibrėžimas

    Šiame skyriuje... | Kintamųjų naudojimas pertekliniam kodavimui sumažinti | Duomenų bazės lentelės lauke esančios dažnai prašomos informacijos gavimas | Paprastų reikšmių derinimas kuriant sudėtines išraiškas | Šioje knygoje nuolat pabrėžiama, kokia svarbi yra duomenų bazės struktūra siekiant išlaikyti duomenų bazės vientisumą.

  • Sudėtingi posakiai su prasme

    Šiame skyriuje... | Sąlyginių atvejų teiginių naudojimas | Duomenų elemento konvertavimas iš vieno duomenų tipo į kitą | Išsaugokite duomenų įvedimo laiką naudodami įrašo vertės išraiškas | 2 skyriuje SQL buvo vadinamas duomenų pokalbiu.

  • „Taikymas“ į reikiamus duomenis

    Šiame skyriuje... | Reikalingų lentelių nurodymas | Reikalingų eilučių atskyrimas nuo visų kitų | Veiksmingų sąlygų kūrimas | Kaip dirbti su nulinėmis reikšmėmis | Sudėtinių išraiškų su loginiais ryšiais kūrimas | Užklausos rezultatų išvesties grupavimas pagal stulpelius

  • Santykių operatoriai

    Šiame skyriuje... | Panašios struktūros lentelių sujungimas | Skirtingų struktūrų lentelių sujungimas | Reikiamų duomenų gavimas iš kelių lentelių | SQL yra užklausų kalba, naudojama reliacinėse duomenų bazėse.

  • Įdėtųjų užklausų naudojimas

    Šiame skyriuje... | Duomenų gavimas iš kelių lentelių naudojant vieną SQL sakinį | Duomenų elementų radimas lyginant vienos lentelės vertę su kitos lentelės verčių rinkiniu | Duomenų elementų radimas lyginant vienos lentelės reikšmę su viena verte, pasirinkta naudojant kitos lentelės teiginį

  • Rekursinės užklausos

  • Duomenų bazės apsauga

    Šiame skyriuje... | Prieigos prie duomenų bazės lentelių kontrolė | Sprendimas, ar suteikti prieigą | Prieigos leidimų suteikimas | Prieigos teisės atšaukimas | Užkirsti kelią neteisėtiems bandymams pasiekti

  • Duomenų apsauga

    Šiame skyriuje... | Kaip išvengti duomenų bazės sugadinimo | Problemos, kurias sukelia vienu metu atliekamos operacijos | Šių problemų sprendimas naudojant SQL variklius | Reikiamo saugumo lygio nustatymas naudojant komandą set transakcijos

  • SQL naudojimas programose

    Šiame skyriuje... | SQL programoje | SQL bendrinimas su procedūrinėmis kalbomis| Kaip išvengti nesuderinamumo | SQL kodas, įterptas į procedūrinį kodą | SQL modulių iškvietimas iš procedūrinio kodo | SQL iškvietimas iš RAD įrankio | Ankstesniuose skyriuose daugiausiai žiūrėjome į SQL komandas individualiai, t.y. Buvo suformuluota duomenų apdorojimo užduotis, jai sukurta SQL užklausa.

  • ODBC ir JDBC

    Šiame skyriuje... | ODBC apibrėžimas | ODBC dalių aprašymas | ODBC naudojimas kliento/serverio aplinkoje | ODBC naudojimas internete | ODBC naudojimas vietiniuose tinkluose | Naudojant JDBC | Kiekvienais metais vienos ar kelių skirtingų organizacijų kompiuteriai vis dažniau jungiami vienas prie kito. Todėl reikia sukurti bendrą prieigą prie duomenų bazių tinkle.

  • SQL: 2003 ir XML

    Šiame skyriuje... | SQL naudojimas su XML | XML, duomenų bazės ir internetas | Viena iš svarbiausių naujų SQL: 2003 funkcijų yra jos palaikymas XML (Extensible Markup Language) failams, kurie vis dažniau tampa universaliu duomenų mainų tarp skirtingų platformų standartu.

  • Kursoriai

    Šiame skyriuje... | Kursoriaus apimties apibrėžimas deklaravimo sakinyje | Atidarymo žymeklis | Duomenų atranka pagal eilutę | Žymeklio uždarymas | SQL skiriasi nuo daugumos populiariausių programavimo kalbų tuo, kad vienu metu atlieka operacijas su visų lentelės eilučių duomenimis, o procedūrinės kalbos apdoroja duomenis eilė po eilutės.

  • Ankstesniuose dviejuose šios serijos straipsniuose, publikuotuose 6 ir 7 mūsų žurnalo numeriuose, apžvelgėme įvairius duomenų prieigos mechanizmus, įskaitant ADO, BDE ir jų alternatyvas. Dabar mes žinome, kaip pasirinkti duomenų prieigos technologiją konkrečiai „DBVS – kūrimo įrankio“ porai.

    Turėdami duomenų prieigos technologiją, pagaliau galime pagalvoti, kaip reikėtų manipuliuoti pačiais duomenimis ir metaduomenimis. Manipuliavimo metodai gali būti būdingi tam tikrai DBVS (pavyzdžiui, šios DBVS kliento dalyje esančių objektų naudojimas norint pasiekti duomenų bazės objektus) arba tam tikram duomenų prieigos mechanizmui. Nepaisant to, yra daugiau ar mažiau universalus būdas manipuliuoti duomenimis, palaikomas beveik visų serverių reliacinių DBVS ir universaliausių duomenų prieigos mechanizmų (įskaitant, kai jie naudojami kartu su darbalaukio DBVS). Šis metodas skirtas naudoti SQL kalbą (struktūrinės užklausos kalbą). Toliau apžvelgsime šios kalbos paskirtį ir ypatybes, taip pat sužinosime, kaip ją naudoti norint išgauti ir apibendrinti duomenis, pridėti, ištrinti ir keisti įrašus, apsaugoti duomenis nuo neteisėtos prieigos ir kurti duomenų bazes. Išsamesniam SQL tyrimui galime rekomenduoti Martino Graberio knygas „Įvadas į SQL“ (M., Laurie, 1996) ir „SQL. Nuorodų vadovas“ (M., Lori, 1997).

    Įvadas

    Struktūrinė užklausų kalba yra neprocedūrinė kalba, naudojama duomenims tvarkyti reliacinėse DBVS. Sąvoka „neprocedūrinė“ reiškia, kad tam tikra kalba gali suformuluoti, ką reikia daryti su duomenimis, bet negali nurodyti, kaip tiksliai tai turėtų būti daroma. Kitaip tariant, ši kalba neturi algoritminių konstrukcijų, tokių kaip etiketės, kilpos operatoriai, sąlyginiai šuoliai ir kt.

    SQL kalba buvo sukurta aštuntojo dešimtmečio pradžioje IBM tyrimo projekto, kurio tikslas buvo sukurti kalbą, skirtą manipuliuoti reliaciniais duomenimis, rezultatas. Iš pradžių ji vadinosi SEQUEL (struktūrizuota anglų užklausų kalba), vėliau SEQUEL/2, o vėliau tiesiog SQL. Oficialus SQL standartas buvo paskelbtas ANSI (Amerikos nacionalinis standartų institutas, JAV) 1986 m. (šiandien tai yra dažniausiai naudojamas SQL diegimas). Šis standartas buvo išplėstas 1989 ir 1992 m., todėl naujausias SQL standartas vadinamas SQL92. Šiuo metu vyksta darbas su SQL3 standartu, kuriame yra keletas objektinių plėtinių.

    Yra trys ANSI atitikties lygiai – pradedantysis, vidutinis ir baigtas. Daugelis serverių DBVS tiekėjų, tokių kaip IBM, Informix, Microsoft, Oracle ir Sybase, naudoja savo SQL diegimus, pagrįstus ANSI standartu (atitinkančiu bent pradinį standarto atitikties lygį) ir turinčius tam tikrus DBVS būdingus plėtinius.

    Išsamesnės informacijos apie SQL versijos, naudojamos konkrečioje DBVS, atitiktį galima rasti su ta DBVS pateiktoje dokumentacijoje.

    Kaip veikia SQL

    Pažiūrėkime, kaip veikia SQL. Tarkime, kad yra duomenų bazė, valdoma naudojant tam tikrą DBVS. Norint iš jo išgauti duomenis, naudojama SQL suformuluota užklausa. DBVS apdoroja šią užklausą, nuskaito prašomus duomenis ir grąžina juos. Šis procesas schematiškai pavaizduotas fig. 1 .

    Kaip pamatysime vėliau, SQL leidžia ne tik gauti duomenis, bet ir apibrėžti duomenų struktūrą, pridėti ir ištrinti duomenis, apriboti arba suteikti prieigą prie duomenų ir išlaikyti nuorodų vientisumą.

    Atkreipkite dėmesį, kad pati SQL nėra nei DBVS, nei atskiras produktas. Tai kalba, naudojama sąveikai su DBVS ir tam tikra prasme yra neatsiejama jos dalis.

    Duomenų apibrėžimo kalba (DDL)

    Duomenų apibrėžimo kalboje yra operatoriai, leidžiantys kurti, keisti ir sunaikinti duomenų bazes ir jose esančius objektus (lenteles, rodinius ir kt.). Šie operatoriai yra išvardyti lentelėje. 1.

    1 lentelė

    operatorius

    apibūdinimas

    Naudojamas norint į duomenų bazę įtraukti naują lentelę

    Naudojamas norint pašalinti lentelę iš duomenų bazės

    Naudojamas esamos lentelės struktūrai pakeisti

    Naudojamas naujam rodiniui įtraukti į duomenų bazę

    Naudojamas norint pašalinti vaizdą iš duomenų bazės

    Naudojamas tam tikro lauko indeksui sukurti

    Naudojamas esamam indeksui ištrinti

    Naudojamas kuriant naują schemą duomenų bazėje

    Naudojamas schemai pašalinti iš duomenų bazės

    Naudojamas naujam domenui sukurti

    Naudojamas domenui iš naujo apibrėžti

    Naudojamas domenui pašalinti iš duomenų bazės

    Duomenų manipuliavimo kalba (DML)

    Duomenų manipuliavimo kalboje yra operatoriai, leidžiantys pasirinkti, pridėti, ištrinti ir keisti duomenis. Atminkite, kad šie pareiškimai nėra būtini norint užbaigti operaciją, kurios metu jie yra iškviečiami. DML teiginiai pateikti lentelėje. 2.

    2 lentelė

    SELECT teiginys kartais klasifikuojamas į atskirą kategoriją, vadinamą duomenų užklausos kalba (DQL).

    Žymeklio valdymo kalba (CCL)

    Žymeklio valdymo kalbos sakiniai naudojami žymekliui apibrėžti, SQL sakiniams paruošti vykdyti ir keletui kitų teiginių. CCL teiginiai pateikti lentelėje. 5.

    5 lentelė

    operatorius

    apibūdinimas

    Naudojamas užklausos žymekliui nustatyti

    Naudojamas užklausos planui apibūdinti. Šis teiginys yra „Microsoft SQL Server 7.0“ SQL plėtinys. Nereikia paleisti kitose DBVS. Pavyzdžiui, Oracle atveju turėtų būti naudojamas EXPLAIN PLAN sakinys

    Naudojamas žymekliui atidaryti, kai gaunami užklausos rezultatai

    Naudojamas norint gauti eilutę iš užklausos rezultatų

    Naudojamas žymekliui uždaryti

    Naudojamas SQL sakinio paruošimui vykdyti

    Naudojamas SQL sakiniui vykdyti

    Naudojamas parengtam prašymui apibūdinti

    Visi SQL sakiniai turi tokią formą, kaip parodyta pav. 2.

    Kiekvienas SQL sakinys prasideda veiksmažodžiu, kuris yra raktinis žodis, nurodantis, ką sakinys daro (SELECT, INSERT, DELETE...). Teiginyje taip pat yra sakinių, kuriuose pateikiama informacija apie tai, su kokiais duomenimis atliekamos operacijos. Kiekvienas sakinys prasideda raktiniu žodžiu, pvz., FROM, WHERE ir tt Sakinio struktūra priklauso nuo jo tipo – kai kuriuose sakiniuose yra lentelių ar laukų pavadinimai, kai kuriuose gali būti papildomų raktinių žodžių, konstantų ar išraiškų.

    Kaip galite vykdyti SQL sakinius?

    Visose šiuolaikinėse serverių DBVS (taip pat ir daugelyje populiarių darbalaukio DBVS) yra paslaugų, kurios leidžia vykdyti SQL sakinį ir peržiūrėti jo rezultatą. Visų pirma, „Oracle“ kliento dalyje yra „SQL Plus“ paslaugų programa, o „Microsoft SQL Server“ yra „SQL Query Analyzer“ priemonė. Būtent šią priemonę naudosime demonstruodami SQL galimybes, o kaip duomenų bazę, kurioje „eksperimentuosime“, naudosime „NorthWind“ duomenų bazę, įtrauktą į „Microsoft SQL Server 7.0“ paketą. Iš principo galite naudoti kitą duomenų bazę ir bet kurią kitą priemonę, kuri gali vykdyti SQL sakinius šioje duomenų bazėje ir rodyti rezultatus (arba net parašyti savo naudojant bet kurį kūrimo įrankį – Visual Basic, Delphi, C++Builder ir kt.). Tačiau bet kuriuo atveju rekomenduojama sukurti atsarginę šios duomenų bazės kopiją.

  • Dalintis