13 Pinakamahalagang SQL ay Nag-uutos sa Anumang Programmer Dapat Malaman

13 Pinakamahalagang SQL ay Nag-uutos sa Anumang Programmer Dapat Malaman

Hinahatid ng mga database ang modernong web. Ang bawat malaki o pabago-bagong website ay gumagamit ng isang database sa ilang paraan, at kapag isinama Structured Query Language (SQL) , ang mga posibilidad para sa pagmamanipula ng data talaga ay walang katapusan. Kung alam mo na ang SQL, siguraduhing checkout mo ang mga kasanayang ito sa pagprograma na dapat malaman ng lahat ng mga developer ng website.





Ngayon ay ipapakita ko sa iyo ang ilan sa pangunahing utos ng SQL kailangan mong malaman bilang isang programmer.





Maraming mga pangalan para sa data na ibinalik mula sa isang database table. Ang data ay karaniwang tinutukoy bilang Mga hilera , Talaan , o Tuples . Gagamitin ko ang mga term na ito na mapagpapalit sa buong artikulong ito.





Paunang salita

Ang lahat ng mga halimbawa ngayon ay ibabatay sa apat na kathang-isip na talahanayan. Ang kostumer naglalaman ang talahanayan ng pangalan at edad ng mga customer:

Ang taas Naglalaman ang talahanayan ng pangalan at taas ng sinumang tao:



Ang mga tauhan Naglalaman ang talahanayan ng pangalan at edad ng mga miyembro ng kawani - eksaktong kapareho ng talahanayan ng customer:

Tumawag ang pangwakas na mesa mga tao naglalaman ng pangalan at edad ng mga tao, tulad ng mga talahanayan ng customer at staff:





1. Piliin

Ang pumili ka ang pahayag ay ang pinakasimpleng, at mahalaga na maunawaan mo ito dahil ito ay underpins halos lahat ng iba pang mga utos. Ito ay itinuturing na isang pinakamahusay na kasanayan upang isulat ang iyong nakareserba na mga salita ng SQL sa malaki, dahil ginagawang mas madali ang utos na basahin at maunawaan.

Tulad ng ipinahihiwatig ng pangalan nito, ang pagpili ay nakasanayan na pumili ka data mula sa isang database. Narito ang pinakasimpleng paggamit:





SELECT * FROM table;

Mayroong dalawang bahagi dito. Ang unang bahagi ( PUMILI * ) tinutukoy kung aling mga haligi ang nais mong piliin. Ipinapahiwatig ng asterisk na nais mong piliin ang lahat ng mga haligi sa talahanayan. Ang pangalawang bahagi ( MULA sa mesa ) ay nagsasabi sa iyong database engine kung saan mo nais na makuha ang data na ito. Palitan ang 'talahanayan' ng pangalan ng iyong talahanayan ng database.

Ang select na ito ay kilala bilang 'select star.' Ang paggamit ng asterisk ay isang mahusay na paraan upang malaman kung anong data ang nasa isang talahanayan, ngunit hindi ko inirerekumenda na gamitin mo ito para sa anumang code ng paggawa. Kapag gumagamit ng isang piling bituin, nasa engine ng database na ipakita sa iyo ang nais mong data. Wala kang kontrol sa pagkakasunud-sunod na ibinalik ang data, kaya kung ang isang tao ay nagdaragdag ng isang bagong haligi sa talahanayan, maaari mong makita ang iyong mga variable sa wika ng iyong programa na hindi na kumakatawan sa tamang data. Buti na lang at may solusyon.

Malinaw mong masasabi kung aling mga haligi ang nais mong kunin, tulad nito:

SELECT age, name FROM people;

Kinukuha ng query na ito ang mga haligi ng 'edad' at 'pangalan' mula sa talahanayan na 'tao'. Ang pagiging tahasang ito ay maaaring maging medyo nakakapagod kung mayroon kang maraming data, ngunit ang paggawa nito ay makakabawas ng mga problema sa hinaharap, kasama ang paggawa ng iyong SQL na mas madaling maunawaan ng anumang mga programmer sa hinaharap.

Kung nais mong pumili ng isang karagdagang piraso ng data, ngunit hindi ito nakaimbak sa alinman sa iyong mga talahanayan, magagawa mo ito tulad nito:

SELECT age, '1234' FROM people;

Anumang string sa loob ng solong mga quote ay ibabalik sa halip na tumugma sa isang pangalan ng haligi.

2. Kung saan

Ang piling utos ay mahusay para sa pagkuha ng data, ngunit paano kung nais mong salain ang mga resulta nang kaunti pa? Kumusta naman ang pagkuha lamang ng mga taong may asul na mata? Kumusta naman ang mga taong ipinanganak noong Enero na nagtatrabaho bilang mekaniko? Dito ay ang kung saan papasok ang utos. Pinapayagan kang mag-apply ng mga kundisyon sa napili, at idagdag mo lamang ito sa dulo ng pahayag:

SELECT age, name FROM people WHERE age > 10;

Ang query na ito ay pinaghihigpitan sa mga taong mas matanda sa 10 taong gulang. Maaari mong pagsamahin ang maraming mga kundisyon gamit ang AT operator:

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

Ang AT gumagana ang utos na eksaktong katulad nito sa wikang Ingles: nalalapat ito ng isa pang kundisyon sa pahayag. Sa halimbawang ito, ang ibinalik na data ay anumang mga talaan na may edad sa pagitan ng 10 at 20. Dahil walang mga tumutugmang resulta, walang data na naibalik.

kung paano patakbuhin ang mac sa windows

Ang isa pang utos na maaaring magamit kasabay nito ay O kaya . Narito ang isang halimbawa:

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

Ang query na ito ay nagbabalik ng mga talaan kung saan ang edad ay higit sa 10, o ang pangalan ay katumbas ng 'Joe'. Pansinin kung paano mayroong isang katumbas na pag-sign? Karamihan sa mga wika ng programa ay gumagamit ng dobleng katumbas (==) upang suriin para sa pagkakapareho. Hindi ito kinakailangan para sa karamihan ng mga database engine (ngunit maaari itong bawat kapaligiran, kaya't i-double check muna).

3. Order

Ang umorder ginagamit ang utos upang pag-uri-uriin ang mga resulta na ibinalik. Isa pa itong madaling gamitin. Idagdag lamang ito sa dulo ng iyong pahayag:

SELECT name, age FROM people ORDER BY age DESC;

Kailangan mong tukuyin ang haligi at ang pagkakasunud-sunod, na maaaring ASC para sa pag-akyat o DESC para sa pagbaba. Maaari kang mag-order sa pamamagitan ng maraming mga haligi tulad nito:

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

INIUTOS NI ay marahil ang pinaka-kapaki-pakinabang kapag isinama sa iba pang mga utos. Hindi lahat ng mga query ay magbabalik ng data sa isang lohikal o nakaayos na paraan - hinahayaan ka ng utos na ito na baguhin iyon.

4. Sumali

Ang sumali ka utos ay ginagamit upang sumali ka nauugnay na data na nakaimbak sa isa o higit pang mga talahanayan. Ikaw sumali ka ang pangalawang talahanayan sa unang talahanayan, at tukuyin kung paano nakakonekta ang data. Narito ang isang pangunahing halimbawa:

bakit wala akong mga karapatan sa admin sa aking computer
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Mayroong ilang mga bagay na nangyayari dito. Kailangan mong magsimula sa syntax na 'LEFT JOIN', na tumutukoy na nais mong sumali sa isang talahanayan gamit ang isang sumali sa uri na natitira. Susunod, tukuyin ang talahanayan na nais mong sumali (taas). Ang GAMIT (pangalan) Nakasaad sa syntax na ang pangalan na haligi ay matatagpuan sa parehong mga talahanayan, at dapat itong gamitin bilang isang susi upang pagsamahin ang mga talahanayan nang magkasama.

Huwag mag-alala kung ang iyong mga haligi ay may iba't ibang mga pangalan sa bawat talahanayan. Maaari mong gamitin ang 'ON' sa halip na 'PAGGAMIT':

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

Malinaw na isinasaad ng nasa pahayag kung aling mga haligi ang dapat i-key. Mayroong maraming mga uri ng pagsali, at magtatagal upang masuri ang mga detalye para sa bawat isa, kaya narito ang isang mabilis na buod ng kanilang mga gamit:

  • (INNER) SUMALI - Ibinabalik ang mga hilera na may isang tugma sa parehong mga talahanayan.
  • LEFT (OUTER) SUMALI - Ibinabalik ang lahat ng mga hilera mula sa kaliwang talahanayan, na may anumang mga tugma mula sa kanang mesa. Kung walang mga tugma, ang mga talaan ng kaliwang talahanayan ay ibinalik pa rin.
  • TAMA (LABAS) SUMALI - Ito ang kabaligtaran ng isang kaliwang pagsali: lahat ng mga hilera mula sa kanang mesa ay ibinalik, kasama ang anumang mga tugma sa kaliwang mesa.
  • BUONG (LABAS) SUMALI - Ibinabalik ang anumang mga talaan na may isang tugma sa alinman sa talahanayan.

Ang syntax na 'INNER' o 'OUTER' ay opsyonal. Maaari nitong gawing mas madaling maunawaan ang mga bagay, ngunit hindi mo ito dapat tukuyin para sa karamihan ng oras.

5. Mga Alias

Ngayon alam mo na ang mga pangunahing kaalaman, tingnan natin ang alyas utos Ginagamit ito upang pansamantalang palitan ang pangalan ng isang talahanayan - higit pa sa isang palayaw kaysa sa anupaman, dahil ang bagong pangalan na ito ay umiiral lamang sa loob ng indibidwal na transaksyon na iyong pinapatakbo. Narito kung paano mo ito magagamit:

SELECT A.age FROM people A;

Maaari kang gumamit ng anumang wastong pangalan na gusto mo, ngunit nais kong gumamit ng mga titik ng alpabeto. Bago ang bawat pangalan ng haligi, prefixed ang alias. Ang alias na ito ay nakatalaga sa talahanayan kaagad pagkatapos na ideklara. Ito ay eksaktong kapareho ng paggawa nito:

SELECT people.age FROM people;

Sa halip na mai-type ang isang mahabang pangalan ng talahanayan, maaari kang mag-type ng isang simple at madaling matandaan ang liham - ngunit ano ang punto? Kaya, kung pumipili ka mula sa higit sa isang mesa, madaling malito tungkol sa kung aling mga haligi ang kabilang sa aling mesa. Kung kapwa ang iyong mga talahanayan ay nagkakaroon ng mga haligi na may parehong pangalan, ang iyong query sa database ay maaaring mabigo ring tumakbo nang hindi tahasang sumangguni sa pangalan ng talahanayan o alias. Narito ang isang halimbawa na may dalawang talahanayan:

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

At narito ang parehong query sa mga alias:

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

Ang talahanayan ng tauhan ay binibigyan ng alyas ng 'A', at ang talahanayan ng mga customer ay binigyan ng alias ng 'B'. Ang mga talahanayan ng aliasing ay talagang makakatulong upang gawing mas madaling maunawaan ang iyong code, at binabawasan ang dami ng pag-type na dapat mong gawin.

Maaari mo ring palitan ang pangalan ng isang haligi gamit ang isang alias gamit ang 'AS' na utos:

SELECT age AS person_age FROM people;

Kapag naipatakbo ang query na ito, tatawagin na ang haligi na 'person_age' sa halip na 'edad'.

6. Unyon

Union ay isang mahusay na utos. Pinapayagan kang magdagdag ng mga hilera sa bawat isa. Hindi tulad ng pagsali sa aling mga idagdag na tumutugma sa mga haligi, ang unyon ay maaaring magdagdag ng mga hindi kaugnay na mga hilera na ibinigay na mayroon silang parehong numero at pangalan ng mga haligi. Narito kung paano mo ito magagamit:

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

Maaari mong isipin ang unyon bilang isang paraan ng pagsasama-sama ng mga resulta ng dalawang query. Ibabalik lamang ng isang unyon ang mga resulta kung saan mayroong isang natatanging hilera sa pagitan ng dalawang query. Maaari mong gamitin ang syntax na 'UNION ALL ALL' upang maibalik ang lahat ng data, anuman ang mga duplicate:

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

Pansinin kung paano nagbabago ang pagkakasunud-sunod ng mga hilera? Ang Union ay nagpapatakbo sa pinaka mahusay na paraan, kaya ang naibalik na data ay maaaring mag-iba ayon sa pagkakasunud-sunod.

Ang isang posibleng kaso ng paggamit para sa unyon ay isang subtotal: maaari mong i-unyon ang isang query ng kabuuan sa isang query ng mga indibidwal na kabuuan para sa isang partikular na senaryo.

7. Ipasok

Alam mo na ngayon ang lahat tungkol sa pagkuha ng data mula sa isang database, ngunit paano ang tungkol sa pagpasok nito? Dito ay ang ipasok dumating ang utos. Narito ang isang halimbawa:

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

Kailangan mong tukuyin ang pangalan ng talahanayan (mga tao), at ang mga haligi na nais mong gamitin (pangalan at edad). Pagkatapos ay ginagamit ang syntax na 'VALUES' upang maibigay ang mga halagang isisingit. Ang mga ito ay dapat na nasa parehong pagkakasunud-sunod ng mga haligi na dating tinukoy.

Hindi mo maaaring tukuyin ang kung saan sugnay para sa mga pagsingit, at kailangan mong tiyakin na sundin mo ang anumang kinakailangang mga hadlang sa talahanayan na naroroon.

8. Update

Matapos ang pagpasok ng ilang data, natural lamang na kailanganing baguhin ang mga tukoy na hilera. Narito ang pag-update utos na syntax:

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

Kailangan mong tukuyin ang talahanayan na nais mong baguhin, at pagkatapos ay gamitin ang syntax na 'I-SET' upang tukuyin ang mga haligi at ang kanilang mga bagong halaga. Ang halimbawang ito ay mabuti, ngunit maa-update nito ang bawat solong talaan - isang bagay na hindi palaging kanais-nais!

Upang maging mas tiyak, maaari mong gamitin ang mga sugnay na 'WHERE' tulad ng paggawa ng isang pagpipilian:

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

Maaari mo ring tukuyin ang maraming mga kundisyon gamit ang 'AT' at 'O':

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

Pansinin kung paano ginagamit ang mga braket upang mapigilan ang mga kundisyon.

maglipat ng mga kanta mula sa ipod patungo sa itune

9. Upsert

Oops ay isang kakaibang tunog ng tunog, ngunit ito ay isang hindi kapani-paniwalang kapaki-pakinabang na utos. Sabihin na mayroon kang isang hadlang sa iyong talahanayan, at tinukoy mo na nais mo lamang ang mga tala na may mga natatanging pangalan - hindi mo nais na mag-imbak ng dalawang mga hilera na may parehong pangalan, halimbawa. Kung sinubukan mong ipasok ang maraming halaga ng 'Joe', ang iyong database engine ay magtatapon ng isang error at tumanggi na gawin ito (medyo tama). Pinapayagan ka ng isang UPSERT na mag-update ng isang talaan kung mayroon na. Ito ay hindi kapani-paniwalang kapaki-pakinabang! Kung wala ang utos na ito, kakailanganin mong magsulat ng maraming lohika upang suriin muna kung mayroong isang talaan, ipasok kung hindi, kung hindi man makuha ang tamang pangunahing key at pagkatapos ay i-update.

Sa kasamaang palad, ang upserts ay naiipatupad nang magkakaiba sa iba't ibang mga database engine. Kamakailan lamang nakakuha ng kakayahang ito ang PostgreSQL, samantalang ang MySQL ay mayroon na nito sa medyo matagal. Narito ang MySQL syntax para sa sanggunian:

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

Pansinin kung paano ito mahalagang isang pag-update at isang pahayag ng insert, na maaaring buod bilang 'pag-update kung nabigo ang insert.'

10. Tanggalin

Tanggalin ay ginagamit upang alisin ang lahat ng mga tala - maaari itong maging lubos na nakakasama kung inabuso! Ang pangunahing syntax ay napakadaling gamitin:

DELETE FROM people;

Tulad ng karamihan sa iba pang mga utos, tatanggalin ito lahat ng bagay ! Kailangan mong gumamit ng isang kung saan paghihigpitan ito sa isang bahagyang mas malinaw na bilang ng mga hilera - perpekto isa:

DELETE FROM people WHERE name = 'Joe';

Kung nagkakaroon ka ng isang sistema, madalas na matalino na magpatupad ng isang 'soft delete.' Hindi mo talaga pinatakbo ang utos na tanggalin, sa halip ay lumikha ka ng isang tinanggal na haligi, at pagkatapos ay suriin ang haligi na iyon sa iyong mga napili - maiiwasan nito ang maraming potensyal na kahihiyan kung maaari mong mabilis at madaling makuha ang sinasabing tinanggal na mga tala. Hindi ito kapalit ng wastong pag-backup, gayunpaman.

11. Lumikha ng Talahanayan

Ang lumikha ng mesa ginagamit ang utos upang lumikha ng mga talahanayan. Ito ay isa pang napaka-simple:

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

Pansinin kung paano ang mga pangalan ng haligi at hadlang sa loob ng mga braket, at ang mga haligi ay binibigyan ng isang naaangkop na datatype. Ang isang pangunahing susi ay tinukoy, tulad ng kinakailangan sa anumang mahusay na disenyo ng database.

12. Pagbabago ng Talahanayan

Ang baguhin ang mesa ginagamit ang utos upang baguhin ang istraktura ng isang talahanayan. Ito ay bahagyang limitado, dahil hindi ka hahayaan ng iyong database na magbago ng isang talahanayan kung ang umiiral na data ay magiging sanhi ng isang salungatan - pagbabago ng isang string sa isang integer, halimbawa. Sa mga pagkakataong iyon, ayusin muna ang data, pagkatapos ay baguhin ang talahanayan. Narito ang isang halimbawa:

ALTER TABLE people ADD height integer;

Ang halimbawang ito ay nagdaragdag ng isang haligi na tinatawag na 'taas' ng uri ng integer sa talahanayan ng mga tao. Walang talagang limitasyon sa kung ano ang maaari mong baguhin.

13. Drop Table

Ang pangwakas na utos ay drop table . Isipin ito bilang pagtanggal, ngunit sa halip na tanggalin ang isang solong talaan, tinatanggal nito ang bawat solong tala kasama ang talahanayan! Narito kung paano mo ito magagamit:

DROP TABLE people;

Ito ay lubos na isang marahas na utos, at walang dahilan na kailangan itong mai-program sa iyong system. Dapat lamang itong gumanap nang manu-mano sa karamihan ng mga kaso, at maaari ito napaka nakasisira.

Yan lamang para sa araw na ito. Inaasahan kong natutunan mo ang ilang mga kapaki-pakinabang na trick! Maaari mong malaman kung paano gumawa ng isang website , at pagkatapos ay gamitin ang iyong mga kasanayang bagong natagpuan upang gawin itong pabagu-bago - tiyakin lamang na hindi mo nagagawa ang mga pagkakamali na ito o iiwan itong mahina sa SQL injection. Kung hindi ka sigurado na kailangan mong malaman ang SQL, naisaalang-alang mo ba ang isang static na generator ng site?

Bakit hindi mag-iwan ng komento sa ibaba gamit ang iyong mga paboritong tip at trick ng SQL?

Mga Kredito sa Larawan: HYS_NP / Shutterstock

Magbahagi Magbahagi Mag-tweet Email Ito ba ay Worth Upgrading sa Windows 11?

Ang Windows ay muling idisenyo. Ngunit sapat na ba iyon upang kumbinsihin kang lumipat mula sa Windows 10 patungong Windows 11?

Basahin Susunod
Mga Kaugnay na Paksa
  • Programming
  • Programming
  • SQL
Tungkol sa May-akda Joe Coburn(136 Mga Artikulo Na-publish)

Si Joe ay nagtapos sa Computer Science mula sa University of Lincoln, UK. Siya ay isang propesyonal na developer ng software, at kapag hindi siya lumilipad ng mga drone o sumusulat ng musika, madalas siyang matagpuan na kumukuha ng mga larawan o gumawa ng mga video.

Higit pa Mula kay Joe Coburn

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe