Псевдонимы SQL-таблицы – хорошие или плохие? Sql псевдонимы
Псевдонимы для столбцов и таблиц (SQL
В некоторых ситуациях к столбцам и таблицам MySQL гораздо удобнее обращаться по другим именам. Рассмотрим это действие на примере базы данных для заказа авиабилетов.
Информация о предлагаемых авиакомпанией перелетах представлена в виде двух таблиц — flight и сity. Каждая запись в таблице flight отражает сведения об отдельном авиарейсе: место вылета (столбец origincityid), пункт назначения (столбец destinationcityid), а также дата и время вылета, тип самолета, номер рейса и стоимость билетов (остальные столбцы). В таблице city находится список всех городов, куда совершаются полеты. Таким образом, в столбцах origincityid и destinationcityid таблицы flight будут находиться только идентификаторы, ссылающиеся на записи внутри таблицы city.
Чтобы получить список перелетов с пунктами вылета, необходимо выполнить следующий запрос:
SELECT flight.number, city.name FROM flight INNER JOIN city ON flight.origincityid = city.idЛогично предположить, что для вывода рейсов с обоими пунктами — вылета и назначения — нужно осуществить запрос, представленный ниже.
SELECT flight.number, city.name, city.name FROM flight INNER JOIN city ON flight.origincityid = city.id INNER JOIN city ON flight.destinationcityid = city.idОднако, как только вы попытаетесь это сделать, phpMyAdmin выведет ошибку: #1066 — Not unique table/alias: 'city'.
Почему так происходит? Отбросьте в сторону свои ожидания и попробуйте разобраться в том, что на самом деле означает данный запрос. Он просит MySQL- сервер объединить таблицы flight, city и city. Попытка дважды присоединить одну и ту же таблицу и приводит к выводу сообщения об ошибке.
Кроме того, в запросе чувствуется нехватка логики. Он пытается вывести номер рейса, название города и название города (опять же дважды) для всех по лученных записей, сопоставляя с id таблицы city столбцы origincityid и destinationcityid. Другими словами, id таблицы city и столбцы origincityid и destinationcityid должны быть одинаковыми. Даже если бы запрос сработал, его результатом стал бы список всех рейсов, в котором пункты вылета и пункты назначения совпадают. Вряд ли найдется хоть один рейс, который будет соответствовать такому описанию, если речь идет не об авиакомпании, пред лагающей обзорные полеты над городами.
Нужно придумать другой способ для повторного использования таблицы city, позволяющий MySQL избавиться от путаницы. Вам следует вернуть из таблицы две разные записи для каждого результата: одну для места вылета, а другую для пункта назначения. Значительно упростить ситуацию помогли бы две копии таблицы city (одна по имени origin, а другая — destination). Но зачем заниматься поддержкой двух разных списков с одинаковыми городами? Решить проблему можно, указав для таблицы city два уникальных псевдонима (временных имени) внутри запроса.
Если после имени таблицы во фрагменте запроса SELECT, начинающегося с ключевого слова FROM, написать AS псевдоним, то вы получите временное имя, на которое можно ссылаться в любом другом месте запроса. Обратимся к перво му коду, выдающему номера рейсов и места вылета, и укажем для таблицы city псевдоним origin:
Запрос сработает, как и раньше, и его результаты останутся прежними, только теперь вы имеете возможность заменить длинные имена таблиц более короткими. Если бы вы воспользовались псевдонимами f и о вместо flight и origin соответственно, то запись сократилась бы уже существенно.
Вернемся к проблемному запросу. Теперь, дважды сославшись на таблицу city с помощью разных псевдонимов, вы сможете выполнить тройное объединение (в котором две таблицы на самом деле являются одной) и получить желаемый результат:
SELECT flight.number, origin.name, destination.name FROM flight INNER JOIN city AS origin ON flight.origincityid = origin.id INNER JOIN city AS destination ON flight.destinationcityid = destination.idАналогичным образом определяются псевдонимы для столбцов. В нашем случае это поможет различить столбцы name в итоговой таблице:
SELECT f.number, о.name AS origin, d.name AS destination FROM flight AS f INNER JOIN city AS о ON f .origincityid = o.id INNER JOIN city AS d ON f .destinationcityid =,d.idИспользуйте данный подход, чтобы добавить его в свой проект. Попробуйте реализовать эту идею самостоятельно.
codrob.ru
SQL Псевдонимы
SQL псевдонимы используются для временного переименования таблицы или заголовок столбца.
Псевдонимы SQL
SQL псевдонимы используются для получения таблицы базы данных или столбец в таблице, временное имя.
В основном создаются псевдонимы, чтобы имена столбцов более удобным для чтения.
SQL Алиас Синтаксис для столбцов
SELECT column_name AS alias_name FROM table_name;
SQL Синтаксис Алиас для таблиц
SELECT column_name(s) FROM table_name AS alias_name;
Демо-версия базы данных
В этом уроке мы будем использовать хорошо известную базу данных Борей.
Ниже приводится подборка из "Customers" таблицы:
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitucion 2222 | Mexico D.F. | 05021 | Mexico |
3 | Antonio Moreno Taqueria | Antonio Moreno | Mataderos 2312 | Mexico D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
И выбор из "Orders" таблицы:
10354 | 58 | 8 | 1996-11-14 | 3 |
10355 | 4 | 6 | 1996-11-15 | 1 |
10356 | 86 | 6 | 1996-11-18 | 2 |
Алиас Пример для столбцов таблицы
Следующий SQL оператор задает два псевдонима, один для столбца CustomerName и один для столбца ContactName. Совет: Это требует двойные кавычки или квадратные скобки , если имя столбца содержит пробелы:
В следующем операторе SQL мы объединим четыре столбца (Address, City, PostalCode и Country ) и создать псевдоним с именем "Address" :
пример
SELECT CustomerName, Address+', '+City+', '+PostalCode+', '+Country AS Address FROM Customers;
Попробуй сам "Примечание: Чтобы получить заявление SQL выше , чтобы работать в MySQL использовать следующее:
SELECT CustomerName, CONCAT(Address,', ',City,', ',PostalCode,', ',Country) AS Address FROM Customers;
Алиас Пример для таблиц
Следующий SQL - оператор выбирает все заказы от клиента с CustomerID=4 (вокруг Horn ). Мы используем "Customers" и "Orders" таблицы, и дать им таблицы псевдонимов "c" и "o" соответственно (Здесь мы использовали псевдонимы , чтобы сделать SQL короче):
пример
SELECT o.OrderID, o.OrderDate, c.CustomerNameFROM Customers AS c, Orders AS oWHERE c.CustomerName="Around the Horn" AND c.CustomerID=o.CustomerID;
Попробуй сам "То же самое заявление SQL без псевдонимов:
пример
SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerNameFROM Customers, OrdersWHERE Customers.CustomerName="Around the Horn" AND Customers.CustomerID=Orders.CustomerID;
Псевдонимы могут быть полезны в следующих случаях:
- Есть более чем одна таблица в запросе
- Функции используются в запросе
- Имена столбцов большие или не очень читаемый
- Два или более столбцов в сочетании друг с другом
www.w3bai.com
Псевдонимы SQL-таблицы – хорошие или плохие? Безопасный SQL
Каковы плюсы и минусы использования табличных псевдонимов в SQL? Я лично стараюсь избегать их, поскольку, по-моему, они делают код менее удобочитаемым (особенно при чтении через большие где / и утверждения), но мне было бы интересно услышать любые встречные пункты. Когда обычно рекомендуется использовать псевдонимы таблиц, и есть ли у вас какие-либо предпочтительные форматы?
Табличные псевдонимы являются необходимым злом при работе с сильно нормированными схемами. Например, и я не архитектор на этой БД, так что медведь со мной, он может занять 7 объединений, чтобы получить чистую и полную запись, которая включает имя, адрес, номер телефона и принадлежность компании.
Вместо типичных псевдонимов с одним символом я предпочитаю короткие псевдонимы слов, поэтому SQL вышеприведенного примера выглядит так:
… и т.д
Ну, есть некоторые случаи, которые вы должны использовать, например, когда вам нужно дважды присоединиться к одной таблице в одном запросе.
Это также зависит от того, у вас есть уникальные имена столбцов в таблицах. В нашей старой базе данных у нас есть 3-буквенные префиксы для всех столбцов, основанные на сокращенной форме из таблицы, просто потому, что одна древняя система баз данных, с которой мы когда-то были совместимы, не полностью поддерживала псевдонимы таблиц.
Если у вас есть имена столбцов, которые встречаются в более чем одной таблице, указание имени таблицы как части ссылки на столбец является обязательным, и, таким образом, псевдоним таблицы позволит использовать более короткий синтаксис.
Я единственный человек, который действительно их ненавидит?
Как правило, я не использую их, если только не должен. Мне просто очень нравится читать что-то вроде
select a.id, a.region, a.firstname, a.blah, b.yadda, b.huminahumina, c.crap from table toys as a inner join prices as b on a.blah = b.yadda inner join customers as c on c.crap = something else etcКогда я читаю SQL, мне нравится точно знать, что я выбираю, когда я его читаю; псевдонимы на самом деле путают меня больше, потому что я должен прокручивать строки столбцов, прежде чем я на самом деле получаю имя таблицы, которое обычно представляет информацию о данных, которые нет в псевдониме. Возможно, это нормально, если вы сделали псевдонимы, но я часто читаю вопросы о StackOverflow с кодом, который, по-видимому, использует псевдонимы без уважительной причины. (Кроме того, иногда кто-то создает псевдоним в заявлении и просто не использует его. Почему?)
Я думаю, что псевдонимы таблиц используются так много, потому что многие люди не склонны печатать. Я не думаю, что это хороший повод. Это оправдание – причина, по которой мы заканчиваем ужасное переименование имен, ужасные аббревиатуры функций, плохой код … Я бы нашел время, чтобы набрать полное имя. Тем не менее, я быстр, поэтому, возможно, это имеет какое-то отношение к этому. (Может быть, в будущем, когда у меня будет туннель с запястью, я передумаю свое мнение по псевдонимам: P) Я особенно ненавижу работать через псевдонимы таблицы в PHP-коде, где, я считаю, нет абсолютно никаких оснований для этого – вам нужно только ввести его один раз!
Я всегда использую столбцы в моих заявлениях, но я не прочь набирать много, поэтому я с удовольствием набираю полное имя несколько раз. (Конечно, я нарушаю вкладку в MySQL.) Если это не так, когда мне нужно использовать псевдоним (как описано в других ответах), я нахожу дополнительный слой абстракции громоздким и ненужным.
Изменить: (Более года спустя) Я имею дело с некоторыми хранимыми процедурами, использующими псевдонимы (я не писал их, и я новичок в этом проекте), и они вроде болезненны. Я понимаю, что причина, по которой мне не нравятся псевдонимы, – это то, как они определены. Вы знаете, как обычно рекомендуется объявлять переменные в верхней части области? (И обычно в начале строки?) Псевдонимы в SQL не следуют этому соглашению, что заставляет меня перемалывать зубы. Таким образом, я должен искать весь код для одного псевдонима, чтобы узнать, где он находится (и что расстраивает, я должен прочитать логику, прежде чем найти объявление псевдонима). Если бы не это, мне, честно говоря, понравилась бы система.
Если я когда-либо пишу хранимую процедуру, с которой кому-то придется иметь дело, я помещаю свои определения псевдонимов в блок комментариев в начале файла в качестве ссылки. Я честно не понимаю, как вы, ребята, не сходите без ума.
Оптимизатор запросов Microsoft SQL имеет преимущества от использования либо полностью квалифицированных имен, либо псевдонимов.
Лично я предпочитаю псевдонимы, и, если у меня нет большого количества таблиц, они, как правило, являются однобуквенными.
--seems pretty readable to me ;-) select a.Text from Question q inner join Answer a on a.QuestionId = q.QuestionIdСуществует также практический предел в отношении того, как долго может выполняться строка Sql – псевдонимы упрощают этот предел.
Как уже упоминалось несколько раз раньше, рекомендуется префикс всех имен столбцов, чтобы легко увидеть, какой столбец принадлежит той таблице, а псевдонимы короче полных имен таблиц, поэтому запрос легче читать и, таким образом, понимать. Конечно, если вы используете хорошую схему сглаживания.
И если вы создаете или читаете код приложения, в котором используются внешние или динамически сгенерированные имена таблиц, то без псевдонимов действительно сложно сказать с первого взгляда, что означают все эти «% s» или другие заполнители. Это не крайний случай, например, многие веб-приложения позволяют настраивать префикс имени таблицы во время установки.
Если я сам пишу запрос (набрав в редактор и не используя конструктор), я всегда использую псевдонимы для имени таблицы, так что мне нужно только один раз ввести полное имя таблицы.
Я действительно ненавижу чтение запросов, созданных дизайнером с полным именем таблицы в качестве префикса для каждого имени столбца.
Я полагаю, что единственное, что действительно говорит против них, – это чрезмерная абстракция. Если у вас будет хорошая идея, на что ссылается псевдоним (хорошие указания на присвоение имен: «a», «b», «c» могут быть довольно проблематичными, особенно когда вы читаете утверждение месяцев или лет спустя), я не вижу ничего плохого с псевдонимом.
Как говорили другие, объединения требуют их, если вы используете одну и ту же таблицу (или представление) несколько раз, но даже вне этой ситуации псевдоним может служить для уточнения цели источника данных в конкретном контексте. В имени псевдонима попробуйте ответить, почему вы обращаетесь к конкретным данным, а не к тем данным.
Я ЛЮБЛЮ псевдонимы !!!! Я провел некоторые тесты, используя их против нет, и видел некоторые улучшения в области обработки. Я предполагаю, что прибыль от обработки будет выше, если вы имеете дело с более крупными наборами данных и сложными вложенными запросами, чем без. Если я смогу проверить это, я дам вам знать.
Вы нуждаетесь в них, если собираетесь присоединиться к таблице к себе, или если вы снова используете столбец в подзапросе …
Псевдонимы замечательны, если вы считаете, что моя организация имеет имена таблиц, такие как: SchemaName.DataPointName_SubPoint_Sub-SubPoint_Sub-Sub-SubPoint … Моя команда использует довольно стандартный набор сокращений, поэтому догадки минимизируются. Мы скажем, что ProgramInformationDataPoint сокращен до pidp и подчиняется только суб.
Хорошо, что как только вы займетесь этим, и люди согласятся с этим, это делает файлы HAYUGE немного меньше и проще в управлении. По крайней мере, для меня меньше символов для передачи одной и той же информации, кажется, немного легче на мой мозг.
Мне нравятся длинные явные имена таблиц (это не редкость – более 100 символов), потому что я использую много таблиц, и если имена не явны, я могу запутаться в том, что хранится в каждой таблице.
Поэтому, когда я пишу запрос, я склонен использовать более короткие псевдонимы, которые имеют смысл в рамках запроса, и это делает код более читаемым.
Я всегда использую псевдонимы в своих запросах, и это часть руководства по коду в моей компании. Прежде всего вам нужны псевдонимы или имена таблиц, если в таблицах соединений есть столбцы с одинаковыми именами. На мой взгляд, псевдонимы улучшают читаемость в сложных запросах и позволяют быстро увидеть расположение каждой колонки. Мы даже используем псевдонимы с одиночными табличными запросами, потому что опыт показал, что одиночные таблицы недолго остаются одной таблицей.
ИМХО, на самом деле это не имеет большого значения с именами коротких таблиц, которые имеют смысл, я иногда работал над базами данных, где имя таблицы может быть чем-то вроде VWRECOFLY или какой-либо другой случайной строки (продиктованной политикой компании), которая действительно представляет пользователей, поэтому в в этом случае я нахожу, что псевдонимы действительно помогают сделать код FAR более удобочитаемым. (users.username делает намного больше sence, затем VWRECOFLY.username)
Я всегда использую псевдонимы, так как для получения надлежащей производительности на MSSQL вам всегда нужно использовать префикс схемы. Таким образом, вы увидите много
Выберите Person.Name From dbo.Person как лицо
Я всегда использую псевдонимы при написании запросов. Обычно я пытаюсь и сокращать имя таблицы до 1 или 2 репрезентативных букв. Таким образом, пользователи становятся u и debtor_transactions становятся dt и т. Д. …
Это экономит на типизации и по-прежнему имеет некоторое значение.
Более короткие имена делают его более читаемым для меня.
Если вы не используете псевдоним, это будет ошибкой в вашем коде, ожидая его.
SELECT Description -- actually in a FROM table_a a, table_b b WHERE a.ID = b.IDЧто происходит, когда вы делаете что-то вроде добавления столбца «Описание в таблицу_B». Правильно, вы получите сообщение об ошибке. Добавление столбца не требует ничего. Я никогда не вижу, чтобы писать хороший код, бесплатный код, как необходимое зло.
Псевдонимы требуются при соединении таблиц с столбцами с одинаковыми именами.
sql.fliplinux.com
SQL - Синтаксис Alias (псевдоним)
Вы можете переименовать таблицу или столбец временно, давая другое имя, известное как alias (псевдоним). Использование таблицы псевдонимов для переименования таблицы в определенном заявлении SQL. Переименование является временное изменение и фактическое имя таблицы не изменяется в базе данных. В столбцах псевдонимы используются для переименования столбцов таблицы для целей конкретного запроса SQL.Синтаксис
Основной синтаксис псевдонима таблиц выглядит следующим образом.
SELECT column1, column2.... FROM table_name AS alias_name WHERE [condition];
Основной синтаксис псевдонима столбца состоит в следующем.
SELECT column_name AS alias_name FROM table_name WHERE [condition];Примеры
Рассмотрим следующие две таблицы.
Таблица 1 – Таблица CUSTOMERS выглядит следующим образом:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 34000.00 | | 5 | Ruslan | 34 | Omsk | 45000.00 | | 6 | Dima | 32 | SP | | | 7 | Roma | 34 | SP | | +----+----------+-----+-----------+----------+
Таблица 2 – Таблица ORDERS выглядит следующим образом:
+-----+---------------------+-------------+--------+ |OID | DATE | CUSTOMER_ID | AMOUNT | +-----+---------------------+-------------+--------+ | 102 | 2017-01-08 00:00:00 | 3 | 45500 | | 100 | 2017-01-08 00:00:00 | 3 | 18000 | | 101 | 2017-01-18 00:00:00 | 2 | 21500 | | 103 | 2017-03-15 00:00:00 | 4 | 11000 | +-----+---------------------+-------------+--------+
Теперь, следующий блок кода покажет использование псевдонима таблицы.
SQL> SELECT C.ID, C.NAME, C.AGE, O.AMOUNT FROM CUSTOMERS AS C, ORDERS AS O WHERE C.ID = O.CUSTOMER_ID;
Это произведет следующий результат.
+----+----------+-----+--------+ | ID | NAME | AGE | AMOUNT | +----+----------+-----+--------+ | 3 | Oleg | 33 | 45500 | | 3 | Oleg | 33 | 18000 | | 2 | AndreyEx | 38 | 21500 | | 4 | Masha | 35 | 11000 | +----+----------+-----+--------+
Теперь используем псевдоним столбца.
SQL> SELECT ID AS CUSTOMER_ID, NAME AS CUSTOMER_NAME FROM CUSTOMERS WHERE SALARY IS NOT NULL;
Это произведет следующий результат.
+-------------+---------------+ | CUSTOMER_ID | CUSTOMER_NAME | +-------------+---------------+ | 1 | Maxim | | 2 | AndreyEx | | 3 | Oleg | | 4 | Masha | | 5 | Ruslan | | 6 | Dima | | 7 | Roma | +-------------+---------------+
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
andreyex.ru
sql - Когда использовать псевдоним таблицы SQL
Табличные псевдонимы должны быть четырьмя:
- Короткие
- Значимые
- Всегда используется
- Используется последовательно
Например, если у вас были таблицы с именем service_request, service_provider, user и affiliate (среди многих других), хорошей практикой было бы присвоение таких таблиц как "sr", "sp", "u" и "a", и делать это в каждом запросе. Это особенно удобно, если, как это часто бывает, эти псевдонимы совпадают с аббревиатурами, используемыми вашей организацией. Поэтому, если "SR" и "SP" являются принятыми условиями для Service Request и Service Provider соответственно, вышеупомянутые псевдонимы несут двойную полезную нагрузку, интуитивно стоящую как для таблицы, так и для бизнес-объекта, который она представляет.
Очевидные недостатки этой системы в первую очередь состоят в том, что для имен таблиц может быть неудобно много "слов", например. a_long_multi_word_table_name, которое будет alias to almwtn или что-то еще, и что, вероятно, вы получите таблицы с такими именами, чтобы они сокращали их. Первый недостаток может быть рассмотрен, как вам нравится, например, взяв последние 3 или 4 буквы или любое другое подмножество, которое вы считаете наиболее представительным, наиболее уникальным или простым в типе. Второе, что я нашел на практике, не так хлопотно, как может показаться, возможно, просто на удачу. Вы также можете делать такие вещи, как взять вторую букву "слова" в таблице, например, aliasing account_transaction на "atr" вместо "at", чтобы избежать конфликта с account_type.
Конечно, используете ли вы вышеупомянутый подход или нет, псевдонимы должны быть короткими, потому что вы будете вводить их очень часто, и их всегда следует использовать, потому что как только вы написали запрос на одну таблицу и опустили псевдоним, это неизбежно, что вам придется редактировать во второй таблице с повторяющимися именами столбцов.
qaru.site
временное переименование таблицы и столбца, основной синтаксис
От автора: вы можете временно переименовать таблицу или столбец, указав другое имя, которое псевдоним. Использование псевдонима таблицы заключается в переименовании таблицы в конкретной инструкции SQL. Переименование это временное явление, и фактическое имя таблицы в базе данных не изменяется. В SQL псевдонимы столбцов используются для переименования столбцов под конкретный запрос.
Синтаксис
Основной синтаксис псевдонима таблицы следующий.
SELECT column1, column2.... FROM table_name AS alias_name WHERE [condition];
SELECT column1, column2.... FROM table_name AS alias_name WHERE [condition]; |
Основной синтаксис псевдонима столбца следующий.
Бесплатный курс по PHP программированию
Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!SELECT column_name AS alias_name FROM table_name WHERE [condition];
SELECT column_name AS alias_name FROM table_name WHERE [condition]; |
Пример
Рассмотрим следующие две таблицы. Таблица 1 — Таблица CUSTOMERS выглядит следующим образом.
Таблица 2 — Таблица ORDERS выглядит следующим образом.
В следующем блоке кода показано использование псевдонима таблицы.
SELECT C.ID, C.NAME, C.AGE, O.AMOUNT FROM CUSTOMERS AS C, ORDERS AS O WHERE C.ID = O.CUSTOMER_ID;
SELECT C.ID, C.NAME, C.AGE, O.AMOUNT FROM CUSTOMERS AS C, ORDERS AS O WHERE C.ID = O.CUSTOMER_ID; |
Этот код дает следующий результат.
Ниже приведено использование псевдонима столбца.
SELECT ID AS CUSTOMER_ID, NAME AS CUSTOMER_NAME FROM CUSTOMERS WHERE SALARY IS NOT NULL;
SELECT ID AS CUSTOMER_ID, NAME AS CUSTOMER_NAME FROM CUSTOMERS WHERE SALARY IS NOT NULL; |
Этот код дает следующий результат.
Источник: https://www.tutorialspoint.com/
Редакция: Команда webformyself.
Бесплатный курс по PHP программированию
Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!Хотите изучить MySQL?
Прямо сейчас посмотрите 24-х часовой курс по базе данных MySQL!
Смотреть курсwebformyself.com
[table-alias] Когда использовать псевдоним таблицы SQL [database]
Я использую их для сохранения ввода. Тем не менее, я всегда использую буквы, подобные функции. Итак, в вашем примере я бы напечатал:
SELECT t.TripNum, s.SegmentNum, s.StopNum, s.ArrivalTime FROM Trip t, Segment s WHERE t.TripNum = s.TripNumЭто просто облегчает чтение для меня.
Как правило, я всегда использую их , поскольку в моих хранимых процедурах обычно происходит несколько объединений. Это также облегчает использование инструментов генерации кода, таких как CodeSmith, для автоматического создания имени псевдонима для вас.
Я стараюсь держаться подальше от одиночных букв типа a & b, так как у меня может быть несколько таблиц, начинающихся с буквы a или b. Я использую более длительный подход, конкатенацию внешнего ключа с таблицей псевдонимов, например CustomerContact ... это будет псевдоним для таблицы Customer при присоединении к таблице контактов.
Другая причина, по которой я не возражаю дольше , связана с тем, что большинство моих хранимых процедур генерируются с помощью кода CodeSmith. Я не возражаю против того, чтобы набрать несколько, которые мне, возможно, придется строить самостоятельно.
Используя текущий пример, я бы сделал что-то вроде:
SELECT TripNum, TripSegment.SegmentNum, TripSegment.StopNum, TripSegment.ArrivalTime FROM Trip, Segment TripSegment WHERE TripNum = TripSegment.TripNumМогу ли я добавить к дискуссии, которая уже несколько лет?
Есть еще одна причина, о которой никто не упомянул. Парсер SQL в некоторых базах данных работает лучше с псевдонимом. Я не могу вспомнить, изменил ли Oracle это в более поздних версиях, но когда дело дошло до псевдонима, он просмотрел столбцы в базе данных и запомнил их. Когда дело дошло до имени таблицы, даже если оно уже было встречено в инструкции, оно повторно проверило базу данных для столбцов. Таким образом, использование псевдонима допускается для более быстрого разбора, особенно для длинных операторов SQL. Я уверен, что кто-то знает, если это все еще так, если другие базы данных делают это во время разбора, и если он изменился, когда он изменился.
code-examples.net