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.