Ievads SQL pamatos

Strukturētā vaicājuma valoda (SQL) ir viens no mūsdienu datu bāzes arhitektūras pamatelementiem. SQL nosaka metodes, ko izmanto, lai izveidotu un manipulētu ar relāciju datubāzēm visās galvenajās platformās. No pirmā acu uzmetiena valoda var šķist biedējoša un sarežģīta, taču tas nav tik grūti.

Par SQL

Pareiza SQL izruna ir strīdīgs jautājums datu bāzes kopienā. Amerikas Nacionālais standartu institūts savā SQL standartā paziņoja, ka oficiālā izruna ir "es queue" el. "Tomēr daudzi datu bāzes profesionāļi ir pievērsušies slenga izrunai" turpinājums ". Līdzīgi kā ar izrunu gada GIF, nav pareizas atbildes.

SQL nāk ar daudzām garšām. Oracle datu bāzēs tiek izmantots tā patentētais PL / SQL. Microsoft SQL Server izmanto Transact-SQL. Visas variācijas ir balstītas uz nozares standartu ANSI SQL.

Šajā ievadā tiek izmantotas ar ANSI saderīgas SQL komandas, kas darbojas jebkurā modernā relāciju datu bāzes sistēmā.

DDL un DML

SQL komandas var iedalīt divās galvenajās apakšvalodās. Datu definīcijas valoda satur komandas, kas tiek izmantotas, lai izveidotu un iznīcinātu datu bāzes un datu bāzes objektus. Pēc tam, kad datu bāzes struktūra ir definēta ar DDL, datu bāzes administratori un lietotāji var izmantot datu manipulācijas valodu, lai ievietotu, izgūtu un modificētu tajā ietvertos datus.

instagram viewer

SQL atbalsta trešo sintakses veidu, ko sauc Datu kontroles valoda. DCL regulē drošības piekļuvi objektiem datu bāzē. Piemēram, a DCL skripts piešķir vai atsauc noteiktiem lietotāju kontiem tiesības lasīt vai rakstīt tabulās vienā vai vairākos noteiktos datubāzes apgabalos. Lielākajā daļā pārvaldīto daudzlietotāju vidēs datu bāzes administratori parasti izpilda DCL skriptus.

Datu definēšanas valodas komandas

Datu definīcijas valoda tiek izmantota, lai izveidotu un iznīcinātu datu bāzes un datu bāzes objektus. Šīs komandas datu bāzes administratori galvenokārt izmanto datu bāzes projekta iestatīšanas un noņemšanas fāzēs. DDL griežas ap četrām primārajām komandām—izveidot, izmantot, mainīt, un nomest.

Izveidot

The izveidot komanda izveido datu bāzes, tabulas vai vaicājumus jūsu platformā. Piemēram, komanda:

IZVEIDOT DATU BĀZES darbiniekus;

izveido tukšu datu bāzi ar nosaukumu darbinieki savā DBVS. Pēc datu bāzes izveides nākamais solis ir izveidot tabulas, kas satur datus. Vēl viens izveidot komanda izpilda šo mērķi. Komanda:

CREATE TABLE personal_info (first_name char (20) nav null, last_name char (20) nav null, darbinieka_id int nav null);

izveido tabulu ar nosaukumu personal_info pašreizējā datu bāzē. Piemērā tabulā ir trīs atribūti: vārds, uzvārds, un darbinieka ID kopā ar kādu papildu informāciju.

Izmantot

The izmantot komanda norāda aktīvo datu bāzi. Piemēram, ja jūs pašlaik strādājat pārdošanas datu bāzē un vēlaties izdot dažas komandas, kas ietekmēs darbinieku datu bāzi, ievadiet tās ar šādu SQL komandu:

USE darbinieki;

Pirms SQL komandu izdošanas, kas manipulē ar datiem, vēlreiz pārbaudiet datu bāzi, kurā strādājat.

Mainīt

Kad esat izveidojis tabulu datu bāzē, modificējiet tās definīciju, izmantojot mainīt komandu, kas maina tabulas struktūru, to neizdzēšot un neatjaunojot. Apskatiet šo komandu:

ALTER TABLE personal_info PIEVIENOT algas naudu null;

Šis piemērs tabulai personal_info pievieno jaunu atribūtu - darbinieka algu. The naudu arguments norāda, ka darbinieka alga tiek glabāta, izmantojot dolāru un centu formātu. Visbeidzot nulle atslēgvārds norāda datu bāzei, ka ir pareizi, ja šajā laukā nevienam darbiniekam nav vērtības.

Drop

Datu definīcijas valodas pēdējā komanda nomest, noņem visus datu bāzes objektus no mūsu DBVS. Piemēram, lai neatgriezeniski noņemtu izveidoto personal_info tabulu, izmantojiet šādu komandu:

PILNU TABULA personal_info;

Tāpat visa komanda tiks izmantota, lai noņemtu visu darbinieku datu bāzi:

DROP DATABASE darbinieki;

Izmantojiet šo komandu piesardzīgi. The nomest komanda noņem visas datu struktūras no jūsu datu bāzes. Ja vēlaties noņemt atsevišķus ierakstus, izmantojiet dzēst Datu manipulācijas valodas komanda.

Datu manipulācijas valodas komandas

Datu manipulācijas valoda tiek izmantota, lai izgūtu, ievietotu un modificētu datu bāzes informāciju. Šīs DML komandas piedāvā tipisku sistēmu datu bāzes ikdienas mijiedarbībai.

Ievietojiet

The ievietot komanda pievieno ierakstus esošai tabulai. Atgriežoties pie personal_info piemēra no iepriekšējās sadaļas, iedomājieties, ka mūsu personāla departamentam ir jāpievieno jauns darbinieks savai datu bāzei. Izmantojiet komandu, kas ir līdzīga šim:

INSERT INTO personal_info
vērtības ('bart', 'simpson', 12345, 45000 USD);

Ņemiet vērā, ka ierakstam ir norādītas četras vērtības. Tie atbilst tabulas atribūtiem noteiktajā secībā: vārds, uzvārds, darbinieka ID un alga.

Atlasiet

The atlasiet komanda ir visbiežāk izmantotā komanda SQL. Tas iegūst konkrētu informāciju no darbības datu bāzes. Apskatiet dažus piemērus, atkal izmantojot tabulu personal_info no darbinieku datu bāzes.

Zemāk parādītā komanda izgūst visu informāciju, kas atrodas tabulā personal_info. Zvaigznīte ir aizstājējzīme SQL.

SELECT *
NO personal_info;

Varat arī ierobežot atribūtus, kas tiek izgūti no datu bāzes, norādot kas tiek atlasīts. Piemēram, Cilvēkresursu nodaļa var pieprasīt visu uzņēmuma darbinieku uzvārdu sarakstu. Šī SQL komanda izgūs tikai šo informāciju:

ATLASIET uzvārdu
NO personal_info;

The kur klauzula ierobežo iegūtos ierakstus tikai tiem, kas atbilst norādītajiem kritērijiem. Izpilddirektors varētu būt ieinteresēts pārskatīt visu augsti atalgoto darbinieku personāla uzskaiti. Šī komanda izgūst visus personal_info esošos datus ierakstiem, kuru algas vērtība pārsniedz 50 000 USD:

SELECT *
NO personal_info
KUR alga> 50000 USD;

Atjaunināt

The Atjaunināt komanda maina tabulā ietverto informāciju gan lielapjoma, gan atsevišķi. Pieņemsim, ka uzņēmums visiem darbiniekiem katru gadu palielina dzīves dārdzību par 3 procentiem. Šī SQL komanda piemēro šo kļūdu visiem datu bāzē saglabātajiem darbiniekiem:

UPDATE personal_info
SET alga = alga * 1,03;

Kad jaunais darbinieks Barts Simpsons demonstrē sniegumu, kas pārsniedz un pārsniedz pienākumu, vadība vēlas novērtēt viņa zvaigžņu sasniegumus ar 5000 ASV dolāru paaugstinājumu. WHERE klauzula izceļ Bartu par šo paaugstinājumu:

UPDATE personal_info
SET alga = alga + 5000
KUR darbinieks_id = 12345;

Dzēst

Visbeidzot, apskatīsim dzēst komandu. Jūs atradīsit, ka šīs komandas sintakse ir līdzīga citu DML komandu sintaksei. Komanda DELETE ar a kur klauzulu, noņemiet ierakstu no tabulas:

Dzēst no personal_info
KUR darbinieks_id = 12345;

DML atbalsta arī apkopotos laukus. Iekšā atlasiet paziņojums, matemātiskajiem operatoriem patīk summa un skaitīt apkopot datus vaicājuma ietvaros. Piemēram, vaicājums:

atlasiet skaitu (*) no personal_info;

skaita ierakstu skaitu tabulā.

Datu bāze pievienojas

A pievienoties paziņojums apvieno datus vairākās tabulās, lai efektīvi apstrādātu lielu datu daudzumu. Šie apgalvojumi ir tie, kur atrodas datubāzes patiesā vara.

Lai izpētītu pamata lietošanu pievienoties darbību, lai apvienotu datus no divām tabulām, turpiniet ar piemēru, izmantojot tabulu personal_info un pievienojiet papildu tabulu maisījumam. Pieņemsim, ka jums ir tabula ar nosaukumu disciplinārsods kas tika izveidots ar šādu paziņojumu:

IZVEIDOT TABULU disciplinārā iejaukšanās (action_id int not null, worker_id int not null, comments char (500));

Šajā tabulā ir iekļauti uzņēmuma darbinieku disciplinārsodu rezultāti. Tajā nav citas informācijas par darbinieku, izņemot darbinieka numuru.

Pieņemsim, ka jums ir uzdots izveidot ziņojumu, kurā uzskaitītas disciplinārās darbības, kas veiktas pret visiem darbiniekiem, kuru alga pārsniedz 40 000 USD. Šajā gadījumā JOIN operācijas izmantošana ir vienkārša. Iegūstiet šo informāciju, izmantojot šādu komandu:

ATLASIET personīgo_informāciju.vārdu, personālo_informāciju.priekšsēdētāja_nosaukumu, disciplināros ieejas.com
NO personal_info IEKŠĒJAIS PIEVIENOŠANĀS disciplinārais uz ON personal_info.employee_id = disciplinary_action.em darbinieks
KUR personal_info.alga> 40000;

Savienojumu veidi

Pievienošanās veidi SQL

Savienojumiem ir vairākas garšas. SQL priekšrakstā pirmā tabula (parasti tiek saukta A tabula vai Kreisais galds) pievienojas otrajai tabulai (parasti to sauc B tabula vai Labais galds) pozīciju apzinošā veidā. Tādējādi, ja pievienošanas paziņojumā mainīsit tabulu secību, operācijas rezultāti atšķirsies. Galvenie pievienošanās veidi ir:

  • Iekšējā pievienošanās: Atbilst tikai ierakstiem, kur ieslēgts nosacījums atbilst vieniem un tiem pašiem ierakstiem abās tabulās.
  • Ārējā pievienošanās: Atbilst tikai abu tabulu ierakstiem izslēgt - rezultāti, kas identificēti ieslēgts stāvoklī.
  • Tiesības pievienoties: Atbilst visiem B tabulas ierakstiem, kā arī A tabulas ierakstiem, kas atbilst ieslēgts stāvoklī.
  • Kreisais pievienošanās: Atbilst visiem A tabulas ierakstiem, kā arī B tabulas ierakstiem, kas atbilst ieslēgts stāvoklī.
  • Šķērsot pievienoties: Saskaņo visus ierakstus tā, it kā tabulas būtu identiskas. Šis process rada kaut ko sauc Dekarta produkts. Bieži vien savstarpēji savienojumi nav vēlami, jo tie atbilst katrai A tabulas rindai atsevišķi un katrai B tabulas rindai. Tādējādi, ja A tabulā tika piedāvāti pieci ieraksti, bet B tabulā - 9 ieraksti, savstarpējas savienošanas vaicājumā tiek piedāvātas 45 iegūtās rindas.