Промяна на имена на колони
Трябва да се справим и с имената на колоните. В противен случай повтаряме имената name и id, но те съдържат различни данни. От друга страна, има първата колона id и колоната employee_id, които съдържат едни и същи данни.
Нека напишем заявка, където ще има само необходимите колони, и също така преименувайте колоните със същите имена:
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
И резултатът от тази заявка:
task_id | task_desc | краен срок | Emploee_id | emp_name | emp_окупация |
---|---|---|---|---|---|
1 | Коригиране на грешка във фронтенда | 2022-06-01 | 1 | Ivanов Ivan | Програмист |
2 | Коригиране на грешка в бекенда | 2022-06-15 | 2 | Peterов Петър | Програмист |
7 | Наслаждавай се на живота | (НУЛА) | 4 | Рабинович Мойша | Директор |
3 | Купи кафе | 2022-07-01 | 5 | Кириенко Анастасия | Офис мениджър |
4 | Купи кафе | 2022-08-01 | 5 | Кириенко Анастасия | Офис мениджър |
5 | Купи кафе | 2022-09-01 | 5 | Кириенко Анастасия | Офис мениджър |
8 | Наслаждавай се на живота | (НУЛА) | 6 | Васка | котка |
Страхотно, проблемът с неразбираемите имена на колони е успешно решен. Заявката стана малко дълга, но всичко е ясно в получената table. И без допълнителни колони.
Псевдоними на таблици
Понякога имената на таблиците са твърде дълги и заемат много място в заявката. Ето защо, създателите на SQL, за да подобрят четливостта, Howто в случая с колоните, предложиха възможност за указване на псевдоними на таблици.
Общата форма на псевдоними (псевдоними на таблици) е Howто следва:
FROM table1 alias1, table2 alias2
Нека пренапишем предишната ни заявка с кратки псевдоними:
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
Четливостта е намаляла леко, но това е така, защото имената на таблиците първоначално са бor прости и ясни. Може и да е така:
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
И в този случай псевдонимите вече са полезни, нали? ;)
първичен ключ
И още една важна информация за масите. Помните ли, че имахме колона employee_id в tableта на задачите? С него посочихме идентификатора на служителя от tableта на служителите.
Ако искаме да направим препратка от една table към редовете на друга table, тогава препратената table трябва да има колона с ID, който също се нарича първичен ключ - PRIMARY KEY .
Най-често това е специално добавена колона, чийто тип стойност е int . Когато добавяте записи към table, SQL автоматично задава стойността на тази колона.
Тогава много неща са свързани с тези ключове:
- свързване на различни таблици една с друга;
- бързо търсене и филтриране по id;
- цялост на данните в базата данни (без препратки към несъществуващ идентификатор);
- изтриване на данни, на които никой не се позовава;
- и много много други.
Между другото, има ситуации, когато tableта има така наречения естествен ключ . Това е, когато има колона, чието съдържание предполага уникалност. Например решихме да добавим към tableта на служителите:
- Редът на пристигането им в компанията;
- Данъчен номер;
- Номер и серия на паспорта.
Понякога дизайнерите на бази данни използват естествен ключ като първичен ключ, но най-често те се използват отделно. В крайна сметка записите могат да бъдат изтривани, променяни и други подобни.
Предполагам, че четете истории в интернет, когато съдия-изпълнители висят дългове на пълния му съименник на човек? Това е просто свързано с концепцията за уникален ключ. За банките и съдебните изпълнители е много удобно да търсят човек по трите имена и година на раждане. И в 99% от случаите това е достатъчно, за да се идентифицира човек.
Но останалите <1% са пълни съименници, с една и съща година на раждане. В живота на всеки от нас най-вероятно няма такива хора, но в национален мащаб има. Като цяло, ако пишете софтуер or проектирате база данни, тогава е полезно да знаете, че това също може да бъде така.