Правила именование объектов SQL: таблицы и столбцы

Как правильно задавать имена в SQL?

У каждого объекта в базе данных есть уникальное имя. Имена используются в инструкциях SQL и указывают, над каким объектом базы данных должно быть выполнено действие. Фундаментальными именованными объектами в реляцион­ной базе данных являются имена таблиц, столбцов и пользователей; правила их именования были определены еще в стандарте SQL1. В последующих версиях стандарта этот список был значительно расширен и теперь включает схемы (коллекции таблиц), ограничения (ограничительные условия, накладываемые на содержимое таблиц и их отношения), домены (допустимые наборы значений, ко­торые могут быть занесены в столбец) и ряд других типов объектов. Во многих СУБД существуют дополнительные виды именованных объектов, например хра­нимые процедуры, отношения "первичный ключ-внешний ключ", формы для ввода данных и схемы репликации данных.

В соответствии с первоначальным стандартом ANSI/ISO, имена в SQL должны содержать от 1 до 18 символов, начинаться с буквы и не могут содержать пробельные символы или специальные символы пунктуации. В стандарте SQL2 максимальное число символов в имени увеличено до 127 (дословно в стандарте сказано "менее 128"), и это количество остается неизменным до последнего стандарта SQL:2006. На практике поддержка имен в различных СУБД реализована по-разному. Чаще всего приходится сталкиваться с ограничениями на имена, связанные с другим программ­ным обеспечением вне базы данных (например, имена пользователей, которые могут совпадать с именами, используемыми операционной системой). Различные продук­ты отличаются и по отношению к применению в именах специальных символов. С точки зрения переносимости, лучше воздержаться от длинных имен и не приме­нять в них никаких специальных символов, за исключением символа подчеркива­ния, который используется для разделения слов в именах SQL.

Имена таблиц

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

Имена таблиц в учебной базе данных (ORDERS, CUSTOMERS, OFFICES, SALESREPS) могут служить хорошими примерами. В персональных базах данных или базах дан­ных небольших отделов выбором имен для таблиц обычно занимается разработчик или проектировщик базы данных.

В более крупных корпоративных базах данных могут существовать определен­ные корпоративные стандарты именования таблиц, позволяющие избежать кон­фликтов имен. Кроме того, большинство СУБД позволяет различным пользовате­лям создавать таблицы с одинаковыми именами (например, и пользователь Joe, и пользователь Sam могут создать таблицу birthdays). СУБД обращается к необ­ходимой таблице в зависимости от того, кто из пользователей запрашивает дан­ные. При наличии соответствующих прав можно обращаться к таблицам, вла­дельцами которых являются другие пользователи, с помощью полного, или квали­фицированного, имени таблицы. Оно состоит из имен владельца таблицы и собст­венно таблицы, разделенных точкой. Например, квалифицированное имя таблицы BIRTHDAYS, владельцем которой является пользователь SAM, имеет такой вид.

SAM.BIRTHDAYS

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

Стандарт ANSI/ISO SQL еще больше обобщает понятие квалифицированного имени таблицы. Он разрешает создавать именованное множество таблиц, назы­ваемое схемой. Вы можете обращаться к таблице определенной схемы с использо­ванием квалифицированного имени. Например, обращение к таблице BIRTHDAYS в схеме employee_info имеет следующий вид.

EMPLOYEE_INFO.BIRTHDAYS

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

Имена столбцов

Если в SQL-инструкции указано имя столбца, обычно SQL сам в состоянии оп­ределить, в какой из указанных в этой же инструкции таблиц содержится данный столбец. Однако если в инструкцию требуется включить два столбца из различных таблиц, но с одинаковыми именами, необходимо указать квалифицированные имена столбцов, которые однозначно определяют их местонахождение. Такое квалифи­цированное имя столбца состоит из имени таблицы, содержащей столбец, и имени столбца, разделенных точкой. Например, полное имя столбца SALES из таблицы SALESREPS имеет такой вид:

SALESREPS.SALES

Если столбец находится в таблице, владельцем которой является другой пользо­ватель, то в квалифицированном имени столбца следует использовать квалифици­рованное имя таблицы. Например, полное имя столбца birth_date в таблице BIRTHDAYS, владельцем которой является пользователь SAM, имеет следующий вид.

SAM.BIRTHDAYS.BIRTH_DATE

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

Вас заинтересует / Intresting for you:

SQL: Правила выполнения однота...
SQL: Правила выполнения однота... 1452 просмотров Дэйзи ак-Макарова Sat, 31 Jul 2021, 06:47:05
Типы данных SQL: стандарт ANSI...
Типы данных SQL: стандарт ANSI... 4939 просмотров Дэн Sat, 05 Jun 2021, 09:43:17
Операции SQL в базе данных Ora...
Операции SQL в базе данных Ora... 6801 просмотров Antoni Wed, 11 Apr 2018, 12:22:28
Назначение языка SQL и необход...
Назначение языка SQL и необход... 3599 просмотров Ирина Светлова Mon, 28 Jun 2021, 19:23:28
Войдите чтобы комментировать