Modificarea numelor coloanelor

De asemenea, trebuie să ne ocupăm de numele coloanelor. În caz contrar, repetăm ​​numele nume și id, dar acestea conțin date diferite. Pe de altă parte, există prima coloană id și coloana employee_id, care conțin aceleași date.

Să scriem o interogare, în care vor fi doar coloanele necesare și, de asemenea, să redenumim coloanele cu aceleași nume:

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

Și rezultatul acestei interogări:

task_id task_desc Termen limită Emploee_id nume_emp emp_ocupaţie
1 Remediați o eroare pe front-end 2022-06-01 1 Ivanov Ivan Programator
2 Remediați o eroare pe backend 2022-06-15 2 Petrov Petr Programator
7 Bucură-te de viață (NUL) 4 Rabinovici Moisha Director
3 Cumpără cafea 2022-07-01 5 Kirienko Anastasia Manager de birou
4 Cumpără cafea 2022-08-01 5 Kirienko Anastasia Manager de birou
5 Cumpără cafea 2022-09-01 5 Kirienko Anastasia Manager de birou
8 Bucură-te de viață (NUL) 6 Vaska pisică

Grozav, problema cu numele coloanelor de neînțeles a fost rezolvată cu succes. Interogarea a devenit puțin lungă, dar totul este clar în tabelul rezultat. Și fără coloane suplimentare.

Aliasuri de tabel

Uneori, numele tabelelor sunt prea lungi și ocupă mult spațiu în interogare. Prin urmare, creatorii SQL, pentru a îmbunătăți lizibilitatea, ca și în cazul coloanelor, au oferit posibilitatea de a specifica aliasuri de tabel.

Forma generală a alias-urilor (alias-uri de tabel) este următoarea:

FROM table1 alias1, table2 alias2

Să rescriem interogarea anterioară cu pseudonime scurte:

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

Lizibilitatea a scăzut ușor, dar acest lucru se datorează faptului că numele tabelelor au fost inițial simple și clare. Ar putea fi la fel de bine așa:

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 

Și în acest caz, pseudonimele sunt deja utile, nu? ;)

cheia principala

Și încă o informație importantă despre tabele. Vă amintiți că aveam o coloană employee_id în tabelul de activități? Cu acesta, am făcut referire la ID-ul angajatului din tabelul angajaților.

Dacă vrem să ne referim dintr-un tabel la rândurile altui tabel, atunci tabelul la care se face referire trebuie să aibă o coloană cu un ID, care se mai numește și cheie primară - CHEIE PRIMARĂ .

Cel mai adesea, aceasta este o coloană special adăugată al cărei tip de valoare este int . Când adăugați înregistrări la un tabel, SQL setează automat valoarea acestei coloane.

Apoi, multe lucruri sunt legate de aceste chei:

  • legarea diferitelor tabele între ele;
  • căutare rapidă și filtrare după id;
  • integritatea datelor în baza de date (fără referiri la id inexistent);
  • ștergerea datelor la care nimeni nu se referă;
  • si multi multi altii.

Apropo, există situații în care un tabel are o așa-numită cheie naturală . Acesta este momentul în care există o coloană al cărei conținut implică unicitate. De exemplu, am decis să adăugăm la tabelul angajaților:

  • Ordinea sosirii lor în companie;
  • Cod fiscal;
  • Numărul și seria pașaportului.

Uneori, designerii de baze de date folosesc o cheie naturală ca cheie primară, dar cel mai adesea sunt folosite separat. La urma urmei, înregistrările pot fi șterse, modificate și altele asemenea.

Presupun că ai citit povești pe internet când executorii judecătorești atârnă datoriile omonimului său complet pe o persoană? Acest lucru este legat doar de conceptul de cheie unică. Este foarte convenabil pentru bănci și executori judecătorești să caute o persoană după numele complet și anul nașterii. Și în 99% din cazuri acest lucru este suficient pentru a identifica o persoană.

Dar restul de <1% sunt omonimi întregi, cu același an de naștere. În viața fiecăruia dintre noi, cel mai probabil nu există astfel de oameni, dar la scară națională există. În general, dacă scrieți software sau proiectați o bază de date, atunci este util să știți că acesta poate fi și cazul.