13 vissvarīgākās SQL komandas, kas jāzina jebkuram programmētājam

13 vissvarīgākās SQL komandas, kas jāzina jebkuram programmētājam

Mūsdienu tīmekli virza datubāzes. Katra liela vai dinamiska vietne kaut kādā veidā izmanto datu bāzi un kopā ar to Strukturēta vaicājumu valoda (SQL) , iespējas manipulēt ar datiem patiešām ir bezgalīgas. Ja jūs jau zināt SQL, pārbaudiet šīs programmēšanas prasmes, kas jāzina visiem vietņu izstrādātājiem.





Šodien es jums parādīšu dažus galvenās SQL komandas jums jāzina kā programmētājam.





No datu bāzes tabulas atgrieztajiem datiem ir daudz nosaukumu. Datus parasti sauc par Rindas , Ieraksti , vai Tuples . Visus rakstus es lietošu šos terminus savstarpēji aizstājot.





Priekšvārds

Visi šodienas piemēri būs balstīti uz četrām izdomātām tabulām. The klients tabulā ir norādīts klientu vārds un vecums:

The augstumos tabulā ir jebkuras personas vārds un augums:



The personāls tabulā ir darbinieku vārds un vecums - tieši tāds pats kā klientu tabulā:

Nosauca galīgo galdu cilvēki satur cilvēku vārdu un vecumu, tāpat kā klientu un darbinieku tabulas:





1. Izvēlieties

The izvēlieties paziņojums ir vienkāršākais, un ir svarīgi to saprast, jo tas ir gandrīz visu pārējo komandu pamatā. Tiek uzskatīts, ka paraugprakse ir rakstīt rezervētos SQL vārdus ar lielajiem burtiem, jo ​​tas atvieglo komandas lasīšanu un izpratni.

Kā norāda nosaukums, select ir pieradis izvēlieties dati no datu bāzes. Šeit ir vienkāršākais lietojums:





SELECT * FROM table;

Tam ir divas daļas. Pirmā daļa ( SELECT * ) norāda, kuras slejas vēlaties atlasīt. Zvaigznīte norāda, ka vēlaties atlasīt visas tabulas slejas. Otrā daļa ( NO tabulas ) norāda jūsu datu bāzes dzinējam, no kurienes vēlaties iegūt šos datus. Aizstājiet tabulu ar datubāzes tabulas nosaukumu.

Šo atlasi sauc par “atlasiet zvaigzni”. Zvaigznītes izmantošana ir labs veids, kā noskaidrot, kādi dati ir tabulā, taču es neiesaku tos izmantot nevienam ražošanas kodam. Izmantojot atlasīto zvaigzni, datubāzes dzinēja uzdevums ir sniegt jums vēlamos datus. Jums nav nekādas kontroles pār datu atdošanas secību, tādēļ, ja kāds pievieno tabulai jaunu kolonnu, iespējams, mainīgie jūsu programmēšanas valodā vairs neatbilst pareizajiem datiem. Par laimi, ir risinājums.

Varat skaidri norādīt, kuras slejas vēlaties izgūt, piemēram:

SELECT age, name FROM people;

Šis vaicājums izgūst slejas “vecums” un “vārds” no tabulas “cilvēki”. Ja jums ir daudz datu, tas var būt nedaudz apnicīgi, taču šādi rīkojoties, nākotnē samazināsies problēmas, kā arī būs vieglāk programmētājiem saprast jūsu SQL.

Ja vēlaties atlasīt papildu datus, bet tie nav saglabāti nevienā no jūsu tabulām, varat to izdarīt šādi:

SELECT age, '1234' FROM people;

Jebkura virkne atsevišķos pēdiņās tiks atgriezta, nevis kolonnas nosaukumam.

2. Kur

Komanda select ir lieliska datu izgūšanai, bet ko darīt, ja vēlaties vēl nedaudz filtrēt rezultātus? Kā būtu ar to, lai izgūtu tikai tos cilvēkus, kuriem ir zilas acis? Kā ir ar cilvēkiem, kuri dzimuši janvārī un strādā par mehāniķiem? Šī ir vieta, kur kur komanda nāk. Tas ļauj jums piemērot nosacījumus atlasīšanai, un jūs to vienkārši pievienojat paziņojuma beigās:

SELECT age, name FROM people WHERE age > 10;

Tagad šis vaicājums attiecas tikai uz cilvēkiem, kuri ir vecāki par 10 gadiem. Jūs varat apvienot vairākus nosacījumus, izmantojot UN operators:

SELECT age, name FROM people WHERE age > 10 AND age <20;

The UN komanda darbojas tieši tāpat kā angļu valodā: paziņojumam tiek piemērots cits nosacījums. Šajā piemērā atgrieztie dati būtu jebkuri ieraksti, kuru vecums ir no 10 līdz 20. Tā kā nav atbilstošu rezultātu, dati netiek atgriezti.

kā nodot mac uz roku

Vēl viena komanda, ko var izmantot kopā ar šo, ir VAI . Šeit ir piemērs:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Šis vaicājums atgriež ierakstus, kuru vecums ir lielāks par 10 gadiem vai vārds ir vienāds ar “Džo”. Ievērojiet, kā ir tikai viena vienādības zīme? Lielākā daļa programmēšanas valodu izmanto dubultus vienādojumus (==), lai pārbaudītu līdzvērtību. Tas nav vajadzīgs lielākajai daļai datu bāzu dzinēju (bet tas var būt ļoti atkarīgs no vides, tāpēc vispirms pārbaudiet vēlreiz).

3. Pasūtīt

The pasūtījums komanda tiek izmantota, lai kārtotu atgrieztos rezultātus. Tas ir vēl viens viegli lietojams. Vienkārši pievienojiet to sava paziņojuma beigās:

SELECT name, age FROM people ORDER BY age DESC;

Jums jānorāda kolonna un secība, kas var būt ASC uz augšupejošu vai DESC nolaišanai. Jūs varat pasūtīt pēc vairākām kolonnām:

SELECT name, age FROM people ORDER BY name ASC, age DESC

SAKĀRTOT PĒC iespējams, ir visnoderīgākais, ja to apvieno ar citām komandām. Ne visi vaicājumi atgriezīs datus loģiskā vai sakārtotā veidā - šī komanda ļauj to mainīt.

4. Pievienojieties

The pievienojies komanda ir pieradusi pievienojies saistītus datus, kas saglabāti vienā vai vairākās tabulās. Jūs pievienojies otro tabulu līdz pirmajai tabulai un norādiet, kā dati ir savienoti. Šeit ir pamata piemērs:

kā iemācīt bērniem rakstīt
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Šeit notiek dažas lietas. Jums jāsāk ar sinteksi “KREISAIS PIEVIENOŠANĀS”, kas norāda, ka vēlaties pievienoties tabulai, izmantojot kreisā tipa savienojumu. Pēc tam norādiet tabulu, kurai vēlaties pievienoties (augstumi). The USING (vārds) sintakse norāda, ka kolonna “nosaukums” ir atrodama abās tabulās un ka tā jāizmanto kā atslēga, lai tabulas savienotu kopā.

Neuztraucieties, ja kolonnās katrā tabulā ir dažādi nosaukumi. Varat izmantot “ON”, nevis “USING”:

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

Paziņojumā on skaidri norādīts, kuras kolonnas ir jāieslēdz. Ir daudz veidu pievienošanās, un, lai detalizēti izpētītu katru, būtu nepieciešams ilgs laiks, tāpēc šeit ir īss to izmantošanas kopsavilkums:

  • (IEKŠĒJA) PIEVIENOTIES - Atgriež rindas ar atbilstību abās tabulās.
  • KREISAIS (ĀRĒJĀ) PIEVIENOTIES - Atgriež visas rindas no kreisās tabulas ar visām atbilstībām no labās tabulas. Ja neatbilst, kreisās tabulas ieraksti joprojām tiek atgriezti.
  • PIEVIENOTIES PAREIZI (ĀRĒJI) - Tas ir pretstats kreisajam savienojumam: tiek atgrieztas visas rindas no labās tabulas, kā arī visas spēles kreisajā tabulā.
  • PILNĪBA (ĀRĒJA) - Atgriež visus ierakstus ar atbilstību jebkurā tabulā.

SINTA “IEKŠĒJĀ” vai “OUTER” nav obligāta. Tas var padarīt lietas vieglāk saprotamas, taču jums tas nav jānorāda lielākajā daļā laika.

5. Pseidonīmi

Tagad jūs zināt pamatus, apskatīsim pseidonīms komandu. Tas tiek izmantots, lai īslaicīgi pārdēvētu tabulu - vairāk segvārda nekā jebkas cits, jo šis jaunais nosaukums pastāv tikai atsevišķā jūsu veiktajā darījumā. Lūk, kā to izmantot:

SELECT A.age FROM people A;

Jūs varat izmantot jebkuru derīgu nosaukumu, kas jums patīk, bet man patīk izmantot alfabēta burtus. Pirms katras kolonnas nosaukuma aizstājvārds ir pievienots priedēklis. Šis aizstājvārds tiek piešķirts tabulai tūlīt pēc tā deklarēšanas. Tas ir tieši tas pats, kas to darīt:

SELECT people.age FROM people;

Tā vietā, lai rakstītu garu tabulas nosaukumu, varat ierakstīt vienkāršu un viegli atcerējamu burtu - bet kāda tam jēga? Ja izvēlaties no vairākām tabulām, ir viegli apjukt par to, kuras kolonnas pieder kādai tabulai. Ja abās jūsu tabulās ir slejas ar tādu pašu nosaukumu, jūsu datu bāzes vaicājums var pat neizdoties, skaidri nenorādot tabulas nosaukumu vai aizstājvārdu. Šeit ir piemērs ar divām tabulām:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

Un šeit ir tas pats vaicājums ar aizstājvārdiem:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

Personāla tabulai ir dots “A” aizstājvārds, bet klientu tabulai - “B”. Tabulu aizstāšana patiešām palīdz padarīt jūsu kodu vieglāk saprotamu un samazina rakstīšanas apjomu.

Varat arī pārdēvēt kolonnu ar aizstājvārdu, izmantojot komandu 'AS':

SELECT age AS person_age FROM people;

Izpildot šo vaicājumu, kolonnas nosaukums tagad būs “person_age”, nevis “age”.

6. Savienība

Savienība ir lieliska pavēle. Tas ļauj rindas pievienot viena otrai. Atšķirībā no savienojumiem, kas pievieno atbilstošās kolonnas, savienība var pievienot nesaistītas rindas, ja tām ir vienāds kolonnu skaits un nosaukums. Lūk, kā to izmantot:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Jūs varat domāt par savienību kā veidu, kā apvienot divu vaicājumu rezultātus. Savienība sniegs rezultātus tikai tad, ja starp abiem vaicājumiem ir unikāla rinda. Varat izmantot “UNION ALL” sintaksi, lai atgrieztu visus datus neatkarīgi no dublikātiem:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Ievērojiet, kā mainās rindu secība? Savienība darbojas visefektīvākajā veidā, tāpēc atgrieztie dati var atšķirties.

Iespējamais savienojuma izmantošanas gadījums ir starpsumma: jūs varat apvienot kopējās summas vaicājumu ar atsevišķu kopsummu vaicājumu konkrētam scenārijam.

7. Ievietot

Tagad jūs zināt visu par datu izgūšanu no datu bāzes, bet kā ar to ievietošanu? Šī ir vieta, kur ielikt komanda nāk. Šeit ir piemērs:

INSERT INTO people(name, age) VALUES('Joe', 102);

Jums jānorāda tabulas nosaukums (cilvēki) un ailes, kuras vēlaties izmantot (vārds un vecums). Pēc tam sintakste “VALUES” tiek izmantota, lai sniegtu ievadāmās vērtības. Tām jābūt tādā pašā secībā kā iepriekš norādītajām kolonnām.

Ieliktņiem nevar norādīt, kur ir klauzula, un jums ir jāpārliecinās, ka ievērojat visus nepieciešamos tabulas ierobežojumus.

8. Atjaunināt

Pēc dažu datu ievietošanas ir tikai dabiski mainīt konkrētas rindas. Lūk, Atjaunināt komandu sintakse:

UPDATE people SET name = 'Joe', age = 101;

Jums jānorāda tabula, kuru vēlaties mainīt, un pēc tam izmantojiet 'SET' sintaksi, lai norādītu slejas un to jaunās vērtības. Šis piemērs ir labs, taču tas atjauninās katru ierakstu - tas ne vienmēr ir vēlams!

Lai būtu precīzāk, varat izmantot klauzulas WHERE tāpat kā atlases laikā:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Jūs pat varat norādīt vairākus nosacījumus, izmantojot “AND” un “OR”:

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Ievērojiet, kā iekavas tiek izmantotas apstākļu ierobežošanai.

nezināma USB ierīces ierīces deskriptora pieprasījums neizdevās

9. Upsert

Hmm ... ir dīvaini skanīgs vārds, taču tā ir neticami noderīga komanda. Pieņemsim, ka jūsu tabulā ir ierobežojums un esat norādījis, ka vēlaties tikai ierakstus ar unikāliem nosaukumiem, piemēram, nevēlaties saglabāt divas rindas ar tādu pašu nosaukumu. Ja jūs mēģinātu ievietot vairākas “Joe” vērtības, jūsu datu bāzes dzinējs radītu kļūdu un atteiktos to darīt (pilnīgi pareizi). UPSERT ļauj atjaunināt ierakstu, ja tas jau pastāv. Tas ir neticami noderīgi! Bez šīs komandas jums būtu jāraksta daudz loģikas, lai vispirms pārbaudītu, vai ieraksts pastāv, ievietojiet, ja tā nav, pretējā gadījumā izgūstiet pareizo primāro atslēgu un pēc tam atjauniniet.

Diemžēl augšupielādes dažādos datu bāzes dzinējos tiek ieviestas atšķirīgi. PostgreSQL šo spēju ir ieguvis tikai nesen, turpretī MySQL tā ir bijusi jau labu laiku. Šeit ir MySQL sintakse atsaucei:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Ievērojiet, kā tas būtībā ir atjauninājums un ievietošanas paziņojums, ko var apkopot kā “atjaunināt, ja ievietošana neizdevās”.

10. Dzēst

Dzēst tiek izmantota, lai pilnībā noņemtu ierakstus - ļaunprātīgi izmantojot, tas var būt diezgan kaitīgs! Pamata sintaksi ir ļoti viegli lietot:

DELETE FROM people;

Tāpat kā lielākā daļa citu komandu, tā tiks izdzēsta viss ! Jums ir jāizmanto a, lai to ierobežotu ar nedaudz saprātīgāku rindu skaitu - ideālā gadījumā vienu:

DELETE FROM people WHERE name = 'Joe';

Ja izstrādājat sistēmu, bieži vien ir prātīgi ieviest “mīksto dzēšanu”. Jūs faktiski nekad neizpildāt komandu dzēst, bet izveidojat dzēstu kolonnu un pēc tam pārbaudāt šo sleju savos atlasos - tā var izvairīties no daudzām iespējamām neērtībām, ja varat ātri un viegli atgūt šķietami izdzēstos ierakstus. Tomēr tas neaizstāj pareizas dublējumkopijas.

11. Izveidot tabulu

The izveidot tabulu komandu izmanto, lai izveidotu tabulas. Tas ir vēl viens ļoti vienkāršs:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

Ievērojiet, kā kolonnu nosaukumi un ierobežojumi ir iekavās, un kolonnām tiek piešķirts atbilstošs datu tips. Primārā atslēga ir norādīta, kā tas ir nepieciešams jebkurā labā datubāzes dizainā.

12. Mainīt tabulu

The mainīt tabulu komandu izmanto, lai mainītu tabulas struktūru. Tas ir nedaudz ierobežots, jo jūsu datu bāze neļaus jums mainīt tabulu, ja esošie dati izraisītu konfliktu - piemēram, virknes maiņa uz veselu skaitli. Šādos gadījumos vispirms labojiet datus un pēc tam mainiet tabulu. Šeit ir piemērs:

ALTER TABLE people ADD height integer;

Šis piemērs cilvēku tabulai pievieno kolonnu, kuras nosaukums ir “augstums”. Nav īsti ierobežojumu tam, ko jūs varat mainīt.

13. Pilienu galds

Pēdējā komanda ir nolaižamais galds . Padomājiet par to kā par dzēšanu, bet tā vietā, lai izdzēstu vienu ierakstu, tas kopā ar tabulu noņem visus ierakstus! Lūk, kā to izmantot:

DROP TABLE people;

Tā ir diezgan krasa komanda, un nav iemesla to ieprogrammēt jūsu sistēmā. Lielākajā daļā gadījumu to vajadzētu veikt tikai manuāli, un tas var būt ļoti destruktīva.

Tas viss šodien. Es ceru, ka jūs iemācījāties dažus noderīgus trikus! Jūs varētu uzzināt, kā izveidot vietni , un pēc tam izmantojiet savas jauniegūtās prasmes, lai padarītu to dinamisku - tikai pārliecinieties, ka nepieļaujat šīs kļūdas un neatstājiet to neaizsargātu pret SQL ievadīšanu. Ja neesat pārliecināts, ka jums jāiemācās SQL, vai esat apsvēris statisku vietņu ģeneratoru?

Kāpēc nepalikt zemāk komentārā ar saviem iecienītākajiem SQL padomiem un trikiem?

Attēlu kredīti: HYS_NP/Shutterstock

Kopīgot Kopīgot Čivināt E -pasts Vai ir vērts jaunināt uz Windows 11?

Windows ir pārveidots. Bet vai ar to pietiek, lai pārliecinātu jūs pāriet no Windows 10 uz Windows 11?

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Programmēšana
  • SQL
Par autoru Džo Koburns(Publicēti 136 raksti)

Džo ir absolvējis datorzinātnes Linkolnas universitātē, Lielbritānijā. Viņš ir profesionāls programmatūras izstrādātājs, un, kad viņš nelido ar droniem un neraksta mūziku, viņu bieži var atrast, fotografējot vai veidojot video.

Vairāk no Joe Coburn

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu