Pagpapalit ng mga pangalan ng column

Kailangan din nating harapin ang mga pangalan ng column. Kung hindi, inuulit namin ang pangalan at id ng mga pangalan, ngunit naglalaman ang mga ito ng ibang data. Sa kabilang banda, mayroong unang id column at employee_id column, na naglalaman ng parehong data.

Sumulat tayo ng isang query, kung saan magkakaroon lamang ng mga kinakailangang column, at palitan din ang pangalan ng mga column na may parehong mga pangalan:

SELECT  
    task.id AS task_id,  
    task.name AS task_desc, 
    task.deadline AS deadline, 
    emploee.id AS emploee_id,  
    emploee.name AS emp_name,  
emploee.occupation AS	
    emp_occupation 
FROM employee, task
WHERE emploee.id = task.emploee_id

At ang resulta ng query na ito:

task_id task_desc deadline emploee_id emp_name emp_occupation
1 Ayusin ang isang bug sa frontend 2022-06-01 1 Ivanov Ivan Programmer
2 Ayusin ang isang bug sa backend 2022-06-15 2 Petrov Petr Programmer
7 Masiyahan sa buhay (WALA) 4 Rabinovich Moisha Direktor
3 Bumili ng kape 2022-07-01 5 Kirienko Anastasia Tagapamahala ng Opisina
4 Bumili ng kape 2022-08-01 5 Kirienko Anastasia Tagapamahala ng Opisina
5 Bumili ng kape 2022-09-01 5 Kirienko Anastasia Tagapamahala ng Opisina
8 Masiyahan sa buhay (WALA) 6 Vaska pusa

Mahusay, matagumpay na nalutas ang problema sa hindi maintindihang mga pangalan ng column. Ang query ay naging medyo mahaba, ngunit ang lahat ay malinaw sa resultang talahanayan. At walang dagdag na column.

Mga alyas sa talahanayan

Minsan ang mga pangalan ng talahanayan ay masyadong mahaba at tumatagal ng maraming espasyo sa query. Samakatuwid, ang mga tagalikha ng SQL, upang mapabuti ang pagiging madaling mabasa, tulad ng sa kaso ng mga hanay, ay nag-alok ng kakayahang tukuyin ang mga alias sa talahanayan.

Ang pangkalahatang anyo ng mga alias (table alias) ay ang mga sumusunod:

FROM table1 alias1, table2 alias2

Isulat muli natin ang ating nakaraang query na may mga maiikling alias:

SELECT  
    t.id AS task_id,  
    t.name AS task_desc, 
    t.deadline AS deadline, 
    e.id AS emploee_id,  
    e.name AS emp_name,  
    e.occupation AS emp_occupation 
    FROM employee e, task t 
WHERE e.id = t.emploee_id

Ang pagiging madaling mabasa ay bahagyang nabawasan, ngunit ito ay dahil ang mga pangalan ng mga talahanayan ay simple at malinaw sa una. Maaaring ganito rin ito:

SELECT  
  	task.id AS task_id,  
  	task.name AS task_desc, 
  	task.deadline AS deadline, 
  	emploee.id AS emploee_id,  
  	emploee.name AS emp_name,  
emploee.occupation AS	
  	emp_occupation 
FROM  
  	Microsoft_it_department_employee employee, 
  	Year2022_priority_task task 
WHERE emploee.id = task.emploee_id 

At sa kasong ito, ang mga alias ay kapaki-pakinabang na, tama ba? ;)

pangunahing susi

At isa pang mahalagang impormasyon tungkol sa mga talahanayan. Tandaan na mayroon kaming column na employee_id sa talahanayan ng gawain? Gamit ito, isinangguni namin ang ID ng empleyado mula sa talahanayan ng empleyado.

Kung gusto naming sumangguni mula sa isang talahanayan patungo sa mga hilera ng isa pang talahanayan, ang tinutukoy na talahanayan ay dapat na may isang column na may ID, na tinatawag ding pangunahing key - PRIMARY KEY .

Kadalasan, ito ay isang espesyal na idinagdag na column na ang uri ng halaga ay int . Kapag nagdaragdag ng mga tala sa isang talahanayan, awtomatikong itinatakda ng SQL ang halaga ng column na ito.

Pagkatapos ay maraming bagay ang nakatali sa mga susi na ito:

  • pag-uugnay ng iba't ibang mga talahanayan sa bawat isa;
  • mabilis na paghahanap at pag-filter sa pamamagitan ng id;
  • integridad ng data sa database (walang mga sanggunian sa hindi umiiral na id);
  • pagtanggal ng data na walang tinutukoy;
  • at marami pang iba.

Sa pamamagitan ng paraan, may mga sitwasyon kapag ang isang talahanayan ay may tinatawag na natural na susi . Ito ay kapag mayroong isang kolum na ang mga nilalaman ay nagpapahiwatig ng pagiging natatangi. Halimbawa, nagpasya kaming idagdag sa talahanayan ng empleyado:

  • Ang pagkakasunud-sunod ng kanilang pagdating sa kumpanya;
  • Numero ng buwis;
  • Numero at serye ng pasaporte.

Minsan ang mga taga-disenyo ng database ay gumagamit ng natural na susi bilang pangunahing susi, ngunit kadalasan ang mga ito ay ginagamit nang hiwalay. Pagkatapos ng lahat, ang mga tala ay maaaring tanggalin, baguhin, at iba pa.

Sa palagay ko nagbabasa ka ng mga kuwento sa Internet kapag ang mga bailiff ay nagsabit ng mga utang ng kanyang buong pangalan sa isang tao? Ito ay nauugnay lamang sa konsepto ng isang natatanging susi. Napakaginhawa para sa mga bangko at bailiff na maghanap para sa isang tao sa pamamagitan ng buong pangalan at taon ng kapanganakan. At sa 99% ng mga kaso ito ay sapat na upang makilala ang isang tao.

Ngunit ang natitirang <1% ay buong pangalan, na may parehong taon ng kapanganakan. Sa buhay ng bawat isa sa atin, malamang na walang ganoong mga tao, ngunit sa pambansang antas, mayroon. Sa pangkalahatan, kung ikaw ay nagsusulat ng software o nagdidisenyo ng isang database, kung gayon ito ay kapaki-pakinabang na malaman na ito ay maaari ding mangyari.