Sql as: Оператор SQL AS: синтаксис, примеры

Содержание

Добавление WHERE к оператору AS в SQL

Можно ли добавить оператор WHERE к оператору AS? Когда я запускаю sql, как это всегда терпит неудачу. Мне просто нужен какой-то пример, и я ничего не смог найти в стеке из своих поисков.

SELECT *, 
COUNT(my_other_table.id) as 'c_others' WHERE my_other_table.active = 1
LEFT JOIN my_other_table on my_accounts.id = my_other_table.account_connection
FROM my_accounts
ORDER BY my_accounts.name

Обратите внимание, как я добавил WHERE my_other_table.active = 1, Вот где я все ломаю

Я не знаю точно, как работают утверждения AS, обычно я не делаю с ними ничего сложного. Но теперь, когда мне это нужно, я не могу понять

sql

Поделиться

Источник


cardi777    

24 апреля 2013 в 10:49

4 ответа




5

Предложение WHERE должно быть в конце списка таблиц, перед необязательным ORDER BY . Посмотрите на это определение структуры, которой должен придерживаться оператор SELECT:

SELECT 
[ DISTINCT | ALL ] 
  <select list>
  FROM <table reference list>
[ <where clause> ]             <-- THIS IS THE INTERESTING PART
[ <group by clause> ]
[ <having clause> ]
[ UNION [ALL] <query specification> ]
[ <order by clause> ]

Поэтому ваш запрос должен выглядеть следующим образом:

SELECT *, COUNT(my_other_table.id) AS c_others
FROM my_accounts
LEFT JOIN my_other_table ON my_accounts.id = my_other_table.account_connection
WHERE my_other_table.active = 1
ORDER BY my_accounts.name

Вы также можете добавить условие в предложение ON :

SELECT *, COUNT(my_other_table.id) AS c_others
FROM my_accounts
JOIN my_other_table ON 
   my_accounts.id = my_other_table.account_connection
   AND my_other_table.active = 1
ORDER BY my_accounts.name

Оператор AS не делает ничего, кроме указания псевдонима для выбранного поля. Это может быть полезно, когда имя поля слишком длинное, вы хотите определить имя для вызова функции (например COUNT(column) AS counter , так же, как вы его использовали) или чтобы избежать конфликтов имен при объединении таблиц с похожими именами столбцов. Вы также можете использовать AS для указания псевдонима имени таблицы , чтобы избежать необходимости вводить его более одного раза.

Редактировать:

Как отмечено в комментариях HamletHakobyan: COUNT -это функция агрегирования, которая может потребовать, чтобы вы использовали предложение GROUP BY для других полей, выбранных в вашем операторе. Поэтому вам нужно расширить * в фактические имена полей и сделать это следующим образом:

SELECT
   my_accounts.name, 
   my_accounts.firstname, 
   COUNT(my_other_table.id) AS c_others
FROM my_accounts
JOIN my_other_table ON 
   my_accounts.id = my_other_table.account_connection
   AND my_other_table.active = 1
GROUP BY my_accounts.name, my_accounts.firstname
ORDER BY my_accounts.name

Поделиться


Till Helge    

24 апреля 2013 в 10:52



0

Вы можете просто добавить предложение WHERE как:

SELECT *, 
    COUNT(my_other_table.id) as 'c_others'
FROM my_accounts
    LEFT JOIN my_other_table
        ON my_accounts.id = my_other_table.account_connection
WHERE my_other_table.active = 1
GROUP BY <list all necessary fields>
ORDER BY my_accounts.name

или,если вы хотите получить выборочное количество элементов, используйте это

SELECT <list all necessary fields>, 
    COUNT(CASE WHEN my_other_table.active = 1 THEN my_other_table.id END) as 'c_others'
FROM my_accounts
    LEFT JOIN my_other_table
        ON my_accounts.id = my_other_table.account_connection
GROUP BY <list all necessary fields>
ORDER BY my_accounts.name

Поделиться


Hamlet Hakobyan    

24 апреля 2013 в 10:53




0

AS просто вводит новое имя для объекта (столбца, таблицы и т. Д.). Таким образом, применение к нему WHERE не имеет смысла (поскольку имя столбца в данном случае) фиксировано для всего результирующего набора.

На первый взгляд, вы действительно хотите изменить COUNT , чтобы считать только те строки, где active равно 1:

SELECT *, 
SUM(CASE WHEN my_other_table.active = 1 THEN 1 ELSE 0 END) as 'c_others'
LEFT JOIN my_other_table on my_accounts.id = my_other_table.account_connection
FROM my_accounts
ORDER BY my_accounts.name

Поделиться


Damien_The_Unbeliever    

24 апреля 2013 в 10:53



0

КАК и просто ключевое слово, чтобы дать имя столбцу. Что удобно в сложных определениях столбцов. Имя будет работать только в результате запроса, но не в запросе — вы не можете ссылаться на него в том же запросе. Тогда вам придется использовать подзапрос.

WHERE (как и другие ключевые слова) имеют свое место в запросе, как было написано до Хельге.

Поделиться


Unknown    

24 апреля 2013 в 11:01


Похожие вопросы:

Добавление псевдонима к оператору WHERE в SQL

Я пытаюсь понять, как добавить псевдоним к аббревиатурам Штатов. Пример: QUERY: SELECT DISTINCT CHAPTER, COUNT(CHAPTER)AS MEMBERS FROM Name WHERE MEMBER_RECORD = ‘1’ AND COUNTRY in (»,’ ‘,’United…

SQL select AS — добавление текста

Можно ли добавить текст к оператору SQL select? напр.: var query = SELECT id, + picture FROM people; к var query = SELECT id, + picture AS ‘./directory/’ + picture FROM people;

Значительно ли увеличивает производительность добавление «TOP 1» к оператору sql?

В запросе SQL добавление TOP 1 к SELECT TOP 1 [values] FROM [TABLE] where [TABLE].Value = ABC дайте мне повышение производительности, когда я знаю, что есть только одна из этих записей? В частности,…

В SQL Server выполняется ли переход к следующему оператору, если первый оператор выдает ошибку?

У меня есть SP, который содержит несколько запросов update и insert. Если какой-либо запрос выдает ошибку, переходит ли выполнение к следующему оператору? Например, CREATE PROCEDURE Test() AS BEGIN…

добавление переменной where внутри sql

если пользователь выберет что-либо, кроме all, это приведет к оператору where, включающему KodDaerah $where = »; $sql= SELECT * FROM maklumatakaun LEFT JOIN detailakaun ON maklumatakaun.id =…

попытке добавить where, чтобы sql заявление

HiI я пытаюсь присоединить предложение where к оператору sql следующим образом public static DataTable paymentType(string paymenttype, string ddproviders, string overdue) { string paymenttypestr = ;…

PhpMyAdmin добавляет WHERE 1 к каждому оператору по умолчанию

Просто любопытный вопрос. Почему phpMyadmin добавляет WHERE 1 к каждому оператору в поле ввода запроса SQL? Например, SELECT * FROM User WHERE 1

как поздняя привязка параметра к динамическому оператору sql в хранимой процедуре

Я пытаюсь динамически построить оператор T-SQL на основе таблицы FieldMapping и некоторых бизнес-правил. Короче говоря, у меня есть функция, которая вернет оператор SQL как varchar(max), который я…

Привязка параметров к частичному оператору SQL

Я имею дело со старым приложением PHP, и мне было поручено убедиться, что все области используют подготовленные заявления. В настоящее время он использует sprintf для построения большей части…

Ошибка со строкой SQL: «ошибка при подключении к оператору PostgreSQL не существует: дата = целое число»

У меня есть сценарий Python(3), который должен запускаться каждое утро. В нем я называю некоторые SQL. Однако я получаю сообщение об ошибке: Ошибка при подключении к оператору PostgreSQL не…

Microsoft SQL Server Standard Edition в Нижнем Новгороде

Лицензирование продукта

Платформа Microsoft SQL Server Standard Edition лицензируется по числу пользователей.  

  • Лицензирование на базе вычислительных мощностей (Core-based) – зависит от мощности сервера, выраженной в ядрах. Лицензии на основе числа ядер продаются в комплектах для двух ядер физических или виртуальных процессоров. Чтобы правильно лицензировать свой физический сервер, необходимо получить лицензии на все ядра этого сервера. Минимально возможное число лицензий на каждый физический процессор сервера составляет 4 лицензии на ядро. Клиентские лицензии не требуются.
  • Лицензирование по числу пользователей/устройств – оптимальная модель для предприятий с небольшим числом пользователей баз данных. Предполагает покупку лицензий для каждого сервера баз данных под управлением Microsoft SQL Server и приобретение клиентских лицензий Microsoft SQL Server CAL. Чтобы получить доступ к лицензированному SQL-серверу Microsoft, каждый пользователь/устройство должен иметь лицензию SQL Server CAL той же или более новой версии (например, чтобы получить доступ к серверу SQL Server 2008 SE, пользователь/устройство должен иметь лицензию SQL Server 2008 или 2012 CAL). Каждая лицензия SQL Server CAL может обеспечивать доступ к нескольким лицензированным серверам SQL Server.

Варианты поставки Microsoft SQL Server Standard Edition

  • Коробка – включает DVD-дистрибутив ПО на русском или английском языке, 10 клиентских лицензий, лицензионное соглашение, сертификат подлинности. Покупка ПО Microsoft в коробочной версии является простым способом приобретения продукта для частных пользователей и небольших организаций. Права на использование коробочных версий продуктов Microsoft изложены в лицензионном соглашении конечного пользователя. . Подтверждением лицензионных прав пользователя является сертификат подлинности, наклеенный на коробку. Для дополнительного подтверждения лицензионных прав и целей бухучета рекомендуется сохранять упаковку, информационные носители (диски с голограммой, если они есть в составе продукта) и документы, подтверждающие покупку.
  • Корпоративная лицензия OLP – предназначена для приобретения несколько копий (лицензий) программных продуктов Microsoft. Уже при покупке 5 лицензий пользователь получает значительную скидку по сравнению со стоимостью приобретения тех же продуктов в виде коробки. OLP предоставляет бессрочные права на использование текущих и предыдущих версий продуктов. Вместе с лицензиями OLP можно приобрести подписку на программу поддержки Microsoft Software Assurance (SA), предоставляющую право обновлять ПО до новых версий и некоторые дополнительные преимущества (пакеты бесплатных услуг и инструментов) на срок 24 месяца. По окончании 24-х месяцев можно приобрести отдельные лицензии на продление SA. Права на использование продуктов, предоставляемые лицензиями OLP изложены в официальном документе Microsoft Product Use Rights (PUR). Минимальный первичный заказ – 5 лицензий OLP на любые продукты. Последующие заказы в течение двух лет могут быть на любое количество лицензий (необходимо предъявлять авторизованный номер соглашения). После приобретения OLP-лицензии на сайте Microsoft VLSC  покупателю предоставляется доступ к ключам и установочному файлу текущих и предыдущих версий продукта (доступ открывается примерно через 2 рабочих дня).

Сравнительная таблица OLP-лицензий и коробочных версий








Права пользователяПрограммы корпоративного лицензированияКоробка (FPP)
Право использования предыдущей версии (downgrade)+ 
Возможность установить и использовать несколько копий ПО на одном ПКЛюбое количество копийОдна копия
Возможность установить дополнительную копию ПО на портативное устройство для использования единственным основным пользователем лицензированного устройства++
Возможность установить дополнительную копию ПО на сетевое устройство+ 
Перенос на другой ПК

Разрешен не чаще, чем один раз в 90 дней

Передача третьему лицуРазрешается в соответствии с условиями соглашенияРазрешена однократная передача при условии удаления ПО и передачи всех компонентов


Подробная информация по лицензированию доступна на сайте Microsoft.






















ХарактеристикиStandartEnterprise
Описание

  • Кластеры больших данных SQL Server 2019
  • Виртуализация данных через PolyBase
  • Повышенная производительностьАвтоматическая интеллектуальная настройка баз данных
  • Azure Data Studio с поддержкой ноутбуков

  • Ведущая в отрасли производительность с непревзойденной масштабируемостью
  • Неограниченные преимущества виртуализации
  • Хранилище данных в масштабе Petabyte
  • Критически важные для бизнеса Home Assistant в Windows и Linux
  • Низкая совокупная стоимость владения 
  • Доступ к Power Bl


 

Максимальное количество ядерДо 24 ядер процессораНеограниченное количество ядер процессора
Память

До 128 Гб памяти

Неограниченная память

Хранилище данных524Пб524Пб
Кластеры больших данных SQL Server 2019 с Apache Spark и HDFS, встроенными в движок SQL Server
Виртуализация данных с использованием PolyBase (включая дополнительные источники данных, такие как Oracle, Teradata, MongoDB и другие базы данных SQL Server
Унифицированная платформа искусственного интеллекта для обучения и эксплуатации моделей с помощью служб SQL Server ML- 
Совместимость
Поддержка UTF-8
Поддержка расширения SQL Server Java- 
Интеллектуальная обработка запроса: скалярная пользовательская функция встраивания, табличную переменную отложенной компиляции, приблизительный подсчет различных значений
Интеллектуальные функции обработки запросов: обратная связь с памятью в режиме строки, пакетный режим для хранения строк и автоматическая настройка+
Автоматическая перенаправление соединения на чтение и запись+
Ускоренное восстановление базы данных
Всегда шифруется с помощью защищенных анклавов
Прозрачное шифрование базы данных
Классификация и аудит данных
Оценка уязвимости
Azure Data Studio для управления SQL Server, включая поддержку T-SQL с помощью ноутбуков
Прямой запрос служб SQL Server Analysis Services

Часто задаваемые вопросы:
Какие есть модели лицензирования?
«Сервер + клиенты» — лицензирование серверов, пользователей и устройств.

Данная модель обычно используется для работы на серверах с небольшим числом клиентов. На каждое устройство или пользователя, который использует функционал SQL Server с помощью приложений или напрямую, нужна клиентская лицензия.  На каждый сервер или компьютер, на котором установлен SQL Server, требуется серверная лицензия.

 
«По ядрам» — лицензирование ядер в операционной среде, в которой запускается SQL Server.

Клиентские лицензии (CAL) не требуются. Такая модель подходит для серверов с неизмеримым или большим количеством клиентов (например, для веб-сайтов). Лицензии выпускаются на два ядра. Необходимое количество двух-ядерных лицензий равно половине от числа ядер в операционной среде, в которой запускается SQL Server, но не менее двух двух-ядерных лицензий на одну операционную среду.

Какие бывают редакции SQL Server 2019?

Редакции: Developer, Enterprise, Standard, Express

Редакции Express и Developer – бесплатные.

Как лицензируются клиенты?

Редакция SQL Server 2019 Enterprise лицензируется только «по ядрам». Эта модель лицензирования разрешает неограниченное количество клиентов сервера. Поэтому, для SQL Server Enterprise клиентские лицензии не требуются.


Редакция SQL Server 2019 Standard, в зависимости от ситуации, может лицензироваться «по ядрам» или по модели «сервер + клиенты».

1.  Количество клиентов не измеримо – необходимо выбрать лицензирование «по ядрам»;

2.  Количество клиентов велико – сравните цены «по ядрам» и «сервер + клиенты» и выберете оптимальный по стоимости вариант.

3.  Количество клиентов не велико и стабильно – выбирайте лицензирование по модели «сервер + клиенты». Это экономически целесообразно.

Клиентские лицензии SQL Server CAL требуются только для SQL Server Standard, который используется небольшим и относительно стабильным количеством клиентов.

Клиентские лицензии SQL Server CAL (Client Access License) выпускаются: «на пользователя» и «на устройство».


Владелец лицензии SQL Server обязан приобрести User CAL для всех пользователей, использующих его сервер(ы), или Device CAL для всех устройств, с помощью которых пользователи используют его сервер(ы), напрямую взаимодействуя с интерфейсами устройств.

Примеры вариантов приобретения:

1)  SQL Server используют 10 пользователей с помощью 10 конкретных устройств.

Можно приобрести и 10 User CAL, и 10 Device CAL равнозначен (цены лицензий одинаковые).

 

2)  SQL Server используют 10 пользователей с помощью 15 конкретных устройств.

Выгоднее приобрести 10 User CAL, чем 15 Device CAL.

 

3)  SQL Server используют 10 пользователей с помощью каких-то устройств.

Лучше приобретать 10 User CAL.

 

4)  SQL Server используют 10 пользователей с помощью 5 устройств.

Выгоднее приобрести 5 Device CAL, чем 10 User CAL.

 

5)  SQL Server используют сколько-то пользователей с помощью 10 конкретных устройств.


Лучше приобретать 10 Device CAL.

Не имеет значения для расчета требуемого количества SQL Server CAL:

  • число серверов SQL Server;
  • число терминальных серверов между SQL Server и клиентами;
  •  число бизнес-приложений между SQL Server и клиентами;
  • число учетных записей на серверах;
  • число одновременных подключений к серверам;
  • наличие одного коннекта к серверу на всех пользователей
  •  принадлежность пользователей к штату какой-либо организации;
  •  принадлежность устройств к каким-либо организациям или людям.

 Для расчета клиентского доступа SQL Serverнеобходимо учитывать следующие факторы:

  • Лицензию Device CAL разрешено переназначать на другое устройство не чаще 1 раз в 90 дней, если переназначение не связано с неисправностью устройства.
  • Лицензию User CAL разрешено переназначать другому пользователю не чаще 1 раза в 90 дней, если переназначение не связано с постоянным или временным отсутствием человека.
  • Содержание процедуры назначения/переназначения лицензий не регламентировано компанией Microsoft.
  • Лицензии CAL предоставляют право использования функционала серверов предыдущих версий (право Downgrade).
  • Лицензии CAL не имеют технологических процедур администрирования.

 
Как лицензировать SQL Server Standard на терминальном сервере?

!Наличие одного или нескольких терминальных серверов между SQL Server Standard и клиентами не уменьшает количество требуемых клиентских лицензий SQL Server CAL.

Внимание!

  • Основным сервером для всех остальных является WinServer
  • SQL Server можно установить только после установки WinServer.
  • Exchange Server можно установить только после установки WinServer.
  • Skype for Bussines можно установить только после установки WinServer и SQL Server.
  • SharePoint Server можно установить только после установки WinServer и SQL Server.
  • Project Server можно установить только после установки WinServer, SQL Server и SharePoint Server.
  •  Office Standard/ Pro Plus можно установить только после WinServer.
  • Access можно установить только после WinServer.
  • Word можно установить только после WinServer.

Как происходит лицензирование SQL Sever в мультиплексированной прикладной среде?

Мультиплексирование — это процесс, который позволяет группировать соединения, пересылать информацию или уменьшать количество устройств или пользователей, работающих непосредственно с SQL Server.

Внимание!

Лицензируя сервер по принципу «клиентская лицензия + сервер», необходимо покупать клиентскую лицензию на SQL Server, даже при получении доступа не напрямую, а через другие устройства или приложения.

  •  Мультиплексирование не уменьшает количество необходимых лицензий. Пользователям необходимо иметь лицензии независимо от того, взаимодействуют они с SQL Server напрямую или нет.
  • SQL Server CAL требуется для всех пользователей или устройств, которые автоматически получают доступ к серверу, данным или содержимому с сервера, файлам.
  •  Количество требуемых клиентских лицензий не зависит от количества аппаратных или программных уровней между SQL Server и пользователями или устройствами, на которых будут выполняться данные, службы или функциональные возможности.

     

Amazon RDS для SQL Server – Amazon Web Services (AWS)

SQL Server – это система управления реляционными базами данных, разработанная корпорацией Microsoft. Amazon RDS for SQL Server упрощает настройку, эксплуатацию и масштабирование развертываний SQL Server в облаке. Amazon RDS поможет за считаные минуты выполнить развертывание множества выпусков SQL Server (2012, 2014, 2016, 2017 и 2019), включая выпуски Express, Web, Standard и Enterprise, и сэкономить средства благодаря масштабированию вычислительных ресурсов. Amazon RDS способен решить множество трудоемких задач по управлению базой данных: выделение ресурсов, создание резервных копий, обновление ПО, мониторинг и масштабирование аппаратных ресурсов. Это позволяет нашим клиентам полностью сосредоточиться на разработке приложений.

Amazon RDS для SQL Server поддерживает модель лицензирования «лицензия включена». Отдельно приобретать лицензии Microsoft SQL Server не требуется. При оплате по модели с включенной лицензией в цену входит стоимость программного обеспечения, базовых аппаратных ресурсов и возможностей управления Amazon RDS.

При этом взимается почасовая плата без авансовых платежей или каких-либо долговременных обязательств. Кроме того, вы можете также купить зарезервированные инстансы баз данных на один год или на три года. Используя зарезервированные инстансы баз данных, вы однократно вносите небольшой авансовый платеж за каждый из них, а затем платите почасовую плату с большой скидкой, что позволяет сэкономить до 65 % средств.

Инстансы БД SQL Server сервиса Amazon RDS могут быть выделены либо со стандартным хранилищем, либо с хранилищем с выделенными ресурсами ввода-вывода. Amazon RDS Provisioned IOPS – это вариант хранения, предназначенный для обеспечения быстрой, предсказуемой и последовательной производительности ввода‑вывода и оптимизированный для рабочих нагрузок транзакционных (OLTP) баз данных с большим количеством операций ввода‑вывода.

Псевдонимы в Oracle PL/SQL — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

В этом учебном пособии вы узнаете, как использовать в Oracle ALIASES (псевдонимы для столбцов или таблиц) с синтаксисом и примерами.

Описание

Oracle ALIASES можно использовать для создания псевдонима для столбца или таблицы.

ALIASES столбцов используются для упрощения чтения столбцов в вашем результирующем наборе.
ALIASES таблиц используются для сокращения вашего SQL-кода, чтобы упростить его чтение или когда вы выполняете самостоятельное соединение (то есть: перечисление одной и той же таблицы более одного раза в предложении FROM).

Синтаксис

Синтаксис для ALIAS столбцов в Oracle / PLSQL:

column_name AS alias_name

ИЛИ
Синтаксис для ALIAS таблиц в Oracle / PLSQL:

table_name alias_name

Параметры или аргументы

column_name — исходное имя столбца, которому вы хотите указать псевдоним.
table_name — исходное имя таблицы, которой вы хотите указать псевдоним.
alias_name — псевдоним для назначения.

Примечание

Если alias_name содержит пробелы, вы должны заключить alias_name в кавычки.

Пример ALIAS как столбец

Как правило, псевдонимы используются для упрощения чтения заголовков столбцов в вашем результирующем наборе. Например, при конкатенации полей вы можете получить следующий результат.

Например:

SELECT contact_id, first_name || last_name AS NAME
FROM contacts
WHERE last_name = ‘Anderson’;



SELECT contact_id, first_name || last_name AS NAME

FROM contacts

WHERE last_name = ‘Anderson’;

В этом примере мы заменили второй столбец (то есть: first_name и last_name конкатенировали) как NAME. В результате NAME будет отображаться как заголовок для второго столбца при возврате результирующего набора. Поскольку наше имя alias_name не содержит пробелов, мы не обязаны оборачивать alias_name в кавычки.

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

SELECT contact_id, first_name || last_name AS «NAME»
FROM contacts
WHERE last_name = ‘Anderson’;



SELECT contact_id, first_name || last_name AS «NAME»

FROM contacts

WHERE last_name = ‘Anderson’;

Затем давайте посмотрим на пример, где мы должны заключить alias_name в кавычки.
Например:

SELECT contact_id, first_name || last_name AS «CONTACT NAME»
FROM contacts
WHERE last_name = ‘Anderson’;



SELECT contact_id, first_name || last_name AS «CONTACT NAME»

FROM contacts

WHERE last_name = ‘Anderson’;

В этом примере мы сменили второй столбец (то есть: first_name и last_name конкатенировали) как «CONTACT NAME». Поскольку в этом псевдониме есть пробелы, «CONTACT NAME» должно быть заключено в кавычки.

Пример ALIAS таблица

Когда вы создаете псевдоним для таблицы, это либо потому, что вы планируете перечислить одно и то же имя таблицы более одного раза в предложении FROM (т.е.: join), или вы хотите сократить имя таблицы, чтобы сделать оператор SQL короче и легче читаемый.

Давайте рассмотрим пример ALIAS имя таблицы в Oracle / PLSQL.
Например:

SELECT p.product_id, p.product_name, categories.category_name
FROM products p
INNER JOIN categories
ON p.category_id = categories.category_id
ORDER BY p.product_name ASC, categories.category_name ASC;



SELECT p.product_id, p.product_name, categories.category_name

FROM products p

INNER JOIN categories

ON p.category_id = categories.category_id

ORDER BY p.product_name ASC, categories.category_name ASC;

В этом примере мы создали псевдоним для таблицы products p. Теперь в этой инструкции SQL мы можем ссылаться на таблицу products в виде p.

При создании псевдонимов таблиц нет необходимости создавать псевдонимы для всех таблиц, перечисленных в предложении FROM. Вы можете создавать псевдонимы на любой или всех таблицах.

Например, мы могли бы изменить наш пример выше и создать псевдоним для таблицы categories таким образом.

SELECT p.product_id, p.product_name, c.category_name
FROM products p
INNER JOIN categories c
ON p.category_id = c.category_id
ORDER BY p.product_name ASC, c.category_name ASC;



SELECT p.product_id, p.product_name, c.category_name

FROM products p

INNER JOIN categories c

ON p.category_id = c.category_id

ORDER BY p.product_name ASC, c.category_name ASC;

Теперь у нас есть псевдоним для таблицы categories c, а также псевдоним для таблицы products p.

Не удается найти страницу | Autodesk Knowledge Network

(* {{l10n_strings.REQUIRED_FIELD}})

{{l10n_strings.CREATE_NEW_COLLECTION}}*

{{l10n_strings.ADD_COLLECTION_DESCRIPTION}}

{{l10n_strings.COLLECTION_DESCRIPTION}}
{{addToCollection.description.length}}/500

{{l10n_strings.TAGS}}
{{$item}}

{{l10n_strings.PRODUCTS}}

{{l10n_strings.DRAG_TEXT}}

 

{{l10n_strings.DRAG_TEXT_HELP}}

{{l10n_strings.LANGUAGE}}
{{$select.selected.display}}

{{article.content_lang.display}}

{{l10n_strings.AUTHOR}}

 

{{l10n_strings.AUTHOR_TOOLTIP_TEXT}}

{{$select.selected.display}}

{{l10n_strings.CREATE_AND_ADD_TO_COLLECTION_MODAL_BUTTON}}
{{l10n_strings.CREATE_A_COLLECTION_ERROR}}

Какова цель ключевого слова SQL «AS»?

На заре SQL он был выбран в качестве решения проблемы того, как обращаться с дублирующимися именами столбцов (см. Примечание ниже).

Чтобы заимствовать запрос из другого ответа:

SELECT P.ProductName,
       P.ProductRetailPrice,
       O.Quantity
  FROM Products AS P
       INNER JOIN Orders AS O ON O.ProductID = P.ProductID
 WHERE O.OrderID = 123456

Столбец ProductID(и, возможно, другие) является общим для обеих таблиц, и поскольку синтаксис условия соединения требует ссылки на обе таблицы, «точечная квалификация» обеспечивает устранение неоднозначности.

Конечно, лучшим решением было бы никогда не допускать дублирования имен столбцов! К счастью, если вы используете более новый NATURAL JOINсинтаксис, необходимость в переменных диапазона Pи Oуходит:

SELECT ProductName, ProductRetailPrice, Quantity
  FROM Products NATURAL JOIN Orders
 WHERE OrderID = 123456

Но почему ASключевое слово необязательно? Моя личная беседа с членом комитета по стандартизации SQL (Джо Селко или Хью Дарвеном) состояла в том, что их воспоминания заключались в том, что на момент определения стандарта продукт одного поставщика (Microsoft?) Требовал его включения, а другого — поставщика. продукт (Oracle?) требовал его упущения, поэтому выбранный компромисс состоял в том, чтобы сделать его необязательным. Я не цитирую это, вы либо верите мне, либо нет!


В первые дни реляционной модели перекрестное произведение (или тэта-соединение или равное соединение) отношений, заголовки которых не являются непересекающимися, создавало отношение с двумя атрибутами с одинаковым именем; Решением этой проблемы Кодд в своем реляционном исчислении было использование точечной квалификации, которая впоследствии была эмулирована в SQL (позже стало понятно, что так называемое естественное соединение было примитивным без потерь; то есть естественное соединение может заменить все тета-объединения и даже перекрестный продукт.)

Источник: Business System 12, примечания к слайдам презентации, представленной Хью Дарвеном на семинаре для разработчиков TTM, Университет Нортумбрии, 2-3 июня 2011 года.

Обзор ключевых слов

SQL AS и примеры

Ключевое слово SQL AS используется для присвоения псевдонима именам таблиц или столбцов в запросах. Таким образом, мы можем увеличить
читаемость и понятность заголовков запросов и столбцов в наборе результатов.

Введение

Если мы стремимся писать более удобочитаемые запросы, использование коротких и лаконичных псевдонимов для таблиц и столбцов будет очень полезным в этой цели. Некоторые запросы могут быть очень сложными и содержать много объединений, к тому же непонятные имена таблиц и столбцов делают эту проблему более сложной и неудобной.На этом этапе для таких запросов удобочитаемость и понятность кода дают заметное преимущество, позволяющее быстро вносить изменения разными разработчиками. В противном случае работа с SQL-запросами, содержащими длинные и сложные столбцы и имена таблиц, может привести к увеличению потребления энергии.

Вкратце, ключевое слово SQL AS, другими словами, использование псевдонимов для имен столбцов генерирует временное имя для
заголовки столбцов и отображаются в наборах результатов запросов. Эта концепция помогает создавать более значимые и
очистить заголовки столбцов.

Синтаксис:

ВЫБРАТЬ имя_столбца_1 AS псевдоним_имя_1,

имя_столбца_2 AS псевдоним_2,

имя_столбца_N AS псевдоним_n

FROM имя_таблицы;

Использование псевдонимов для таблиц может быть очень полезным, когда запрос затрагивает таблицу более одного раза.

Синтаксис:

SELECT имя_столбца_1,

имя_столбца_2,

имя_столбца_N

FROM имя_таблицы AS псевдоним_таблицы;

или

SELECT имя_столбца_1 AS псевдоним_имя_1,

имя_столбца_2 AS псевдоним_2,

имя_столбца_N AS псевдоним_n

FROM имя_таблицы AS псевдоним_таблицы;

В частности, этот тип использования является наилучшей практикой для запросов, содержащих предложения соединения.Теперь сделаем немного
пример в свете этой информации.

Подготовка данных

С помощью следующего запроса мы сгенерируем две таблицы и заполним некоторые данные. Также вы можете попрактиковаться в этом
примеры статьи в SQL Fiddle легко. SQL Fiddle — это бесплатный инструмент, который позволяет нам практиковаться и
тестируйте запросы SQL в режиме онлайн, не требуя никакой базы данных и установки.

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

18

19

20

21

22

23

24

25

26

27

28

29

30

000

000 34

35

36

37

38

39

40

41

42

43

44

45

46

49

0002 47

00030002 47

0003

51

52

53

54

55

56

57

58

59

60

61

62

63

9 0002 64

65

66

67

68

69

70

71

72

73

74

75

76

77

81

82

83

84

85

86

87

88

89

90

91

92

93

000

93

000

000 97

98

99

100

101

102

103

104

105

106

107

108

109

1102

109

1102

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

13

136

137

1382 138

137

1382 138

142

143

144

145

146

147

СОЗДАТЬ ТАБЛИЦУ Customer_InformationListForSale

(ID INT

,

PRIMARY KEY,

CustomerInfList_FirstName VARCHAR (100),

CustomerInf_LastName VARCHAR (100),

_AgeCount2, VARCHAR (100),

_AgeCount2,

_AgeCount2 CustomerInf)

CREATE TABLE OrderTransaction_InformationListForSale

(ID INT

ПЕРВИЧНЫЙ КЛЮЧ,

OrderTransaction_Date DATETIME,

Customer_InformationListForSale_CustID INT,

Amout ПОПЛАВКОВЫЕ,

FOREIGN KEY (Customer_InformationListForSale_CustID) СПРАВОЧНЫЙ Customer_InformationListForSale (ID)

);

INSERT INTO [Customer_InformationListForSale]

([ID],

[CustomerInfList_FirstName],

[CustomerInf_LastName],

[CustomerInf_Age],

ES

ES

ES

ES)

ES

ES

ES

ES N’Lawrence ‘,

N’Williams’,

23,

N’Indonesia ‘

);

ВСТАВИТЬ В [Customer_InformationListForSale]

([ID],

[CustomerInfList_FirstName],

[CustomerInf_LastName],

[CustomerInf_Age],

ES

ES

ES

ES)

ES

ES N’Salvador ‘,

N’Smith’,

56,

N’U.S.A. ‘

);

ВСТАВИТЬ В [Customer_InformationListForSale]

([ID],

[CustomerInfList_FirstName],

[CustomerInf_LastName],

[CustomerInf_Age],

ES

ES

ES

ES)

ES N’Ernest ‘,

N’Jones’,

43,

N’China ‘

);

ВСТАВИТЬ В [Customer_InformationListForSale]

([ID],

[CustomerInfList_FirstName],

[CustomerInf_LastName],

[CustomerInf_Age],

ES

ES

ES

ES

ES)

ES N’Gilbert ‘,

N’Johnson’,

56,

N’Brazil ‘

);

INSERT INTO [Customer_InformationListForSale]

([ID],

[CustomerInfList_FirstName],

[CustomerInf_LastName],

[CustomerInf_Age],

ES

ES

ES

ES)

ES

ES

ES N’Jorge ‘,

N’Brown’,

56,

N’India ‘

);

ВСТАВИТЬ В [OrderTransaction_InformationListForSale]

([ID],

[OrderTransaction_Date],

[Customer_InformationListForSale_CustID],

(

000)

ES ‘

[Amout]

ES -Окт-1784 ‘КАК ДАТА),

1,

1903.12

);

ВСТАВИТЬ В [OrderTransaction_InformationListForSale]

([ID],

[OrderTransaction_Date],

[Customer_InformationListForSale_CustID],

[Amout]

ES ‘

ES

-1799 ‘КАК ДАТА ВРЕМЕНИ),

2,

345690.12

);

INSERT INTO [OrderTransaction_InformationListForSale]

([ID],

[OrderTransaction_Date],

[Customer_InformationListForSale_CustID],

[Amout]

J

ES

-1842 ‘КАК ДАТА ВРЕМЕНИ),

3,

123.90

);

ВСТАВИТЬ В [OrderTransaction_InformationListForSale]

([ID],

[OrderTransaction_Date],

[Customer_InformationListForSale_CustID],

[Amout]

Es

ES

ES

-1880 ‘КАК ДАТА ВРЕМЕНИ),

4,

8765

);

ВСТАВИТЬ В [OrderTransaction_InformationListForSale]

([ID],

[OrderTransaction_Date],

[Customer_InformationListForSale_CustID],

[Amout]

ES

ES

-1828 ‘КАК ДАТА ВРЕМЕНИ),

5,

17893.123

);

Назначение псевдонимов столбцам с помощью ключевого слова SQL AS

Как уже упоминалось, мы можем дать псевдонимы именам столбцов, чтобы сделать их более понятными и читаемыми, также это
псевдоним не влияет на исходное имя столбца и действует только до выполнения запроса. в
по следующему запросу мы дадим FirstName псевдоним CustomerInfList_FirstName и
LastName псевдоним CustomerInf_LastName .

ВЫБРАТЬ CustomerInfList_FirstName

AS FirstName,

CustomerInf_LastName

AS LastName

FROM Customer_InformationListForSale

Наконечник:

В этом совете мы продемонстрируем предыдущий пример на SQL Fiddle. Сначала откроем ссылку
и запрос на подготовку данных появится на панели схемы.Мы щелкнем по схеме сборки, чтобы создать
таблицу и заполните данные.

После построения таблиц мы увидим уведомление «Схема готова» под панелью схемы. В качестве последнего шага мы вставим пример запроса и нажмем кнопку «Выполнить SQL». Итак, мы можем выполнить запрос, и набор результатов появится под схемой и панелью запросов.

После создания тестовых таблиц мы можем вставить запросы и выполнить их с помощью кнопки «Выполнить SQL».Набор результатов появится под страницей.

Как видите, мы использовали ключевое слово AS после имени исходного столбца, а затем указали псевдоним. Поэтому заголовки столбцов были изменены на псевдонимы и стали более понятными.

В разных случаях нам может потребоваться объединить два разных столбца. Однако, если мы не будем использовать псевдоним, результат
набор заголовков столбцов будет «(Без имени столбца)»

ВЫБРАТЬ CONCAT_WS (», CustomerInfList_FirstName, CustomerInf_LastName)

ИЗ Customer_InformationListForSale

В этом случае мы можем использовать ключевое слово SQL AS, чтобы указать псевдоним для этого объединенного столбца.

ВЫБРАТЬ CONCAT_WS (», CustomerInfList_FirstName, CustomerInf_LastName) AS First_LastName

FROM Customer_InformationListForSale

Приведенный выше набор результатов показывает, что мы можем дать псевдоним объединенным столбцам.

Результат большинства встроенных функций SQL не возвращает заголовков столбцов.Например, MIN, MAX, AVG, GETDATE,
Функции ABS, SQRT, DATEADD и т. Д. Действуют следующим образом.

SELECT MAX (CustomerInf_Age),

AVG (CustomerInf_Age),

GETDATE ()

FROM Customer_InformationListForSale;

Теперь мы дадим псевдонимы заголовкам столбцов в следующем запросе.

SELECT MAX (CustomerInf_Age) AS CustomerMaximumAge,

AVG (CustomerInf_Age) AS CustomerAverageAge,

GETDATE () AS DateandTime

FROM Customer_InformationListForSale

Если мы хотим использовать пробел в псевдонимах, мы должны заключить указанный псевдоним в кавычки.В следующем примере
мы продемонстрируем такой пример.

SELECT MAX (CustomerInf_Age) AS «Максимальный возраст клиента»,

AVG (CustomerInf_Age) AS «Средний возраст клиента»,

GETDATE () AS «Дата и время»

FROM Customer_InformationListForSale

Назначение псевдонимов таблицам с помощью ключевого слова SQL AS

Когда мы намереваемся использовать таблицу в запросе более одного раза, мы можем сократить имя таблицы с помощью синтаксиса AS.в
по следующему запросу мы предоставим псевдоним клиента для Customer_InformationListForSale и CustomerOrders
псевдоним OrderTransaction_InformationListForSale.

ВЫБЕРИТЕ Customer.CustomerInfList_FirstName AS «Имя»,

Customer.CustomerInf_LastName AS «Фамилия»,

CustomerOrders.Amout AS «Сумма заказа»

FROM dbo.Customer_O0003000 9000 Dbo.Customer_InformationListForSale 9000 9000 AS2000 .OrderTransaction_InformationListForSale

AS CustomerOrders

ON Customer.ID = CustomerOrders.Customer_InformationListForSale_CustID

Как мы видим, псевдонимы таблиц были помещены после предложения FROM, поэтому нам не пришлось повторно вводить эти длинные имена таблиц в другой раз в любом месте запроса. После ключевого слова ON мы использовали псевдоним таблиц.

Если мы не будем использовать псевдонимы, текст запроса будет иметь следующий вид.

ВЫБОР Customer_InformationListForSale.CustomerInfList_FirstName,

Customer_InformationListForSale.CustomerInf_LastName,

OrderTransaction_InformationListForSale.Amout ОТ dbo.Customer_InformationListForSale

внутреннее соединение

dbo.OrderTransaction_InformationListForSale ПО Customer_InformationListForSale.ID = OrderTransaction_InformationListForSale.Customer_InformationListForSale_CustID

Заключение

В этой статье мы изучили основы использования ключевого слова SQL AS, и, как видно из нашей демонстрации выше, оно дает следующие преимущества:

  • Улучшение читабельности запросов
  • Уменьшить сложность запроса
  • Избегайте повторного ввода длинных имен таблиц
  • Это позволяет нам давать более значимые заголовки столбцов.

Эсат Эркеч — специалист по SQL Server, который начал свою карьеру более 8 лет назад в качестве разработчика программного обеспечения.Он является сертифицированным экспертом по решениям Microsoft SQL Server.

Большую часть своей карьеры он посвятил администрированию и разработке баз данных SQL Server. В настоящее время он интересуется администрированием баз данных и бизнес-аналитикой. Вы можете найти его в LinkedIn.

Посмотреть все сообщения от Esat Erkec

Последние сообщения от Esat Erkec (посмотреть все)

SQL SELECT AS — javatpoint

  • SQL ‘ AS’ используется для временного присвоения нового имени столбцу таблицы или даже таблице.
  • Он упрощает представление результатов запроса и позволяет разработчику более точно маркировать результаты без постоянного переименования столбцов таблицы или даже самой таблицы.
  • Давайте посмотрим на синтаксис select as:

ВЫБЕРИТЕ имя_столбца1 как новое_имя_столбца, имя_столбца2 как новое_имя_столбца ИЗ имя_таблицы;

Здесь Column_Name — это имя столбца в исходной таблице, а New_Column_Name — это имя, присвоенное определенному столбцу только для этого конкретного запроса.Это означает, что New_Column_Name — это временное имя, которое будет присвоено запросу.

Присвоение временного имени столбцу таблицы:

Возьмем таблицу заказов, содержащую следующие данные:

День_заказа Клиент Товар Кол-во
11-09-2001 Ajeet мобильный 2
13-12-2001 Маянк Ноутбук 20
26-12-2004 Баласвами Водомёт 35

Пример:

Предположим, вы хотите переименовать столбец «day_of_order» и столбец «customer» в «Date» и «Client» соответственно.

Запрос:

ВЫБЕРИТЕ day_of_order как «Дата», «Клиент как« Клиент », Продукт, Количество ИЗ заказов;

Результат будет показан в следующей таблице:

День_заказа Клиент Товар Кол-во
11-09-2001 Ajeet мобильный 2
13-12-2001 Маянк Ноутбук 20
26-12-2004 Баласвами Водомёт 35

Из приведенных выше результатов мы видим, что временно Day_of_order переименован в date, а customer — на client.

Примечание. SQL AS — это то же самое, что и SQL ALIAS.

Возьмем другой пример. Представьте, что у нас есть таблица студентов со следующими данными.

123

6

Студенческая катушка № Имя ученика Student_Gender Студент мобильный номер Student_HomeTown Возраст ученика Student_Percentage
1 Rohit Подробнее Мужской 98
Лакхнау 23 75
2 Кунал Шах Мужской 778

84

Чандигарх 20 92
3 Kartik Goenka Мужской 9

3576

Ахемдабад 22 89
4 Анупама Шах Женский 8890 Ченнаи 24 92
5 Снехал Джайн Женский 8657983476 Сурат 21 94

Пример 1:

Напишите запрос, чтобы получить имя учащегося и средний процент учащихся под временными названиями столбцов «Студент» и «Студент_процент» соответственно.

Запрос:

ВЫБЕРИТЕ Student_Name AS Student, AVG (Student_Percentage) AS Average_Percentage FROM студентов;

Здесь для вычисления среднего мы использовали функцию AVG () . Далее вычисленное среднее значение процента будет сохранено под временным именем «Average_Percentage».

Результат будет показан в следующей таблице:

Студент Средний процент
Rohit Подробнее 88.4000

Пример 2:

Напишите запрос, чтобы получить номер списка учащихся и номер мобильного телефона учащегося под временным названием столбца «Номер списка» и «Номер мобильного телефона», соответственно.

Запрос:

mysql> ВЫБРАТЬ Student_RollNo КАК «Номер ролика», Student_PhoneNumber КАК «Номер мобильного телефона» ОТ студентов;

Результат будет показан в следующей таблице:

123

6

Рулон No Мобильный номер
1 98
2 778

84

3 9

3576

4 8890
5 8657983476

Пример 3:

Напишите запрос, чтобы получить номер списка учеников и номер телефона ученика, родной город под временным названием столбца «Номер списка» и «Информация о студенте», соответственно.

Запрос:

mysql> ВЫБРАТЬ Student_RollNo AS ‘Roll No’, CONCAT (Student_PhoneNumber, ‘,’, Student_HomeTown) AS Student_Info ОТ студентов;

Здесь функция CONCAT () объединяет два разных столбца, номер телефона студента и родной город, вместе в один столбец. Кроме того, объединенные значения обоих этих столбцов сохраняются под временно присвоенным именем «Student_Info».

Результат будет показан в следующей таблице:

123, Лакхнау

6, Ченнаи

Рулон No Мобильный номер
1 98
2 778

84, Чандигарх

3 9

3576, Ахемдабад

4 8890
5 8657983476, Сурат

Присвоение временного имени таблице

Вместо того, чтобы запоминать имена таблиц, мы можем создать для них псевдоним.Мы можем присвоить временное имя столбцам таблицы; аналогично мы можем создать псевдоним таблицы.

Разберемся на примере.

Напишите запрос для создания псевдонима таблицы с именем «студенты».

Запрос:

mysql> ВЫБРАТЬ s.Student_RollNo, s.Student_Name, s.Student_Gender, s.Student_PhoneNumber, s.Student_HomeTown FROM студентов AS s WHERE s.Student_RollNo = 3;

Здесь «s» — это псевдоним, т.е.е., временное имя, присвоенное таблице «студенты».

Результат будет показан в следующей таблице:

Студенческая катушка № Имя ученика Student_Gender Студент мобильный номер Student_HomeTown
3 Kartik Goenka Мужской 9

3576

Ахемдабад

Какова цель ключевого слова SQL «AS»?

На заре SQL он был выбран в качестве решения проблемы с дублированием имен столбцов (см. Примечание ниже).

Чтобы заимствовать запрос из другого ответа:

  ВЫБЕРИТЕ P.ProductName,
       P.ProductRetailPrice,
       О.Количество
  ИЗ ПРОДУКТОВ AS P
       INNER JOIN Orders AS O ON O.ProductID = P.ProductID
 ГДЕ O.OrderID = 123456
  

Столбец ProductID (и, возможно, другие) является общим для обеих таблиц, и, поскольку синтаксис условия соединения требует ссылки на обе, «точечная квалификация» обеспечивает устранение неоднозначности.

Конечно, лучшим решением было вообще никогда не допускать дублирования имен столбцов! К счастью, если вы используете более новый синтаксис NATURAL JOIN , необходимость в переменных диапазона P и O отпадает:

  ВЫБЕРИТЕ ProductName, ProductRetailPrice, Quantity
  ОТ Продукты NATURAL JOIN Заказы
 ГДЕ OrderID = 123456
  

Но почему ключевое слово AS необязательно? Насколько я помню из личного обсуждения с членом комитета по стандартизации SQL (Джо Селко или Хью Дарвен), , по их воспоминаниям, было то, что во время определения стандарта продукт одного поставщика (Microsoft?) Требовал его включения и продукт другого производителя (Oracle?) требовал его исключения, поэтому был выбран компромисс, чтобы сделать его необязательным.У меня нет цитаты по этому поводу, вы мне либо верите, либо нет!


На заре реляционной модели перекрестное произведение (или тета-соединение или равное соединение) отношений, заголовки которых не пересекаются, казалось, порождает отношение с двумя атрибутами с одинаковым именем; Решением Кодда этой проблемы в его реляционном исчислении было использование точечной квалификации, которая позже была эмулирована в SQL (позже было понято, что так называемое естественное соединение было примитивным без потерь; то есть естественное соединение может заменить все тета-соединения и даже перекрестное произведение.)

Источник: Business System 12, Примечания к слайдам презентации, представленной на семинаре разработчиков TTM, Университет Нортумбрии, 2-3 июня 2011 г. Хью Дарвеном

Сервер

sql — T-SQL — Псевдоним с использованием «=» вместо «

»

Мне не так повезло, как другим, кто писал здесь. Код, с которым я работаю, обычно написан кем-то другим, и редко бывает, что нет операторов CASE или других вычислений, конкатенаций или логики, которые заставляют одну запись охватывать несколько строк сценария T_SQL.

Использование знака равенства вместо «AS» намного проще для чтения. Знак равенства означает, что псевдоним, который вы ищете, находится в первой позиции строки. Когда используется ‘AS’ и T_SQL занимает несколько строк, псевдоним может быть буквально где угодно.

Намного-намного легче найти псевдоним «Items», когда используется equals, чем когда используется «AS».

  ВЫБРАТЬ
        ElementObligationID = @MaxElementObligationID + eo.ElementObligationID
      , ElementID = eo.ElementID
      , IsotopeID = eo.IsotopeID
      , ObligationID = eo.ObligationID
      , ElementWeight = eo.ElementWeight * -1
      , FissileWeight = eo.FissileWeight * -1
      , Items = CASE WHEN eo.Items <0 THEN eo.Items * -1
                     КОГДА eo.Items> 0 ТО eo.Items
                     Иначе 0 КОНЕЦ
      , Комментарий = eo.Comment
      , AdditionalComment = eo.AdditionalComment
      , Aanmaak_userid = @UserID
      , Aanmaak_tijdstip = GetDate ()
      , Laatste_wijziging_userid = @UserID
      , Laatste_wijziging_tijdstip = GetDate ()
ОТ dbo.KTM_ElementObligation eo
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.KTM_ElementObligationArticle eoa ON
          eoa.ElementObligationID = eo.ElementObligationID
  

А теперь представьте, что у вас более чем в 5 раз больше кода, чем здесь, и вам нужно найти псевдоним «Items».

  ВЫБРАТЬ
      @MaxElementObligationID + eo.ElementObligationID AS ElementObligationID
      , eo.ElementID КАК ElementID
      , eo.IsotopeID КАК IsotopeID
      , eo.ObligationID AS ObligationID
      , eo.ElementWeight * -1 AS ElementWeight
      , эо.FissileWeight * -1 AS FissileWeight
      , СЛУЧАЙ, КОГДА eo.Items <0 THEN eo.Items * -1
             КОГДА eo.Items> 0 ТО eo.Items
             ИНАЧЕ 0 ЗАКОНЧИТЬ КАК Пункты
      , eo.Comment AS Комментарий
      , eo.AdditionalComment AS AdditionalComment
      , @UserID AS Aanmaak_userid
      , GetDate () AS Aanmaak_tijdstip
      , @UserID AS Laatste_wijziging_userid
      , GetDate () AS Laatste_wijziging_tijdstip
ОТ dbo.KTM_ElementObligation eo
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.KTM_ElementObligationArticle eoa ON
          eoa.ElementObligationID = eo.ElementObligationID
  

‘AS’ vs ‘=’ не является капризным и произвольным предпочтением. Я не преувеличиваю, когда говорю, что были случаи, когда на поиск псевдонима, который я ищу, требовалось несколько минут, потому что автор сценария, за поддержку которого я сейчас отвечаю, не использовал знак равенства со своим псевдонимом. Я не могу представить себе большую трату времени, денег и ресурсов, чем платить ИТ-специалисту за поиск псевдонимов в коде !! Есть правильный и неправильный ответ, если вам важны ремонтопригодность, удобочитаемость и эффективность .Ваша задача — приносить пользу для бизнеса, а не тратить день на поиски Уолдо!

SQL: НИКНЕЙМЫ


Это руководство по SQL объясняет, как использовать SQL АЛИАСЫ (временные имена для столбцов или таблиц) с синтаксисом и примерами.

Описание

SQL ALIASES можно использовать для создания временного имени для столбцов или таблиц.

  • НИКНЕЙМЫ КОЛОНК используются для облегчения чтения заголовков столбцов в наборе результатов.
  • НИКНЕЙМЫ ТАБЛИЦ используются для сокращения вашего SQL, чтобы его было легче читать, или когда вы выполняете самостоятельное соединение (то есть: перечисление одной и той же таблицы более одного раза в предложении FROM).

Подписаться

Синтаксис

Синтаксис ALIAS A COLUMN в SQL:

 имя_столбца [AS] псевдоним 

ИЛИ

Синтаксис ALIAS A TABLE в SQL:

 имя_таблицы [AS] псевдоним 

Параметры или аргументы

имя_столбца
Исходное имя столбца, которому вы хотите присвоить псевдоним.
имя_таблицы
Исходное имя таблицы, которой вы хотите присвоить псевдоним.
псевдоним
Временное имя для назначения.

Примечание

  • Если alias_name содержит пробелы, вы должны заключить alias_name в кавычки.
  • Допустимо использовать пробелы при псевдониме имени столбца. Однако обычно не рекомендуется использовать пробелы при псевдониме имени таблицы.
  • псевдоним действителен только в пределах области действия оператора SQL.

DDL / DML для примеров

Если вы хотите следовать этому руководству, получите DDL для создания таблиц и DML для заполнения данных. Тогда попробуйте примеры в своей базе данных!

Получить DDL / DML

Пример — как псевдоним имени столбца

Обычно псевдонимы используются для облегчения чтения заголовков столбцов в наборе результатов.Чаще всего вы используете псевдоним столбца при использовании в запросе агрегатной функции, такой как MIN, MAX, AVG, SUM или COUNT.

Давайте рассмотрим пример того, как использовать псевдоним имени столбца в SQL.

В этом примере у нас есть таблица с именем сотрудников со следующими данными:

сотрудник_номер фамилия имя зарплата dept_id
1001 Смит Иоанна 62000 500
1002 Андерсон Джейн 57500 500
1003 Эверест Брэд 71000 501
1004 Хорват Джек 42000 501

Давайте продемонстрируем, как присвоить столбцу псевдоним.Введите следующий оператор SQL:

Попытайся

 SELECT dept_id, COUNT (*) как итого
ОТ сотрудников
ГРУППА ПО dept_id; 

Будет выбрано 2 записи. Вот результаты, которые вы должны увидеть:

dept_id всего
500 2
501 2

В этом примере мы использовали псевдоним поля COUNT (*) как total.В результате при возврате набора результатов в качестве заголовка второго столбца будет отображаться итог. Поскольку в нашем alias_name не было пробелов, нам не нужно заключать alias_name в кавычки.

Теперь давайте перепишем наш запрос, включив пробел в псевдоним столбца:

 SELECT dept_id, COUNT (*) КАК "общее количество сотрудников"
ОТ сотрудников
ГРУППА ПО dept_id; 

Будет выбрано 2 записи. Вот результаты, которые вы должны увидеть:

dept_id всего сотрудников
500 2
501 2

В этом примере мы присвоили полю COUNT (*) псевдоним «Всего сотрудников», поэтому оно станет заголовком для второго столбца в нашем наборе результатов.Поскольку в этом псевдониме столбца есть пробелы, «всего сотрудников» в операторе SQL необходимо заключить в кавычки.

Пример — Как присвоить псевдониму имя таблицы

Когда вы создаете псевдоним для таблицы, это происходит либо потому, что вы планируете перечислить одно и то же имя таблицы более одного раза в предложении FROM (например, самосоединение), либо вы хотите сократить имя таблицы, чтобы сделать инструкцию SQL короче и легче читать.

Давайте рассмотрим пример того, как задать псевдоним имени таблицы в SQL.

В этом примере у нас есть таблица с названием продуктов со следующими данными:

product_id название_продукта category_id
1 Груша 50
2 Банан 50
3 Оранжевый 50
4 Яблоко 50
5 Хлеб 75
6 Ветчина нарезанная 25
7 Клинекс НУЛЬ

И таблица с названием категорий со следующими данными:

category_id имя_категории
25 Гастроном
50 Продукция
75 Пекарня
100 Товары общего назначения
125 Технологии

Теперь давайте объединим эти 2 таблицы и присвоим каждому из имен псевдонимов.Введите следующий оператор SQL:

Попытайся

 ВЫБЕРИТЕ p.product_name, c.category_name
ИЗ продуктов AS p
Категории INNER JOIN AS c
ВКЛ p.category_id = c.category_id
ГДЕ p.product_name <> 'Груша'; 

Будет выбрано 5 записей. Вот результаты, которые вы должны увидеть:

название_продукта имя_категории
Банан Продукция
Оранжевый Продукция
Яблоко Продукция
Хлеб Пекарня
Ветчина нарезанная Гастроном

В этом примере мы создали псевдоним для таблицы товаров и псевдоним для таблицы категорий .Теперь в этом операторе SQL мы можем ссылаться на таблицу продуктов как p и на таблицу категорий как на c .

При создании псевдонимов таблиц нет необходимости создавать псевдонимы для всех таблиц, перечисленных в предложении FROM. Вы можете создать псевдонимы для любой или всех таблиц.

псевдоним SQL — дочерняя фабрика

Объяснение псевдонима SQL

Псевдоним — это сокращение для имени таблицы или столбца.

Псевдонимы сокращают объем ввода, необходимый для ввода запроса.

Сложные запросы с псевдонимами обычно легче читать.

Псевдонимы полезны для JOIN и агрегатов: SUM, COUNT и т. Д.

Псевдоним существует только на время запроса.

Проблема: Перечислите все имена клиентов с заголовком Имя и именем столбца.

скопировано в буфер обмена

 SELECT FirstName + '' + LastName AS Имя
  ОТ Заказчика
 
  SELECT FirstName + '' + LastName AS Имя
  ОТ Заказчика
  

Попробуйте вживую

Синтаксис для псевдонимов столбцов и таблиц.

ВЫБЕРИТЕ имя-столбца КАК имя-псевдонима
  FROM имя-таблицы псевдоним-имя
 ГДЕ условие
 

SQL-псевдонимы столбцов и таблиц

КЛИЕНТ
Идентификатор
Имя
Фамилия
Город
Страна
Телефон

Задача: Укажите количество клиентов в каждой стране.
Отображайте результаты с помощью понятных заголовков столбцов.

скопировано в буфер обмена

 ВЫБЕРИТЕ C.Country, COUNT (C.Id) КАК «Общее количество клиентов»
  ОТ клиента C
 ГРУППА ПО C.Country
 
  ВЫБЕРИТЕ C.Country, COUNT (C.Id) КАК «Общее количество клиентов»
  ОТ клиента C
 ГРУППА ПО C.Country
  

Попробуйте вживую

Примечание. Всего клиентов — это псевдоним столбца , а C — псевдоним таблицы .
Псевдонимы таблиц обычно представляют собой одиночные символы с заглавной буквы.

Результат: 21 запись

Страна Всего клиентов
Аргентина 3
Австрия 2
Бельгия 2
Бразилия 9
Канада 3

Псевдонимы SQL в ORDER BY, GROUP BY

КЛИЕНТ
Идентификатор
Имя
Фамилия
Город
Страна
Телефон
ЗАКАЗ

Дата заказа
Номер заказа
CustomerId
TotalAmount

Задача: Укажите общую сумму, потраченную клиентом
с легко читаемыми заголовками столбцов.

скопировано в буфер обмена

 ВЫБЕРИТЕ C.Id, C.LastName + ',' + C.FirstName AS 'Имя клиента',
       СУММА (O.TotalAmount) КАК "Общие расходы"
  ОТ [Заказ] O
  ПРИСОЕДИНЯЙТЕСЬ к клиенту C НА O.CustomerId = C.Id
 ГРУППА ПО C.Id, C.LastName + ',' + C.FirstName
 ЗАКАЗАТЬ ПО СУММЕ (O.TotalAmount) DESC
 
  ВЫБЕРИТЕ C.Id, C.LastName + ',' + C.FirstName AS 'Имя клиента',
       СУММА (O.TotalAmount) КАК "Общие расходы"
  ОТ [Заказ] O
  ПРИСОЕДИНЯЙТЕСЬ К КЛИЕНТУ C ON O.CustomerId = C.Id
 ГРУППА ПО C.Id, C.LastName + ',' + C.FirstName
 ЗАКАЗАТЬ ПО СУММЕ (O.TotalAmount) DESC
  

Попробуйте вживую

Псевдонимы таблиц упрощают написание предложений JOIN и ORDER BY.
Псевдоним C в C.Id помогает идентифицировать идентификатор клиента по сравнению с идентификатором заказа.

Результатов: 89 записей

Id Клиент Всего израсходовано
63 Клосс, Хорст 117483.39
71 Паваротти, Хосе 115673,39
20 Мендель, Роланд 113236,68
37 Маккенна, Патрисия 57317,39
65 Уилсон, Паула 52245.90

SQL как инструмент анализа данных.Как SQL используется для эффективного выполнения… | Сонер Йылдырым

Как SQL используется для эффективной фильтрации и преобразования данных

Фотография Исаака Смита на Unsplash

SQL — это язык, используемый для управления данными в реляционных базах данных. Основным компонентом реляционной базы данных является таблица, в которой хранятся данные в табличной форме с помеченными строками и столбцами.

Мы запрашиваем данные из реляционной базы данных с помощью оператора select SQL. Оператор select очень универсален и гибок с точки зрения операций преобразования и фильтрации данных.

В этом смысле SQL можно рассматривать как инструмент анализа данных. Преимущество использования SQL для преобразования и фильтрации данных состоит в том, что мы получаем только те данные, которые нам нужны. Это более практично и эффективно, чем извлечение всех данных с последующим применением этих операций.

В этой статье мы рассмотрим 7 примеров, чтобы продемонстрировать, как SQL можно использовать в качестве инструмента анализа данных. Сложность примеров неуклонно увеличивается, поэтому лучше, если вы дойдете до конца.

Ранее я сохранял набор данных о медицинских расходах, доступный на Kaggle, в таблицу SQL, называемую страховкой.Давайте сначала посмотрим на таблицу, отобразив первые 5 строк.

 mysql> выберите * из страховки 
-> лимит 5;

страховая таблица (изображение автора)

«*» означает, что мы хотим отображать весь столбец, а ключевое слово limit определяет количество отображаемых строк.

Набор данных содержит некоторую личную информацию и сумму, взимаемую за страхование.

Пример 1

Мы можем рассчитать среднюю сумму оплаты для курящих и некурящих.

 mysql> выберите курильщика, в среднем (расходы) 
-> из страховки
-> группа по курильщикам; + -------- + ----------------- +
| курильщик | средн. (начисления) |
+ -------- + ----------------- +
| нет | 8434.268297857 |
| да | 32050.231831532 |
+ -------- + ----------------- +

Это похоже на группу по функциям панд. Мы выбираем столбцы «Курильщик» и «Плата» и применяем функцию усреднения к начислениям. Оператор group by позволяет разделять строки на основе различных категорий в столбце курильщика.Таким образом, в результате мы получаем два средних значения.

Если мы хотим увидеть общее среднее значение, нам нужно только выбрать столбец сборов.

 mysql> выберите среднее (расходы) из страховки; + ----------------- + 
| средн.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *