Oszlopnevek módosítása

Az oszlopnevekkel is foglalkoznunk kell. Ellenkező esetben megismételjük a nevet és az azonosítót, de ezek eltérő adatokat tartalmaznak. Másrészt van az első id oszlop és az alkalmazott_azonosító oszlop, amelyek ugyanazokat az adatokat tartalmazzák.

Írjunk egy lekérdezést, ahol csak a szükséges oszlopok lesznek, és nevezzük át az oszlopokat azonos névvel:

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

És ennek a lekérdezésnek az eredménye:

feladat_azonosítója feladat_leírás határidő employee_id emp_name emp_occupation
1 Javítson ki egy hibát a kezelőfelületen 2022-06-01 1 Ivanov Iván Programozó
2 Javítson ki egy hibát a háttérben 2022-06-15 2 Petrov Petr Programozó
7 Élvezd az életet (NULLA) 4 Rabinovics Moisa Rendező
3 Vegyél kávét 2022-07-01 5 Kirienko Anasztázia Irodavezető
4 Vegyél kávét 2022-08-01 5 Kirienko Anasztázia Irodavezető
5 Vegyél kávét 2022-09-01 5 Kirienko Anasztázia Irodavezető
8 Élvezd az életet (NULLA) 6 Vaska macska

Remek, az érthetetlen oszlopnevekkel kapcsolatos probléma sikeresen megoldva. Kicsit hosszú lett a lekérdezés, de a kapott táblázatban minden világos. És nincsenek extra oszlopok.

Táblázat álnevek

Néha a táblanevek túl hosszúak, és sok helyet foglalnak el a lekérdezésben. Ezért az SQL megalkotói az olvashatóság javítása érdekében, akárcsak az oszlopok esetében, felajánlották a táblaálnevek megadásának lehetőségét.

Az álnevek (táblázati álnevek) általános formája a következő:

FROM table1 alias1, table2 alias2

Írjuk át korábbi lekérdezésünket rövid álnevekkel:

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

Az olvashatóság némileg csökkent, de ennek az az oka, hogy a táblázatok nevei kezdetben egyszerűek és egyértelműek voltak. Ez akár így is lehet:

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 

És ebben az esetben az álnevek már hasznosak, nem? ;)

elsődleges kulcs

És még egy fontos információ a táblázatokról. Emlékszel, hogy a feladattáblázatban volt egy alkalmazott_azonosító oszlopunk? Ezzel az alkalmazotti táblából hivatkoztunk az alkalmazotti azonosítóra.

Ha egy táblából egy másik tábla soraira akarunk hivatkozni, akkor a hivatkozott táblának rendelkeznie kell egy azonosítóval ellátott oszloppal, amelyet elsődleges kulcsnak is nevezünk - PRIMARY KEY .

Leggyakrabban ez egy speciálisan hozzáadott oszlop, amelynek értéktípusa int . Amikor rekordokat ad hozzá egy táblához, az SQL automatikusan beállítja ennek az oszlopnak az értékét.

Aztán sok minden kötődik ezekhez a kulcsokhoz:

  • különböző táblák összekapcsolása egymással;
  • gyors keresés és szűrés azonosító alapján;
  • adatintegritás az adatbázisban (nincs hivatkozás nem létező azonosítóra);
  • olyan adatok törlése, amelyekre senki sem hivatkozik;
  • és még sokan mások.

Egyébként vannak olyan helyzetek, amikor egy táblázatnak van egy úgynevezett természetes kulcsa . Ilyenkor van egy oszlop, amelynek tartalma egyediségre utal. Például úgy döntöttünk, hogy hozzáadjuk az alkalmazottak táblázatához:

  • A társaságba érkezésük sorrendje;
  • Adószám;
  • Az útlevél száma és sorozata.

Néha az adatbázis-tervezők természetes kulcsot használnak elsődleges kulcsként, de leggyakrabban külön-külön. Hiszen a rekordokat lehet törölni, módosítani és hasonlókat.

Gondolom, olyan történeteket olvasott az interneten, amikor a végrehajtók ráakasztják a teljes névrokonának tartozását egy személyre? Ez csak az egyedi kulcs fogalmához kapcsolódik. A bankok és a végrehajtók számára nagyon kényelmes, hogy teljes név és születési év alapján keressenek egy személyt. És az esetek 99% -ában ez elegendő egy személy azonosításához.

De a maradék <1% teljes névrokon, azonos születési évvel. Valószínűleg mindegyikünk életében nincsenek ilyen emberek, de országos viszonylatban igen. Általában, ha szoftvert ír, vagy adatbázist tervez, akkor hasznos tudnia, hogy ez is előfordulhat.