В SQL используются ли переменные кортежа в основном для экономии усилий при вводе текста?

#sql #tuples

#sql #Кортежи

Вопрос:

В таком утверждении, как это:

 SELECT CUSTOMER_NAME, T.LOAN_NUMBER, S.AMOUNT
FROM BORROWER AS T, LOAN AS S
WHERE T.LOAN_NUMBER = S.LOAN_NUMBER
  

Итак, переменными кортежа здесь являются T и S?

Ответ №1:

Они полезны для экономии ввода, но есть и другие причины их использования:

  • Если вы присоединяете таблицу к самой себе, вы должны присвоить ей два разных имени, иначе ссылка на таблицу будет неоднозначной.
  • Может быть полезно давать имена производным таблицам, а в некоторых системах баз данных это требуется … даже если вы никогда не ссылаетесь на имя.

Что касается имени, «кортеж» исходит из идеи, что строка представляет собой кортеж значений, например (1, 'Fred', 1400) . Однако я не знаю, почему она называется переменной, потому что впоследствии ее нельзя изменить. Я не думаю, что это особенно распространенный термин для описания этой функции. Стандарты SQL называют их «именами корреляции». Если посмотреть на основные базы данных, то все они используют вместо этого другой термин:

Комментарии:

1. Очень интересно, что вы можете объединить таблицу с самой собой, я думаю, теперь я вижу, где это было бы необходимо. Большое вам спасибо!

2. «Однако я не знаю, почему это называется переменной, потому что впоследствии ее нельзя изменить» — примечание на реляционном языке, которое мы могли бы ожидать BORROWER , и LOAN быть «переменными отношения» или «relvars» для краткости. Идея заключается в том, что их содержимое может меняться со временем из-за изменений в базе данных. Обратите внимание, что база данных также является переменной, хотя и сложной! Принимает ли кто-либо, что SQL-эквивалент relvar является таблицей, это другой вопрос 😉