Как назвать столбец в sql
Столбцы с именем
Ниже приведены условия, при которых столбцы наборов строк с соответствующим именем сопоставляются с итоговым XML-документом с учетом регистра:
имя столбца начинается с символа @;
имя столбца не начинается с символа @;
имя столбца не начинается с символа @ и содержит косую черту (/);
несколько столбцов имеют одинаковый префикс;
один из столбцов имеет другое имя.
Имя столбца начинается с символа @
Обратите внимание, что на одном уровне атрибуты должны располагаться перед любыми другими типами узлов, например, перед узлами элементов и текстовыми узлами. Следующий запрос возвращает ошибку:
Имя столбца не начинается с символа @
Имя столбца не начинается с символа @ и содержит косую черту (/)
Если имя столбца не начинается с символа @, но содержит косую черту (/), оно является признаком иерархии XML. Например, если имя столбца «Name1/Name2/Name3. /Namen _ «, каждое имя Name_ i _ представляет имя элемента, вложенного в элемент текущей записи (для i=1), или находящегося в элементе с именем Name_ i-1 . Если имя Namen* _ начинается с «@», оно сопоставляется с атрибутом элемента Name_ n-1 *.
Например, следующий запрос возвращает идентификатор работника и имя, представленное сложным элементом EmpName, который включает в себя имя, отчество и фамилию работника.
Отчество работника имеет значение NULL, которое по умолчанию сопоставляется с отсутствием элемента или атрибута. Если необходимо сформировать элементы для значений NULL, укажите директиву ELEMENTS с ключевым словом XSINIL, как показано в данном запросе.
По умолчанию в режиме PATH формируется элементно-ориентированный XML-документ. Поэтому указание директивы ELEMENTS в режиме PATH не имеет никакого смысла. Однако как показано в предыдущем примере, директива ELEMENTS с ключевым словом XSINIL может быть полезна при формировании элементов для значений NULL.
Несколько столбцов имеют одинаковый префикс пути
Один из столбцов имеет другое имя
Если между столбцами встречается столбец с другим именем, группирование будет нарушено, как это показано в следующем измененном запросе. Добавляя столбцы с адресом между столбцами FirstName и MiddleName, данный запрос нарушает группирование столбцов FirstName, MiddleName и LastName, указанное в предыдущем запросе.
Урок 2 SQL. Переименование столбца и применение агрегатных функций
Переименование полей AS
Имена столбцов в запросах можно переименовывать. Это придает результатам более читабельный вид.
В языке SQL переименование полей связано с использованием ключевого слова AS, которое и используется для переименования имен полей в результирующих наборах
Синтаксис:
Рассмотрим пример переименования в SQL:
SELECT name, zarplata AS низкая_зарплата FROM teachers WHERE zarplata teachers вывести поле name и вычислить сумму зарплаты и премии, назвав поле «зарплата_премия»
SELECT name, (zarplata+premia) AS zarplata_premia FROM teachers;
Агрегатные функции в SQL
Для получения итоговых значений и вычисления выражений используются агрегатные функции в sql:
Функция | Описание |
---|---|
COUNT (*) | Возвращает количество строк таблицы. |
COUNT (имя поля) | Возвращает количество значений в указанном столбце. |
SUM (имя поля) | Возвращает сумму значений в указанном столбце. |
AVG (имя поля) | Возвращает среднее значение в указанном столбце. |
MIN (имя поля) | Возвращает минимальное значение в указанном столбце. |
MAX (имя поля) | Возвращает максимальное значение в указанном столбце. |
Все агрегатные функции возвращают единственное значение.
SELECT MAX(zarplata) AS макс_зп FROM teachers;
Рассмотрим более сложный пример использования агрегатных функций в sql.
SELECT COUNT( * ) FROM `pc` WHERE `Номер` IN ( SELECT `Номер` FROM product WHERE Производитель = «Америка» )
Предложение GROUP BY в SQL
Оператор group by в sql обычно используется совместно с агрегатными функциями.
Рассмотрим пример с таблицей lessons :
SELECT count(tid) as Иванов from lessons WHERE tid=1
Результат:
SELECT course, COUNT( tid ) AS Иванов FROM lessons WHERE tid =1 GROUP BY course
Результат:
Оператор Having SQL
Предложение HAVING в SQL необходимо для проверки значений, которые получены с помощью агрегатной функции после группировки (после использования GROUP BY ). Такая проверка не может содержаться в предложении WHERE.
Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite
Базы данных
SQL псевдонимы
В этом учебном материале вы узнаете, как использовать SQL псевдонимы (временные имена для столбцов или таблиц) с синтаксисом и примерами.
Описание
SQL ALIASES можно использовать для создания временного имени для столбцов или таблиц.
Синтаксис
Синтаксис псевдонима столбца в SQL:
Или
Синтаксис псевдонима таблицы в SQL:
Параметры или аргументы
Примечание
Обычно псевдонимы используются для облегчения чтения заголовков столбцов в наборе результатов. Чаще всего вы будете использовать псевдоним столбца при использовании в запросе статистической функции, такой как MIN, MAX, AVG, SUM или COUNT.
Давайте рассмотрим пример использования псевдонима имени столбца в SQL.
В этом примере у нас есть таблица employees со следующими данными:
employee_number | first_name | last_name | salary | dept_id |
---|---|---|---|---|
1001 | Justin | Bieber | 62000 | 500 |
1002 | Selena | Gomez | 57500 | 500 |
1003 | Mila | Kunis | 71000 | 501 |
1004 | Tom | Cruise | 42000 | 501 |
Продемонстрируем, как создать псевдоним столбца. Введите следующий SQL оператор:
Будет выбрано 2 записи. Вот результаты, которые вы получите:
dept_id | total |
---|---|
500 | 2 |
501 | 2 |
В этом примере мы для COUNT(*) использовали псевдоним total. В результате итоговое значение будет отображаться в качестве заголовка для второго столбца при возврате набора результатов. Поскольку в нашем псевдониме не было пробелов, нам не нужно заключать псевдоним в кавычки.
Теперь давайте перепишем наш запрос, чтобы включить пробел в псевдоним столбца:
Будет выбрано 2 записи. Вот результаты, которые вы получите:
dept_id | total employees |
---|---|
500 | 2 |
501 | 2 |
В этом примере мы добавили в поле COUNT(*) псевдоним «total employees», поэтому он станет заголовком для второго столбца в нашем наборе результатов. Поскольку в псевдониме этого столбца есть пробелы, «total employees» должны быть заключены в кавычки в операторе SQL.
Пример псевдоним для имени таблицы
Когда вы создаете псевдоним таблицы, это происходит потому, что вы планируете перечислить одно и то же имя таблицы более одного раза в FROM, или вы хотите сократить имя таблицы, чтобы сделать SQL оператор короче и проще для чтения.
Давайте рассмотрим пример псевдонима имени таблицы в SQL.
В этом примере у нас есть таблица products со следующими данными:
product_id | product_name | category_id |
---|---|---|
1 | Pear | 50 |
2 | Banana | 50 |
3 | Orange | 50 |
4 | Apple | 50 |
5 | Bread | 75 |
6 | Sliced Ham | 25 |
7 | Kleenex | NULL |
И таблица с именем categories со следующими данными:
category_id | category_name |
---|---|
25 | Deli |
50 | Produce |
75 | Bakery |
100 | General Merchandise |
125 | Technology |
Теперь давайте объединим эти 2 таблицы и псевдонимы каждого из имен таблиц. Введите следующий SQL оператор:
Правила именование объектов SQL: таблицы и столбцы
У каждого объекта в базе данных есть уникальное имя. Имена используются в инструкциях SQL и указывают, над каким объектом базы данных должно быть выполнено действие. Фундаментальными именованными объектами в реляционной базе данных являются имена таблиц, столбцов и пользователей; правила их именования были определены еще в стандарте SQL1. В последующих версиях стандарта этот список был значительно расширен и теперь включает схемы (коллекции таблиц), ограничения (ограничительные условия, накладываемые на содержимое таблиц и их отношения), домены (допустимые наборы значений, которые могут быть занесены в столбец) и ряд других типов объектов. Во многих СУБД существуют дополнительные виды именованных объектов, например хранимые процедуры, отношения «первичный ключ-внешний ключ», формы для ввода данных и схемы репликации данных.
В соответствии с первоначальным стандартом ANSI/ISO, имена в SQL должны содержать от 1 до 18 символов, начинаться с буквы и не могут содержать пробельные символы или специальные символы пунктуации. В стандарте SQL2 максимальное число символов в имени увеличено до 127 (дословно в стандарте сказано «менее 128»), и это количество остается неизменным до последнего стандарта SQL:2006. На практике поддержка имен в различных СУБД реализована по-разному. Чаще всего приходится сталкиваться с ограничениями на имена, связанные с другим программным обеспечением вне базы данных (например, имена пользователей, которые могут совпадать с именами, используемыми операционной системой). Различные продукты отличаются и по отношению к применению в именах специальных символов. С точки зрения переносимости, лучше воздержаться от длинных имен и не применять в них никаких специальных символов, за исключением символа подчеркивания, который используется для разделения слов в именах SQL.
Имена таблиц
Если в инструкции указано имя таблицы, SQL предполагает, что происходит обращение к одной из ваших собственных таблиц (т.е. таблиц, которые создали вы). Обычно таблицам присваиваются короткие, но описательные имена.
В общем случае в инструкциях SQL везде, где должно использоваться имя таблицы, можно использовать ее квалифицированное имя.
Стандарт ANSI/ISO SQL еще больше обобщает понятие квалифицированного имени таблицы. Он разрешает создавать именованное множество таблиц, называемое схемой. Вы можете обращаться к таблице определенной схемы с использованием квалифицированного имени. Например, обращение к таблице BIRTHDAYS в схеме employee_info имеет следующий вид.
В новых статьях я дам больше информации о схемах, пользователях и иных аспектах структуры SQL-базы данных. Пока что просто помните, что пользователи и схемы — это не одно и то же, и в действительности один пользователь может быть владельцем нескольких схем.
Имена столбцов
Если в SQL-инструкции указано имя столбца, обычно SQL сам в состоянии определить, в какой из указанных в этой же инструкции таблиц содержится данный столбец. Однако если в инструкцию требуется включить два столбца из различных таблиц, но с одинаковыми именами, необходимо указать квалифицированные имена столбцов, которые однозначно определяют их местонахождение. Такое квалифицированное имя столбца состоит из имени таблицы, содержащей столбец, и имени столбца, разделенных точкой. Например, полное имя столбца SALES из таблицы SALESREPS имеет такой вид:
Квалифицированное имя столбца можно использовать вместо короткого имени в инструкциях SQL там, где используется простое (неквалифицированное) имя; об исключениях говорится при описании конкретных инструкций SQL.
Лучшая практика для обозначения столбцов таблицы SQL
Я буду участвовать в большом проекте, и я хотел бы знать, какая, на ваш взгляд, лучшая практика для именования столбцов таблицы SQL.
Допустим, у нас есть таблица продуктов. Какое из следующих наименований вы предпочитаете?
Префикс имен столбцов с именем таблицы не добавляет никаких преимуществ и помех для кода. Первый выбор лучше. Только столбец “ID” может иметь преимущество с префиксом, поскольку это, скорее всего, ключ, и, вероятно, есть другие таблицы с тем же столбцом.
Определенно первый. Во-вторых, это нарушение принципа DRY.
Если у меня есть таблица продуктов и таблица клиентов, мой идентификатор становится ProductID и CustomerID соответственно. Я считаю, что это проще, поскольку идентификатор может означать что угодно, особенно если вы пытаетесь вернуть оба запроса. Но это все зависит от предпочтений.
Но сохраните его консистентом – все, что я могу сказать.
Я бы пошел с первым выбором, не повторяйте имя таблицы в поле, что произойдет, если имя таблицы изменится?
если вы собираетесь использовать много таблицы с тем же именем поля, это не имеет значения, используйте псевдонимы
Я согласен с теми, кто говорит, что имя таблицы должно быть опущено из всех столбцов, кроме идентификатора.
Если столбец является внешним ключом, то я хотел бы дать ему то же имя, что и столбец, который он ссылается. Это, как правило, упрощает и упрощает запоминание. Есть два исключения из этого правила. Если более одного внешнего ключа ссылается на один и тот же столбец в одной и той же таблице, для их отличия от них потребуется какой-то префикс, основанный на их использовании. И если внешний ключ имеет специализированное использование, ему может понадобиться другое имя (например, ManagerPersonId, а не PersonId).
Это правило о именах внешних ключей поощряет префикс столбца идентификатора с именем таблицы.
Кроме того, если первичный ключ таблицы является синтетическим идентификатором, как столбец идентификатора, тогда становится очень естественно называть его TableNameId, поскольку это точно описывает его.
Во всех остальных случаях префиксные имена столбцов с именем таблицы бесполезны, избыточны и подробны.
Лично я считаю префикс product_ избыточным и раздражающим. Это, однако, в конечном счете, вопрос личного предпочтения (или единодушного согласия команды).
Первый, без вопросов. Именование столбца id Product_id может быть полезна в некоторых случаях (хотя в данный момент я не могу придумать ни одного), но в противном случае абсолютно нет смысла повторять имя таблицы в имени каждого столбца.
И если вы выберете другую альтернативу, я стал не любить _ в именах столбцов, поэтому вместо этого я бы использовал ProductId.
Я бы пошел со вторым. Это не вопрос “Не повторяй себя” (это не код). Поля продуктов полезны только с продуктами, и ничего больше.
См. ISO/IEC 11179 для получения дополнительных идей.
Никто не упомянул об этом, поэтому я думал, что хочу – я борюсь с такими вещами, как колонка “имя”. Я нахожу себя префиксом общих столбцов, таких как “имя”, потому что он настолько неоднозначен. Но я делаю это для удобочитаемости, а не как правило префикса в одеяле.
Я бы добавил имя таблицы только для идентификатора, например. product_ID просто из-за личных предпочтений и оставить остальных, как они есть в вашем первом примере.
Я бы только префикс столбца ID (PK) с именем таблицы, поскольку вы можете иметь согласованные имена для столбцов при использовании его как FK в другой таблице. Не нужно префикс других столбцов.
Думаю, это очень важно.
При определении собственного идентификатора таблицы вы должны использовать только ID, однако при определении поля внешнего ключа вы должны использовать имя таблицы.
Таблица с именем Table1 и filds:
Это не имеет смысла, правильно?
Однако На внешних ключах поле внешнего ключа должно иметь префикс имени таблицы.
Мы называем столбцы первой буквой имени таблицы, подчеркивания и самого столбца. например, в таблице blog_msgs мы используем m_id, m_blog, m_title, m_content
и в таблице блогов мы называем b_id, b_title, b_author.
Это хорошо из-за этого, этот метод является коротким, и вы можете отличаться между заголовком блога и заголовком сообщения первым письмом, название блога – b_title, а заголовок сообщения в блоге – m_title (m для сообщения).