Перейти к содержимому

Для чего в sql используются aliases

  • автор:

Алиасы в MySQL

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

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

Синтаксис

Синтаксис для ALIAS COLUMN в MySQL:

column_name [ AS ] alias_name

ИЛИ
Синтаксис для ALIAS A TABLE в MySQL:

table_name [ AS ] alias_name

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

column_name — оригинальное имя столбца, который вы хотите присвоить псевдониму.
table_name — оригинальное имя таблицы, которое вы хотите присвоить псевдониму.
AS — необязательный. Большинство программистов указывают спецификатор AS для назначения псевдонима столбцу, но не при назначении имени таблицы. Если вы укажете ключевое слово AS или нет, это не повлияет на псевдоним в MySQL. Это персональный выбор в MySQL, в отличие от других баз данных. (Наши примеры будут использовать AS для назначения имени столбца, но не указывать AS для назначения имени таблицы.)
alias_name — имя псевдонима для назначения столбцу или таблице.

Примечание

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

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

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

SQL — Псевдонимы Aliases

SQL-псевдонимы используются для предоставления таблицы или столбца таблицы временного имени.

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

Псевдонимы могут быть полезны, когда:

  • В запросе содержится более одной таблицы
  • Функции используются в запросе
  • Названия столбцов большие или не очень читаемые
  • Два или более столбца объединяются вместе

Синтаксис Aliases

SELECT column_name AS alias_name FROM table_name; Синтаксис таблицы псевдонимов SELECT column_name(s) FROM table_name AS alias_name;

Псевдоним для столбцов

Следующий оператор SQL создает два псевдонима: один для столбца user_id и один для столбца name:

Пример:

SELECT user_id as ID, name AS user FROM users;

Следующий оператор SQL создает два псевдонима: один для столбца name и один для столбца address.

Пример:

SELECT name AS user, address AS [Address User] FROM users;

Псевдонимы для таблиц

Следующий оператор SQL выбирает все счета от пользователя с помощью user_id и name. В запросе используются таблицы «users» и «invoice», которым даются псевдонимы таблиц «u» и «o».

Пример:

SELECT i.invoice_id, i.date, i.name FROM users AS u, invoice AS i WHERE u.name = "Том" AND u.user_id = i.user_id;

Зачем нужны alias-ы в БД?

JhaoDa

Основное назначение алиасов — устранение неоднозначности при наличии одноимённых таблиц/полей.

Дополнительно — удобство именования, особенно когда оригинальные имена длинные.

Если ещё смыслы, но они минорны.

Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос

Войдите, чтобы написать ответ

php

  • PHP
  • +3 ещё

Как сделать быструю сортировку и фильтрацию товаров в bitrix с учетом скидок которые указаны в правилах корзины?

  • 1 подписчик
  • вчера
  • 55 просмотров

Глава 5. Форматирование, псевдонимы, поставщики, сравнение

В некоторых примерах, приведенных в этой главе, требуется модуль SQL Server PowerShell. Модуль устанавливается как часть SQL Server Management Studio (SSMS). Он также используется в последующих главах. Скачайте и установите его на компьютер Windows 10 с лабораторной средой.

Форматирование как можно ближе к правому краю

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

Самыми распространенными командами форматирования являются Format-Table и Format-List . Кроме того, можно использовать команды Format-Wide и Format-Custom , но они менее популярны.

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

Get-Service -Name w32time | Select-Object -Property Status, DisplayName, Can* 
Status : Running DisplayName : Windows Time CanPauseAndContinue : False CanShutdown : True CanStop : True 

Воспользуемся командлетом Format-Table , чтобы вручную переопределить форматирование и отображать выходные данные в виде таблицы, а не списка.

Get-Service -Name w32time | Select-Object -Property Status, DisplayName, Can* | Format-Table 
 Status DisplayName CanPauseAndContinue CanShutdown CanStop ------ ----------- ------------------- ----------- ------- Running Windows Time False True True 

Выходными данными по умолчанию для Get-Service являются три свойства в таблице.

Get-Service -Name w32time 
Status Name DisplayName ------ ---- ----------- Running w32time Windows Time 

Воспользуемся командлетом Format-List , чтобы переопределить форматирование по умолчанию и возвращать результаты в виде списка.

Get-Service -Name w32time | Format-List 
Name : w32time DisplayName : Windows Time Status : Running DependentServices : <> ServicesDependedOn : <> CanPauseAndContinue : False CanShutdown : True CanStop : True ServiceType : Win32ShareProcess 

Обратите внимание, что, если просто передать Get-Service в командлет Format-List , он будет возвращать дополнительные свойства. Эта возможность поддерживается не для каждой команды, так как форматирование определенной команды настраивается в фоновом режиме.

Главное, что нужно знать при использовании команд форматирования, это то, что они создают объекты форматирования, которые отличаются от обычных объектов в PowerShell.

Get-Service -Name w32time | Format-List | Get-Member 
 TypeName: Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() autosizeInfo Property Microsoft.PowerShell.Commands.Inter. ClassId2e4f51ef21dd47e99d3c952918aff9cd Property string ClassId2e4f51ef21dd47e99d3c9. groupingEntry Property Microsoft.PowerShell.Commands.Inter. pageFooterEntry Property Microsoft.PowerShell.Commands.Inter. pageHeaderEntry Property Microsoft.PowerShell.Commands.Inter. shapeInfo Property Microsoft.PowerShell.Commands.Inter. TypeName: Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() ClassId2e4f51ef21dd47e99d3c952918aff9cd Property string ClassId2e4f51ef21dd47e99d3c9. groupingEntry Property Microsoft.PowerShell.Commands.Inter. shapeInfo Property Microsoft.PowerShell.Commands.Inter. TypeName: Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() ClassId2e4f51ef21dd47e99d3c952918aff9cd Property string ClassId2e4f51ef21dd47e99d3c9. formatEntryInfo Property Microsoft.PowerShell.Commands.Inter. outOfBand Property bool outOfBand writeStream Property Microsoft.PowerShell.Commands.Inter. TypeName: Microsoft.PowerShell.Commands.Internal.Format.GroupEndData Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() ClassId2e4f51ef21dd47e99d3c952918aff9cd Property string ClassId2e4f51ef21dd47e99d3c9. groupingEntry Property Microsoft.PowerShell.Commands.Inter. TypeName: Microsoft.PowerShell.Commands.Internal.Format.FormatEndData Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() ClassId2e4f51ef21dd47e99d3c952918aff9cd Property string ClassId2e4f51ef21dd47e99d3c9. groupingEntry Property Microsoft.PowerShell.Commands.Inter. 

Это означает, что команды форматирования невозможно передать в большинство других команд. Их можно передать в некоторые команды Out-* . Но только в эти. Именно поэтому необходимо выполнять форматирование в самом конце строки (форматирование как можно ближе к правому краю).

Aliases

Псевдоним в PowerShell — это более короткое имя команды. PowerShell содержит набор встроенных псевдонимов, а также позволяет определять собственные псевдонимы.

Для поиска псевдонимов используется командлет Get-Alias . Если псевдоним для команды уже известен, параметр Name поможет определить команду, с которой он связан.

Get-Alias -Name gcm 
CommandType Name Version Source ----------- ---- ------- ------ Alias gcm -> Get-Command 

В качестве значения параметра Name можно указать несколько псевдонимов.

Get-Alias -Name gcm, gm 
CommandType Name Version Source ----------- ---- ------- ------ Alias gcm -> Get-Command Alias gm -> Get-Member 

Вы заметите, что параметр Name опускается, так как он является позиционным параметром.

Get-Alias gm 
CommandType Name Version Source ----------- ---- ------- ------ Alias gm -> Get-Member 

Чтобы найти псевдонимы для команды, необходимо использовать параметр Definition.

Get-Alias -Definition Get-Command, Get-Member 
CommandType Name Version Source ----------- ---- ------- ------ Alias gcm -> Get-Command Alias gm -> Get-Member 

Параметр Definition не может использоваться позиционно, поэтому он должен быть задан.

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

Будьте внимательны при создании собственных псевдонимов, так как они будут существовать только в текущем сеансе PowerShell на вашем компьютере.

Поставщики

Поставщик в PowerShell — это интерфейс, который позволяет файловой системе, например, получить доступ к хранилищу данных. В PowerShell имеется ряд встроенных поставщиков.

Get-PSProvider 
Name Capabilities Drives ---- ------------ ------ Registry ShouldProcess, Transactions Alias ShouldProcess Environment ShouldProcess FileSystem Filter, ShouldProcess, Credentials Function ShouldProcess Variable ShouldProcess Certificate ShouldProcess WSMan Credentials

Как видно в предыдущих результатах, существуют встроенные поставщики для реестра, псевдонимов, переменных среды, файловой системы, функций, переменных, сертификатов и WSMan.

Фактические диски, используемые этими поставщиками для предоставления хранилища данных, можно определить с помощью командлета Get-PSDrive . Командлет Get-PSDrive не только отображает диски, предоставляемые поставщиками, но и выводит логические диски Windows, включая диски, сопоставленные с сетевыми папками.

Get-PSDrive 
Name Used (GB) Free (GB) Provider Root ---- --------- --------- -------- ---- A FileSystem A:\ Alias Alias C 14.41 112.10 FileSystem C:\ Cert Certificate \ D FileSystem D:\ Env Environment Function Function HKCU Registry HKEY_CURRENT_USER HKLM Registry HKEY_LOCAL_MACHINE Variable Variable WSMan WSMan 

Сторонние модули, такие как модуль PowerShell для Active Directory и модуль PowerShell для SQL Server, имеют собственные поставщики PowerShell и PSDrive.

Импортируем модули PowerShell для Active Directory и SQL Server.

Import-Module -Name ActiveDirectory, SQLServer 

Проверим, были ли добавлены дополнительные поставщики PowerShell.

Get-PSProvider 
Name Capabilities Drives ---- ------------ ------ Registry ShouldProcess, Transactions Alias ShouldProcess Environment ShouldProcess FileSystem Filter, ShouldProcess, Credentials Function ShouldProcess Variable ShouldProcess ActiveDirectory Include, Exclude, Filter, Shoul. SqlServer Credentials

Обратите внимание, что в предыдущем наборе результатов теперь существует два новых поставщика PowerShell: один для Active Directory и другой для SQL Server.

Для каждого из этих модулей также был добавлен диск PSDrive.

Get-PSDrive 
Name Used (GB) Free (GB) Provider Root ---- --------- --------- -------- ---- A FileSystem A:\ AD ActiveDire. //RootDSE/ Alias Alias C 19.38 107.13 FileSystem C:\ Cert Certificate \ D FileSystem D:\ Env Environment Function Function HKCU Registry HKEY_CURRENT_USER HKLM Registry HKEY_LOCAL_MACHINE SQLSERVER SqlServer SQLSERVER:\ Variable Variable WSMan WSMan 

Доступ к дискам PSDrive осуществляется так же, как к традиционной файловой системе.

Get-ChildItem -Path Cert:\LocalMachine\CA 
 PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\CA Thumbprint Subject ---------- ------- FEE449EE0E3965A5246F000E87FDE2A065FD89D4 CN=Root Agency D559A586669B08F46A30A133F8A9ED3D038E2EA8 OU=www.verisign.com/CPS Incorporated LIABI. 109F1CAED645BB78B3EA2B94C0697C740733031C CN=Microsoft Windows Hardware Compatibility. 

Операторы сравнения

PowerShell содержит несколько операторов сравнения, которые используются для сравнения значений или поиска значений, соответствующих определенным шаблонам. В таблице 5-1 содержится список операторов сравнения в PowerShell.

Оператор Определение
-eq Равно
-ne Не равно
-gt Больше
-ge Больше или равно
-lt Меньше чем
-le Меньше или равно
-Like Соответствие с использованием подстановочного знака * .
-NotLike Несоответствие с использованием подстановочного знака * .
-Match Соответствует указному регулярному выражению.
-NotMatch Не соответствует указанному регулярному выражению.
-Contains Определяет, что коллекция содержит указанное значение.
-NotContains Определяет, что коллекция не содержит указанное значение.
-In Определяет, что указанное значение находится в коллекции.
-NotIn Определяет, что указанное значение не находится в коллекции.
-Replace Заменяет указанное значение.

Все операторы, перечисленные в таблице 5-1, не учитывают регистр. Поместите c перед оператором, приведенным в таблице 5-1, чтобы сделать его чувствительным к регистру. Например, -ceq — это зависящая от регистра версия оператора сравнения -eq .

Если используется оператор сравнения «равно», PowerShell в формате, где первая буква каждого слова прописная, а остальные строчные, соответствует powershell в нижнем регистре.

'PowerShell' -eq 'powershell' 
True 

Если используется зависящая от регистра версия оператора сравнения «равно», эти два значения не равны.

'PowerShell' -ceq 'powershell' 
False 

Оператор сравнения «не равно» изменяет условие на противоположное.

'PowerShell' -ne 'powershell' 
False 

Операторы «больше», «больше или равно», «меньше», «меньше или равно» работают со строковыми или числовыми значениями.

5 -gt 5 
False 

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

5 -ge 5 
True 

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

5 -lt 10 
True 

Операторы -Like и -Match могут приводить в замешательство даже опытных пользователей PowerShell. -Like используется с подстановочными знаками * и ? для выполнения совпадений с указанным шаблоном.

'PowerShell' -like '*shell' 
True 

-Match использует регулярное выражение для выполнения сопоставления.

'PowerShell' -match '^*.shell$' 
True 

Для сохранения чисел с 1 по 10 в переменной воспользуемся оператором диапазона.

$Numbers = 1..10 

Определим, содержит ли переменная $Numbers число 15.

$Numbers -contains 15 
False 

Определим, содержит ли она число 10.

$Numbers -contains 10 
True 

-NotContains изменяет логику на противоположную, чтобы проверить, что переменная $Numbers не содержит значение.

$Numbers -notcontains 15 
True 

В предыдущем примере возвращается логическое значение True, поскольку переменная $Numbers не содержит число 15. Однако она содержит число 10, поэтому при тестировании получим False.

$Numbers -notcontains 10 
False 

Оператор сравнения in впервые появился в PowerShell версии 3.0. Он используется, чтобы определить, находится ли значение в массиве. $Numbers переменная находится в массиве, так как он содержит несколько значений.

15 -in $Numbers 
False 

Другими словами, -in выполняет ту же проверку, что и оператор сравнения contains, за исключением того, что действие происходит в обратном направлении.

10 -in $Numbers 
True 

15 не находится в массиве $Numbers , поэтому в следующем примере возвращается значение False.

15 -in $Numbers 
False 

Точно так же, как оператор -contains , not меняет логику оператора -in на обратную.

10 -notin $Numbers 
False 

В предыдущем примере возвращается значение False, поскольку массив $Numbers содержит число 10, а условием было проверить, что он не содержит число 10.

15 не находится в массиве $Numbers , поэтому возвращается логическое значение True.

15 -notin $Numbers 
True 

Оператор -replace делает то, что вы думаете. Он используется для замены чего-либо. При указании одного значения это значение заменяется пустым (т. е. ничем). В следующем примере Shell заменяется пустым значением.

'PowerShell' -replace 'Shell' 
Power 

Если вы хотите заменить значение другим значением, укажите новое значение после шаблона, который требуется заменить. SQL Saturday in Baton Rouge — это мероприятие, в котором я стараюсь принимать участие каждый год. В следующем примере я заменяю слово Saturday на сокращение Sat.

'SQL Saturday - Baton Rouge' -Replace 'saturday','Sat' 
SQL Sat - Baton Rouge 

Существуют также такие методы, как Replace() , которые можно использовать для замены точно так же, как оператор замены. Однако оператор -Replace не учитывает регистр по умолчанию, а метод Replace() зависит от регистра.

'SQL Saturday - Baton Rouge'.Replace('saturday','Sat') 
SQL Saturday - Baton Rouge 

Обратите внимание, что слово Saturday не было заменено в предыдущем примере. Это обусловлено тем, что оно было указано в другом регистре, чем исходное слово. Если слово Saturday задается в том же регистре, что и исходное, метод Replace() заменяет его ожидаемым образом.

'SQL Saturday - Baton Rouge'.Replace('Saturday','Sat') 
SQL Sat - Baton Rouge 

При использовании методов для преобразования данных следует соблюдать осторожность, так как могут возникнуть непредвиденные проблемы, такие как непрохождение турецкого теста. Пример см. в статье блога Using Pester to Test PowerShell Code with Other Cultures. Чтобы избежать проблем такого типа, рекомендуется по возможности использовать оператор вместо метода.

Несмотря на то что операторы сравнения можно использовать, как показано в предыдущих примерах, обычно я применяю их с командлетом Where-Object для выполнения фильтрации.

Сводка

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

Просмотр

  1. Для чего нужно выполнять форматирование как можно ближе к правому краю?
  2. Как определить фактический командлет для псевдонима % ?
  3. Почему не следует использовать псевдонимы в сценариях, которые вы сохраняете, или коде, используемом совместно с другими пользователями?
  4. Выведите список каталогов на дисках, связанных с одним из поставщиков реестра.
  5. В чем заключается одно из основных преимуществ использования оператора замены вместо метода замены?

Рекомендуем прочесть

  • Format-Table
  • Format-List
  • Format-Wide
  • about_Aliases
  • about_Providers
  • about_Comparison_Operators
  • about_Arrays

Совместная работа с нами на GitHub

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

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

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