SQL pamati

Uzziniet par DDL, DML un JOIN

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

Šis ievads par SQL pamatprincipiem īsumā aplūko dažas galvenās komandas, ko izmanto datu bāzu izveidei un modificēšanai.

Par SQL

Precīzs SQL izruna ir strīdīgs jautājums datu bāzu kopienā. Savā SQL standartā Amerikas Nacionālais standartu institūts paziņoja, ka oficiālais izrunājums ir "es esmu rinda el." Tomēr daudzi datu bāzes profesionāļi ir pieņēmuši slengu izrunu "turpinājums". Izvēle ir tava.

SQL nāk daudzos aromātos. Oracle datu bāzes izmanto savu patentēto PL / SQL. Microsoft SQL Server izmanto Transact-SQL. Visas variācijas ir balstītas uz nozares standarta ANSI SQL. Šis ievads izmanto ANSI saderīgas SQL komandas, kas darbojas ar jebkuru mūsdienu relāciju datu bāzes sistēmu.

DDL un DML

SQL komandas var iedalīt divās galvenajās apakšmaizēs. Datu definīcijas valoda (DDL) satur komandas, ko izmanto datu bāzu un datu bāzes objektu izveidei un iznīcināšanai. 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 (DML), lai tajā ievietotu, ielādētu un modificētu datus.

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 galvenokārt izmanto datu bāzes administratori datu bāzes projekta iestatīšanas un noņemšanas fāzēs. Tālāk ir apskatīta četru pamata DDL komandu struktūra un izmantošana:

CREATE Datu bāzes pārvaldības sistēmas instalēšana datorā ļauj jums izveidot un pārvaldīt daudzas neatkarīgas datu bāzes. Piemēram, jūs, iespējams, vēlēsities uzturēt jūsu klientu apkalpošanas nodaļas klientu personāla datu bāzi un personāla datu bāzi. CREATE komandu izmanto, lai izveidotu katru no šīm datubāzēm savā platformā. Piemēram, komanda:

CREATE DATABASE darbinieki

izveido tukšu datubāzi ar nosaukumu "darbinieki" jūsu DBVS. Pēc datubāzes izveides nākamais solis ir izveidot tabulas, kurās ir dati. Šim nolūkam var izmantot citu CREATE komandas variantu. Komanda:

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

izveido tabulu ar nosaukumu "personal_info" pašreizējā datubāzē. Šajā piemērā tabulā ir trīs atribūti: first_name, last_name un employee_id kopā ar kādu papildu informāciju.

USE. USE komanda ļauj jums norādīt datu bāzi, ar kuru vēlaties strādāt savā DBVS. Piemēram, ja jūs pašlaik strādāiet pārdošanas datu bāzē un vēlaties izlaist dažas komandas, kas ietekmēs darbinieku datubāzi, ievadiet tos ar šādu SQL komandu:

USE darbinieki

Pirms SQL komandu, kas manipulē ar datiem, izsniegšanas laikā ir svarīgi vienmēr apzināties datubāzi, kurā strādājat.

ALTER Kad esat izveidojis tabulu datu bāzē, iespējams, vēlēsities mainīt tās definīciju. ALTER komanda ļauj veikt izmaiņas tabulas struktūrā, to neizdzēšot un atjaunojot. Apskatiet šo komandu:

ALTER TABLE personal_info ADD algas naudu null

Šajā piemērā personal_info tabulā tiek pievienots jauns atribūts - darbinieka alga. Arguments "nauda" norāda, ka darbinieka alga tiek glabāta, izmantojot dolāru un centu formātu. Visbeidzot, "null" atslēgvārds informē datubāzi, ka tas ir kārtībā, jo šim laukam nav neviena konkrētā darbinieka vērtības.

DROP Datu definīcijas valodas galīgā komanda DROP ļauj mums noņemt visus datu bāzes objektus no mūsu DBVS. Piemēram, ja mēs vēlamies neatgriezeniski noņemt izveidoto person_info tabulu, mēs izmantosim šādu komandu:

DROP TABLE personal_info

Līdzīgi tālāk norādītā komanda tiks izmantota, lai noņemtu visu darbinieku datu bāzi:

DROP DATBASAS darbinieki

Izmantojiet šo komandu uzmanīgi. DROP komanda noņem no datu bāzes visas datu struktūras. Ja vēlaties noņemt atsevišķus ierakstus, izmantojiet datu pārraides valodas komandu DELETE.

Datu manipulācijas valodas komandas

Datu manipulācijas valodu (DML) izmanto, lai ielādētu, ievietotu un modificētu datu bāzi. Šīs komandas izmanto visi datu bāzes lietotāji ikdienas datu bāzes darbībā.

INSERT SQL INSERT komandu izmanto, lai pievienotu ierakstus esošai tabulai. Atgriežoties pie personas_info piemēriem no iepriekšējās sadaļas, iedomājieties, ka mūsu personāla departamentam savā datubāzē jāpievieno jauns darbinieks. Jūs varētu izmantot komandu, kas ir līdzīga tai:

INSERT INTO personal_info vērtības ("bart", "simpson", 12345, 45000 $)

Ņemiet vērā, ka ierakstā ir norādītas četras vērtības. Tie atbilst tabulas atribūtiem tādā secībā, kādā tie tika noteikti: first_name, last_name, employee_id un alga.

SELECT. SELECT komanda ir visbiežāk lietota SQL komanda komanda. Tas ļauj datu bāzes lietotājiem iegūt operatīvās datubāzes informāciju, kuru viņi vēlas. Apskatiet dažus piemērus, atkal izmantojot darbinieku datu bāzē esošo person_info tabulu.

Zemāk redzamā komanda izgūst visu informāciju, kas atrodas personal_info tabulā. Ņemiet vērā, ka zvaigznīte tiek izmantota kā SQL aizstājējzīme. Tas burtiski nozīmē "Atlasīt visu, sākot no personal_info tabulas".

SELECT * no personal_info

Alternatīvi lietotāji var vēlēties ierobežot atribūtus, kas tiek izgūti no datubāzes. Piemēram, Cilvēkresursu nodaļa var pieprasīt visu uzņēmuma darbinieku uzvārdu sarakstu. Šādai SQL komandai būtu jāatlasa tikai šī informācija:

SELECT last_name FROM personal_info

WHERE klauzulu var izmantot, lai ierobežotu atgūstamos ierakstus tiem, kas atbilst noteiktiem kritērijiem. Vadītājs varētu būt ieinteresēts pārskatīt darbinieku uzskaiti par visiem augsti apmaksātiem darbiniekiem. Tālāk norādītā komanda izgūst visus datus, kas ir iekļauti personal_info ierakstos, kuru algu vērtība pārsniedz 50 000 ASV dolāru:

SELECT * FROM personal_info KURA alga> $ 50000

ATJAUNINĀT. UPDATE komandu var izmantot, lai grozītu tabulā esošo informāciju, vai nu vairumā, vai atsevišķi. Pieņemsim, ka kompānija visiem darbiniekiem katru gadu izmaksā 3 procentus algu par algu. Šādu SQL komandu varētu izmantot, lai ātri to piemērotu visiem darbiniekiem, kas ir saglabāti datubāzē:

UPDATE personal_info SET alga = alga * 1.03

Kad jaunais darbinieks Bartam Simpsonam demonstrē sniegumu, kas pārsniedz pienākumu izpildi, vadība vēlas atzīt savus zvaigžņu sasniegumus ar $ 5000 palielinājumu. WHERE klauzulu varētu izmantot, lai izceltu Bartu šim paaugstinājumam:

UPDATE personal_info SET alga = alga + $ 5000 WHERE employee_id = 12345

DELETE Visbeidzot, ieskatieties komandu DELETE. Jūs atradīsiet, ka šīs komandas sintakse ir līdzīga citu DML komandu sintakse. Diemžēl mūsu jaunākais korporatīvo ienākumu pārskats nav pilnībā apmierināts ar cerībām, un sliktais Barts ir atlaists. Komandu DELETE ar WHERE klauzulu var izmantot, lai noņemtu savu ierakstu no person_info tabulas:

DELETE FROM personal_info KUR employee_id = 12345

JOINS

Tagad, kad esat uzzinājis SQL pamatus, ir pienācis laiks pāriet uz vienu no spēcīgākajiem jēdzieniem, ko valoda var piedāvāt - JOIN paziņojumu. JOIN paziņojums ļauj apvienot datus vairākās tabulās, lai efektīvi apstrādātu lielu datu apjomu. Šie paziņojumi ir vieta, kur atrodas datubāzes patiesā jauda.

Lai izpētītu pamata JOIN darbības izmantošanu datu apvienošanai 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 DISCIPLINARY_ACTION, kas tika izveidota ar šādu paziņojumu:

CREATE TABLE disciplinary_action (action_id int nav null, employee_id int nav null, komentāri char (500))

Šajā tabulā ir ietverti darbinieku disciplināro darbību rezultāti. Jūs ievērosiet, ka tajā nav nekādas informācijas par darbinieku, izņemot darbinieku skaitu. Ir viegli iedomāties daudzus scenārijus, kuros vēlaties apvienot informāciju no tabulām DISCIPLINARY_ACTION un PERSONAL_INFO.

Pieņemsim, ka esat uzdots izveidot ziņojumu, kurā uzskaitītas disciplinārās darbības, kas veiktas pret visiem darbiniekiem, kuru alga pārsniedz 40 000 ASV dolāru. Šajā gadījumā JOIN darbības izmantošana ir vienkārša. Mēs varam iegūt šo informāciju, izmantojot šādu komandu:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.comments FROM personal_info, disciplinary_action KUR personal_info.employee_id = disciplinary_action.employee_id UN personal_info.salary> 40000

Kods nosaka divas tabulas, kuras mēs vēlamies pievienoties klajā FROM, un pēc tam ietver klauzulu WHERE paziņojumu, lai ierobežotu rezultātus ar ierakstiem, kuriem bija atbilstošie darbinieku identifikatori, un atbilstu mūsu kritērijiem algas lielumam virs 40 000 ASV dolāru.