Псевдонимы в PostgreSQL

Данная статья относится к циклу статей, посвященных PostgreSQL. В предыдущей статье мы говорили об операторе PostgreSQL IS NULL. Теперь же мы углубимся в изучение псевдонимов столбцов и таблиц в PostgreSQL.
Псевдоним в PostgreSQL назначает таблице или столбцу в запросе временное имя и существует только во время выполнения запроса.
Псевдоним столбца#
Ниже показан синтаксис псевдонима столбца:
В этом синтаксисе column_name назначается псевдоним alias_name. Ключевое слово AS является необязательным, поэтому вы можете пропустить его, как показано ниже:
Помимо имени столбца, вы можете назначить псевдоним выражению в операторе SELECT следующим образом:
Основное назначение псевдонима столбца — сделать вывод запроса более осмысленным.
Примеры псевдонимов столбцов#
Следующий запрос находит полные имена всех клиентов:

Чтобы сделать запрос коротким и его вывод более осмысленным, вы можете использовать псевдонимы столбцов следующим образом.
Поскольку PostgreSQL учитывает условие ORDER BY после оператора SELECT, вы можете использовать псевдоним столбца в условии ORDER BY.
Для других условий, учитываемых до оператора SELECT, таких, как WHERE, GROUP BY и HAVING, вы не можете ссылаться на псевдоним столбца внутри условия.
Псевдоним таблицы#
Ниже показан синтаксис псевдонима таблицы:
Подобно псевдониму столбца, ключевое слово AS в синтаксисе псевдонима таблицы также может быть опущено. Обратите внимание, что вы также можете использовать псевдоним таблицы для представления.
Псевдоним таблицы имеет несколько применений.
Во-первых, если вам нужно указать имя столбца с длинным именем таблицы, вы можете использовать псевдоним таблицы, чтобы сократить количество нажатий и сделать ваш запрос более читабельным.
Например, вместо использования следующего запроса:
Вы можете использовать псевдоним таблицы, как показано ниже:
В этом примере t является псевдонимом таблицы a_very_long_table_name.
Практическое использование псевдонима таблицы — это когда вы запрашиваете данные из нескольких таблиц с одинаковыми именами столбцов. В этом случае вы должны сопоставить столбцы, используя имена таблиц следующим образом:
Чтобы сделать запрос короче, вы можете использовать псевдонимы таблиц для их имен, перечисленных в условиях FROM и INNER JOIN:
Об условии INNER JOIN вы узнаете в следующем уроке.
Во-вторых, когда вы объединяете таблицу с ней же самой, то есть делаете самообъединение, вы должны использовать псевдонимы таблиц, потому что PostgreSQL не позволяет вам ссылаться на одну и ту же таблицу несколько раз в запросе.
В данной статье вы узнали, как использовать псевдонимы в PostgreSQL для временного назначения нового имени столбцу или таблице во время выполнения запроса. В следующей статье мы поговорим об объединениях в PostgreSQL.
Sql select as: Команда AS — новое имя полям или таблицам
Команда AS задает новое имя полям или таблицам при выборке из базы (то есть в самой базе изменения не происходят).
См. также команду JOIN, в которой активно используется команда AS.
Синтаксис
Примеры
Все примеры будут по этой таблице workers, если не сказано иное:
| id айди |
name имя |
age возраст |
salary зарплата |
|---|---|---|---|
| 1 | Дима | 23 | 400 |
| 2 | Петя | 24 | 500 |
| 3 | Вася | 25 | 600 |
Пример
Давайте при выборке переименуем все поля:
SQL запрос выберет следующие строки:
| user_id айди |
user_name имя |
user_age возраст |
user_salary зарплата |
|---|---|---|---|
| 1 | Дима | 23 | 400 |
| 2 | Петя | 24 | 500 |
| 3 | Вася | 25 | 600 |
Пример
Можно из одного поля сделать два (и более):
SQL запрос выберет следующие строки:
| name1 имя |
name2 имя |
|---|---|
| Дима | Дима |
| Петя | Петя |
| Вася | Вася |
Синтаксис SQL запроса
Одна из основных функций SQL — получение данных из СУБД. Для построения всевозможных запросов к базе данных используется оператор SELECT. Он позволяет выполнять сложные проверки и обработку данных.
Общая структура запроса
В описанной структуре запроса необязательные параметры указаны в квадратных скобках.
Параметры оператора
- DISTINCT используется для исключения повторяющихся строк из результата
ALL (по умолчанию) используется для получения всех данных, в том числе и повторений - FROM перечисляет используемые в запросе таблицы из базы данных
- WHERE — это условный оператор, который используется для ограничения строк по какому-либо условию
- GROUP BY используется для группировки строк
- HAVING применяется после группировки строк для фильтрации по значениям агрегатных функций
- ORDER BY используется для сортировки. У него есть два параметра:
- ASC (по умолчанию) используется для сортировки по возрастанию
- DESC — по убыванию
SQL-псевдонимы
Псевдонимы используются для представления столбцов или таблиц с именем отличным от оригинального. Это может быть полезно для улучшения читабельности имён и создания более короткого наименования столбца или таблицы.
Например, если в вашей таблице есть столбец good_type_id, вы можете переименовать его просто в id, для того, чтобы сделать его более коротким и удобным в использовании в будущем.
Для создания псевдонимов используется оператор AS:
Порядок выполнения инструкций
Следующие действия демонстрируют логический порядок обработки инструкции SELECT. Этот порядок определяет, когда объекты, определенные в одном шаге, становятся доступными для предложений в последующих шагах.
Например, в предложении WHERE не доступны псевдонимы столбцов, определяемых в предложении SELECT, потому что, согласно списку, оно выполняется до SELECT.
- FROM
- WHERE
- GROUP BY
- HAVING
- SELECT
- DISTINCT
- ORDER BY
Фактическое выполнение инструкций определяется СУБД и порядок из этого списка может значительно отличаться.
Примеры использования
Вы можете выводить любые строки и числа вместо столбцов:
Для того, чтобы вывести все данные из таблицы Company, вы можете использовать символ «*», который буквально означает «все столбцы»:
Вы можете вывести любой столбец, определённый в таблице, например, town_to из таблицы Trip:
Также вы можете вывести несколько столбцов. Для этого их нужно перечислить через запятую:
Иногда возникают ситуации, в которых нужно получить только уникальные записи. Для этого вы можете использовать DISTINCT. Например, выведем список городов без повторений, в которые летали самолеты:
Очень многие программисты смотрят на SQL, как на страшного зверя. SQL — один из немногих декларативных языков, и его поведение в корне отличается от того, как работают императивные, объектно-ориентированные и даже функциональные языки программирования. Хотя многие рассматривают SQL в некоторой степени функциональным.
Я, как инструктор SQL (советую посетить наш великолепный тренинг!) пишу на нем каждый день, включая работу над библиотекой jOOQ с открытым исходным кодом.
Поэтому я чувствую себя обязанным донести прелести SQL до умов тех, кто все еще испытывает трудности с его пониманием. Этот урок посвящен тем, кто:
- Уже работает с SQL, но не до конца его понимает
- Неплохо знает SQL, но никогда серьезно не задумывался над его структурой
- Хочет обучать SQL других
В этом руководстве мы сосредоточимся только на операторах SELECT. Другие DML-операторы будут подробно рассмотрены в следующий раз.
Примечание. Этот урок раньше публиковался только на Tech.Pro (оригинальная версия находится здесь). К сожалению, материал Tech.Pro стал недоступным. С разрешения Tech.Pro мы снова публикуем его контент в блоге jOOQ.SQL является декларативным
SELECT first_name, last_name FROM employees WHERE salary > 100000
SELECT first_name, last_name
WHERE salary > 100000
Все понятно. И вас не волнует, откуда эти записи о сотруднике (employee) берутся. Вам лишь нужны те, у которых достойная зарплата (salary).
- Что мы из этого узнаем?
Если все так просто, в чем же проблема? Проблема в том, что большинство из нас интуитивно мыслит рамками императивного программирования. Вроде: «машина, сделай это, затем то, но сначала проверь то и се. » А значит, нужно хранить временные результаты в переменных, составлять циклы, вызывать функции и т. д. и т. п.
Забудьте обо всем этом. Думайте о том, как объявлять вещи. Не о том, как сказать машине, вычислить что-либо.
2. Код SQL не является упорядоченным
Обычно путаница происходит из-за того, что элементы кода SQL не расположены в том порядке, в каком они выполняются. Лексический порядок выглядит так:
- SELECT [ DISTINCT ]
- FROM
- WHERE
- GROUP BY
- HAVING
- UNION
- ORDER BY
Для простоты перечислены не все предложения SQL. Этот словесный порядок принципиально отличается от логического порядка (который в свою очередь может отличаться от порядка выполнения в зависимости от выбора оптимизатора):
- FROM
- WHERE
- GROUP BY
- HAVING
- SELECT
- DISTINCT
- UNION
- ORDER BY
Три пункта, которые следует отметить:
- Первое предложение здесь FROM, а не SELECT. Сначала происходит загрузка данных с диска в память, чтобы с ними можно было работать.
- SELECT выполняется после большинства других предложений. Главное, после FROM и GROUP BY. Это важно понимать, если думаете, что можете ссылаться на элементы, которые объявляете в предложении SELECT из предложения WHERE. Следующее невозможно:
SELECT A.x + A.y AS z FROM A WHERE z = 10 — z здесь не доступна!
SELECT A.x + A.y AS z
WHERE z = 10 — z здесь не доступна!
Есть два варианта повторно использовать z. Либо повторить выражение:
SELECT A.x + A.y AS z FROM A WHERE (A.x + A.y) = 10
SELECT A.x + A.y AS z
WHERE (A.x + A.y) = 10
… либо прибегнуть к производным таблицам, общим табличным выражениям или представлениям данных, чтобы избежать повторения кода. Смотрите примеры ниже.
3. UNION ставится перед ORDER BY в лексическом и логическом порядках. Многие думают, что каждый подзапрос UNION можно упорядочить, но по стандарту SQL и в большинстве диалектов SQL это не так. Хотя в некоторых диалектах позволяется упорядочивание подзапросов или производных таблиц, нет никакой гарантии, что такой порядок будет сохранен после выполнения операции UNION.
Обратите внимание, что не все базы данных реализуют вещи одинаковым образом. Правило номер 2, например, не применяется в точности, как описано выше, для MySQL, PostgreSQL, и SQLite.
Что мы из этого узнаем?
Чтобы избежать распространенных ошибок, всегда следует помнить о лексическом и логическом порядках предложений SQL. Если вы усвоили эти отличия, становится понятным, почему одни вещи работают, другие нет.
Конечно, неплохо, если бы язык был спроектирован таким образом, когда лексическая последовательность фактически отражает логический порядок, как это реализовано в Microsoft LINQ.
3. Вся суть SQL заключается в ссылках на таблицы
Из-за разницы между лексическим упорядочением и логическим упорядочением большинство новичков, вероятно, думают, что значения столбцов являются объектами первого класса в SQL. Но, нет. Наиболее важными являются ссылки на таблицы.
Стандарт SQL определяет предложение FROM следующим образом:
FROM <table reference>
Вывод предложения FROM — это объединенная ссылка на таблицу объединенного значения всех ссылок. Попробуем это переварить.
Указанная выше запись производит комбинированную ссылку на таблицу значений a и b. Если a имеет 3 колонки и b 5 колонок, тогда выходная таблица “output table” будет состоять из 8 (3 + 5) столбцов.
Записи, содержащиеся в этой комбинированной табличной ссылке являются перекрестным / декартовым произведением a x b. Иными словами, каждая запись a образует пару с записью b. Если a имеет 3 записи, а b 5 записей, описанная выше ссылка на таблицу производит 15 записей (3 x 5).
Этот вывод переводится в предложение GROUP BY (после фильтрации в предложении WHERE), где преобразуется в новый вывод. Разберемся с этим позже.
Если мы посмотрим на эти примеры в свете реляционной алгебры / теории множества, то таблица SQL — это отношение или набор кортежей. Каждое предложение SQL преобразует одно или несколько отношений, чтобы создать новые отношения.
Что мы из этого узнаем?
Всегда думайте категориями ссылок на таблицы, чтобы понять, как данные передаются в предложениях SQL.
4. Ссылки на таблицы SQL могут быть довольно функциональными
Ссылка на таблицу — мощная штука. Примером их силы является ключевое слово JOIN, которое в действительности не является выражением SELECT, а частью специальной ссылки на таблицу. Объединенная таблица, как определено в стандарте SQL (упрощенный):
<table reference> ::= <table name> | <derived table> | <joined table>
Вернемся к нашему примеру:
a может по сути быть объединенной таблицей:
a1 JOIN a2 ON a1.id = a2.id
a1 JOIN a2 ON a1.id = a2.id
Развивая предыдущее выражение, получим:
FROM a1 JOIN a2 ON a1.id = a2.id, b
FROM a1 JOIN a2 ON a1.id = a2.id, b
Хотя не рекомендуется объединять синтаксис, где приводится разделенный запятыми список ссылок на таблицы, с синтаксисом объединенных таблиц, но так можно делать. В результате, объединенная ссылка будет содержать величины a1+a2+b.
Производные таблицы еще мощнее, чем объединенные таблицы. Мы до этого еще дойдем.
Что мы из этого узнаем?
Всегда нужно думать категориями ссылок на таблицы. Это поможет не только понять, как данные переходят в предложениях SQL, (смотрите предыдущий раздел), но и как создаются сложные ссылки на таблицы.
И, что важно, понять, JOIN является ключевым словом для построения соединенных таблиц. А не частью оператора SELECT. Некоторые базы данных позволяют использование JOIN в операторах INSERT, UPDATE, DELETE
5. В SQL следует использовать таблицы JOIN, вместо разделенных запятыми
Ранее мы видели это предложение:
Продвинутые разработчики SQL, вероятно, скажут, что не следует вообще использовать список с разделителями-запятыми, и всегда отображать таблицы JOIN. Это улучшит читаемость инструкции SQL, и тем самым предотвратить ошибки.
Одна очень распространенная ошибка заключается в том, чтобы где-то забыть предикат JOIN. Подумайте о следующем:
FROM a, b, c, d, e, f, g, h WHERE a.a1 = b.bx AND a.a2 = c.c1 AND d.d1 = b.bc — etc…
FROM a, b, c, d, e, f, g, h
Синтаксис соединенных таблиц:
- Безопаснее, так как предикаты join можно размещать вблизи соединенных таблиц, тем самым предотвращая ошибки.
- Более выразительные, так как можно различать OUTER JOIN, INNER JOIN и т. д.
Что мы из этого узнаем?
Всегда применяйте JOIN. Никогда не используйте ссылки на таблицы, разделенные запятыми, в предложениях FROM.
6. Различные операции JOIN в SQL
Операции JOIN состоят, в основном, из следующих пяти видов:
- EQUI JOIN
- SEMI JOIN
- ANTI JOIN
- CROSS JOIN
- DIVISION
Эти термины обычно используются в реляционной алгебре. SQL задействует другие термины для вышеуказанных понятий, если они вообще существуют. Давайте рассмотрим их поближе:
EQUI JOIN
Это наиболее распространенная операция JOIN. Содержит два подвида:
- INNER JOIN (или просто JOIN)
- OUTER JOIN (далее подразделяется на LEFT, RIGHT, FULL OUTER JOIN)
Разницу лучше объяснить на примере:
— Ссылка на таблицу содержит авторов и их книги — Есть одна запись для каждой книги и ее автора. — Авторы без книг НЕ включены author JOIN book ON author.id = book.author_id — Ссылка на таблицу содержит авторов и их книги — Есть одна запись для каждой книги и ее автора. —… ИЛИ есть записи «empty» (пустые) для авторов без книг — («empty» означает, что все столбцы книги равны NULL) author LEFT OUTER JOIN book ON author.id = book.author_id
— Ссылка на таблицу содержит авторов и их книги
— Есть одна запись для каждой книги и ее автора.
— Авторы без книг НЕ включены
author JOIN book ON author.id = book.author_id
— Ссылка на таблицу содержит авторов и их книги
— Есть одна запись для каждой книги и ее автора.
—… ИЛИ есть записи «empty» (пустые) для авторов без книг
— («empty» означает, что все столбцы книги равны NULL)
author LEFT OUTER JOIN book ON author.id = book.author_id
SEMI JOIN
Эта реляционная концепция в SQL может быть выражена двумя способами: С помощью предиката IN или с использованием предиката EXISTS. «Semi» на латыни означает «половина». Этот тип соединения используется для объединения только «половины» ссылки на таблицу. Что это значит? Рассмотрим вновь вышеуказанное объединение автора и книги. Представим, что нам не нужны комбинации автор — книга, а только авторы, у которых есть книги. Тогда можно написать:
— Использование IN FROM author WHERE author.id IN (SELECT book.author_id FROM book) — Использование EXISTS FROM author WHERE EXISTS (SELECT 1 FROM book WHERE book.author_id = author.id)
WHERE author.id IN (SELECT book.author_id FROM book)
WHERE EXISTS (SELECT 1 FROM book WHERE book.author_id = author.id)
Хотя нет общего правила, следует предпочесть IN или EXISTS, но можно сказать примерно так:
Поскольку INNER JOIN также выдают результаты авторов, у которых есть книги, многие начинающие подумают, что можно удалить дубликаты с помощью ключевого слова DISTINCT. Им кажется, что SEMI JOIN можно выразить следующим образом:
— Найти только тех авторов, которые имеют книги SELECT DISTINCT first_name, last_name FROM author JOIN book ON author.id = book.author_id
— Найти только тех авторов, которые имеют книги
SELECT DISTINCT first_name, last_name
JOIN book ON author.id = book.author_id
Так делать не рекомендуется по двум причинам:
- Замедляется производительность, так как база данных только для того, чтобы удалить дубликаты, должна загрузить в память множество данных.
- Такой способ решения не совсем правильный, хотя и приводит к верным результатам в этом примере. Но если вы соединяете больше ссылок на таблицы, удаление дубликатов превращается в реальную проблему.
Подробную информацию о злоупотреблении DISTINCT можно найти в этом посте.
ANTI JOIN
Эта реляционная концепция является полной противоположностью SEMI JOIN. Ее можно образовать, просто добавив ключевое слово NOT в предикатах IN или EXISTS. Пример, где мы выберем тех авторов, у которых нет книг:
— Использование IN FROM author WHERE author.id NOT IN (SELECT book.author_id FROM book) — Использование EXISTS FROM author WHERE NOT EXISTS (SELECT 1 FROM book WHERE book.author_id = author.id)
WHERE author.id NOT IN (SELECT book.author_id FROM book)
WHERE NOT EXISTS (SELECT 1 FROM book WHERE book.author_id = author.id)
Применяются те же правила в отношении производительности, читаемости и выразительности. Однако есть небольшой нюанс в отношении NULL при использовании NOT IN, но эта тема выходит за рамки нашего урока.
CROSS JOIN
Этот оператор создает перекрестное произведение двух соединенных ссылок на таблицу, комбинируя каждую запись первой ссылки с записью второй ссылки на таблицу. Мы уже видели раньше, что это может быть достигнуто посредством ссылок на таблицы с разделителями-запятыми в предложении FROM. В редких случаях, когда это действительно необходимо, в большинстве диалектов SQL перекрестное соединение CROSS JOIN можно написать явным образом:
— Объединить каждого автора с книгой author CROSS JOIN book
— Объединить каждого автора с книгой
author CROSS JOIN book
DIVISION
Реляционное деление — вот кто настоящий зверь. В кратце, если JOIN это умножение, division (деление) — противоположность операции JOIN. Реляционные деления очень трудно выразить в SQL. Поскольку этот урок для начинающих, деление мы не рассматриваем. Для самых храбрых информация находится здесь, здесь и здесь.
Что мы из этого узнаем?
Много чего. Давайте запихнем это в наши головы. В SQL повсюду ссылки на таблицы. Соединяемые таблицы представляют собой довольно сложные ссылки на таблицы. Но между реляционными выражениями и выражениями SQL есть разница. Не все операции реляционного соединения также являются формальными операциями соединения SQL. Имея немного практики и знаний в реляционной теории, вы всегда сможете выбрать верный тип реляционного соединения JOIN и правильно представить его на языке SQL.
7. Производные таблицы SQL похожи на табличные переменные
Раньше мы узнали, что SQL является декларативным языком, и не имеет переменных (хотя в некоторых диалектах SQL они существуют). Но можно написать нечто похожее на переменные. Эти звери называются производными таблицами.
Производная таблица — это не что иное, как вложенный запрос, заключенный в круглые скобки.
— Производная таблица FROM (SELECT * FROM author)
FROM (SELECT * FROM author)
Обратите внимание, что некоторые диалекты SQL требуют, чтобы производные таблицы имели корреляционное имя (также называемое псевдонимом).
— Производная таблица с псевдонимом FROM (SELECT * FROM author) a
— Производная таблица с псевдонимом
FROM (SELECT * FROM author) a
Производные таблицы великолепны, если необходимо обойти проблемы, вызванные логическим упорядочением предложений SQL. Например, если вы хотите повторно использовать выражение столбца в предложении SELECT и WHERE, просто напишите (диалект Oracle):
— Получить имя и фамилию авторов и их возраст в днях SELECT first_name, last_name, age FROM ( SELECT first_name, last_name, current_date — date_of_birth age FROM author ) — Если возраст больше, чем 10000 дней WHERE age > 10000
— Получить имя и фамилию авторов и их возраст в днях
SELECT first_name, last_name, age
SELECT first_name, last_name, current_date — date_of_birth age
— Если возраст больше, чем 10000 дней
WHERE age > 10000
Обратите внимание, что некоторые базы данных и стандарт SQL:1999 подняли производные таблицы на следующий уровень введением обобщенных табличных выражений. Это позволит повторно использовать одну и ту же производную таблицу несколько раз в одной инструкции SQL SELECT. Приведенный выше запрос будет переведен на (почти) эквивалент:
WITH a AS ( SELECT first_name, last_name, current_date — date_of_birth age FROM author ) SELECT * FROM a WHERE age > 10000
Сортировка (ORDER BY)
Ограничение (LIMIT)
- Делать выборку определённых полей, а не всех полей таблицы. Для этого после команды SELECT необходимо ставить не *, а название выбираемых полей через запятую.
- Использовать условия WHERE, которые ограничивают размер выборки.
- Использовать LIMIT (лимит) на количество выбираемых строк.
Установка лимита на выборку может значительно ускорить некоторые запросы к базе. Не забывайте, что чем медленнее загружаются страницы Вашего сайта, тем меньше посетителей на нём будет. Потому что люди не любят ждать загрузки страницы. Загрузка длительностью более 2 секунд отталкивает от сайта более 60% его аудитории.
Переименовывание столбца при запросе (AS)
Количесво строк в выборке (COUNT)
SQL SELECT AS — Essential SQL
Переименование столбцов с помощью SQL SELECT AS
Вы можете использовать форму SQL SELECT AS для переименования столбцов в результатах запроса.
До сих пор вы видели, где результаты запросов возвращают результаты, названные в честь столбцов таблицы. Это хорошо для большинства случаев, но как только вы начнете работать с выражениями, вы увидите, что это не работает.
Для переименования столбца используйте AS .
В этом примере мы переименовываем FirstName в First и LastName в Last.
ВЫБЕРИТЕ FirstName AS First , LastName AS Last ОТ персоны. Персона;
AS является необязательным. Можете ли вы переписать вышеуказанный SQL без использования AS?
— Попробуйте переписать наш первый пример без использования AS.
Переименование столбцов может показаться приятным иметь функцию, но это также полезно, когда мы хотим вернуть вычисленный результат.
Например, предположим, что вы хотите вернуть LastName в верхнем регистре. Вы могли бы написать
Но как только вы запустите запрос, вы увидите, что имя столбца не возвращается. Чтобы столбцу было присвоено имя, вы можете использовать AS.
ВЫБЕРИТЕ ВЕРХНИЙ (Фамилия) как [ПОСЛЕДНЕЕ ИМЯ] ОТ персоны. Персона
Можете ли вы написать запрос для выдачи отдельного списка имен в верхнем регистре? Назовите столбец [Отдельные имена].
Напишите ваш запрос ниже, они попробуют.
Дополнительные ресурсы оператора SELECT
Если вы хотите узнать больше о команде SELECT, я бы порекомендовал вам прочитать нашу статью Простые запросы выбора.
Чтобы узнать больше о функциях, таких как UPPER, ознакомьтесь с нашей статьей Введение в общие строковые функции.
Ищете супер книгу SQL? Проверьте SQL-запросы для простых смертных.
sql — MySQL — ВЫБЕРИТЕ КАК ГДЕ
- Товары
- Клиенты
- Случаи использования
- Переполнение стека Публичные вопросы и ответы
- Команды Частные вопросы и ответы для вашей команды
- предприятие Частные вопросы и ответы для вашего предприятия
- работы Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимать технический талант
- реклама Связаться с разработчиками по всему миру
псевдонимов SQL
псевдонимов SQL
Псевдонимы SQL используются, чтобы дать таблице или столбцу в таблице временное имя.
Псевдонимы часто используются, чтобы сделать имена столбцов более читабельными.
Псевдоним существует только на время запроса.
Синтаксис столбца псевдонима
ВЫБЕРИТЕ имя_столбца AS имя_псевдонима
ОТ table_name;
Синтаксис таблицы псевдонимов
ВЫБЕРИТЕ Имена столбцов
ОТ имя_стола AS имя_псевдонима;
Демо База данных
В этом уроке мы будем использовать хорошо известную базу данных Northwind.
Ниже приведен выбор из таблицы «Клиенты»:
| ID клиента | CustomerName | ContactName | Адрес | Город | Почтовый индекс | Страна |
|---|---|---|---|---|---|---|
| 2 | Ана Трухильо Эмпаредадос и Хеладос | Ана Трухильо | Avda. de la Constitución 2222 | Мехико Д.F. | 05021 | Мексика |
| 3 | Антонио Морено Такерия | Антонио Морено | Матадерос 2312 | México D.F. | 05023 | Мексика |
| 4 | вокруг рога | Томас Харди | 120 Ганновер пл. | Лондон | WA1 1DP | Великобритания |
И выбор из таблицы «Заказы»:
| OrderID | ID клиента | ID сотрудника | ЗаказатьДата | ShipperID |
|---|---|---|---|---|
| 10354 | 58 | 8 | 1996-11-14 | 3 |
| 10355 | 4 | 6 | 1996-11-15 | 1 |
| 10356 | 86 | 6 | 1996-11-18 | 2 |
Псевдоним для столбцов Примеры
Следующий оператор SQL создает два псевдонима, один для CustomerID столбец и один для столбца CustomerName:
Пример
ВЫБЕРИТЕ CustomerID AS ID, CustomerName AS Customer
ОТ клиентов;
Следующий оператор SQL создает два псевдонима, один для CustomerName столбец и один для столбца ContactName. Примечание: Требуется двойные кавычки или квадратные скобки, если псевдоним содержит пробелы:
Пример
ВЫБЕРИТЕ CustomerName AS Клиент, ContactName AS [Контактное лицо]
ОТ клиентов;
Следующая инструкция SQL создает псевдоним с именем «Address», который объединяет четыре столбца (Address, PostalCode, Город и Страна):
Пример
ВЫБЕРИТЕ CustomerName, Address + ‘,’ + PostalCode + » + City + ‘,’ + Country AS Адрес
ОТ клиентов;
Примечание: Чтобы использовать приведенный выше оператор SQL для работы в MySQL, используйте следующее:
ВЫБЕРИТЕ CustomerName, CONCAT (Address, ‘,’, PostalCode, ‘,’, City, ‘,’, Country) AS Адрес
ОТ клиентов;
Псевдоним для таблиц Пример
Следующий оператор SQL выбирает все заказы от клиента с CustomerID = 4 (вокруг рога).Мы используем таблицы «Клиенты» и «Заказы», и дайте им псевдонимы таблиц «c» и «o» соответственно (здесь мы используем псевдонимы, чтобы сделать SQL короче):
Пример
ВЫБЕРИТЕ o.OrderID, o.OrderDate, c.CustomerName
ОТ Клиентов AS c, Заказы AS o
ГДЕ c.CustomerName = ‘Вокруг Рога’ И c.CustomerID = o.CustomerID;
Следующий оператор SQL такой же, как указано выше, но без псевдонимов:
Пример
ВЫБРАТЬ Заказы.OrderID, Orders.OrderDate, Customers.CustomerName
ИЗ Клиентов, Заказы
ГДЕ Customers.CustomerName = ‘Вокруг Рога’ И Клиенты.CustomerID = Orders.CustomerID;
Псевдонимы могут быть полезны, когда:
- В запросе участвует более одной таблицы
- Функции используются в запросе
- Имена столбцов большие или не очень читаемые
- Два или более столбцов объединены вместе
sql — Почему «Select» называется оператором DML?
- Товары
- Клиенты
- Случаи использования
- Переполнение стека Публичные вопросы и ответы
- Команды Частные вопросы и ответы для вашей команды
- предприятие Частные вопросы и ответы для вашего предприятия
- работы Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимать технический талант
- реклама Связаться с разработчиками по всему миру
Добавить комментарий Отменить ответ
© 2019 Штирлиц Сеть печатных салонов в Перми
Цифровая печать, цветное и черно-белое копирование документов, сканирование документов, ризография в Перми.