Поделиться через


Правила ввода значений для поиска (визуальные инструменты для баз данных)

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

  • текстовых значений;

  • числовых значений;

  • дат;

  • логических значений.

ПримечаниеПримечание

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

Поиск по текстовым значениям

Следующие правила применяются при вводе в условие поиска текстовых значений:

  • Кавычки   Заключайте текстовые значения в одинарные кавычки (например при указании фамилии):

    'Smith'
    

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

    ПримечаниеПримечание

    В некоторых базах данных элементы в одинарных кавычках интерпретируются как значения литералов, тогда как элементы, заключенные в двойные кавычки, — как объекты базы данных (например имена столбцов и таблиц). Таким образом, даже если конструктор запросов и представлений воспримет элементы, заключенные в двойные кавычки, они могут быть интерпретированы не так, как ожидается.

  • Использование апострофов Если искомые данные содержат одинарную кавычку (апостроф), введите вместо него две одинарных кавычки, чтобы указать, что апостроф входит в значение литерала, а не завершает его. Например, при поиске значения «Swann's Way» введите:

    ='Swann''s Way'
    
  • Максимальный размер Не превышайте при вводе длинных строк максимальную длину инструкции SQL для базы данных.

  • Учет регистра символов Соблюдайте регистр символов, если используемая база данных его учитывает. Чувствительность поиска текста к регистру символов определяется базой данных. Например, некоторые базы данных трактуют оператор «=» как точное совпадение с учетом регистра символов, а другие допускают любые комбинации прописных и строчных букв.

    Если нет уверенности в том, что поиск в базе данных учитывает регистр символов, пользуйтесь для преобразования регистра в условии поиска функциями UPPER и LOWER, как показано в следующем примере:

    WHERE UPPER(lname) = 'SMITH'
    

Поиск по числовым значениям

При вводе в условие поиска числовых значений должны применяться следующие правила:

  • Кавычки Не заключайте числа в кавычки.

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

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

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

    > 1.23456e-9
    

Поиск по датам

Формат ввода даты зависит от базы данных и от того, в какой области конструктора запросов и представлений вводятся данные.

ПримечаниеПримечание

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

Конструктор запросов и представлений может работать со следующими форматами даты:

  • Определяется языковым стандартом Формат даты, указанный в диалоговом окне Свойства языка и стандартов Windows.

  • Определяется базой данных Любой формат, воспринимаемый базой данных.

  • По стандарту ANSI Формат, в котором используются фигурные скобки, маркер «d» для обозначения даты и дата в символьном виде, как в следующем примере:

    { d '1990-12-31' }
    
  • Дата и время по стандарту ANSI Аналогично дате по стандарту ANSI, но с указанием маркера «ts» вместо «d» и с добавлением к дате часов, минут и секунд (в 24-часовом формате), как в следующем примере (для 31 декабря 1990 года):

    { ts '1990-12-31 00:00:00' }
    

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

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

Область

Формат даты

Критерии

Определяется языковым стандартом, базой данных, стандартом ANSI

Дата, введенная в области критериев, в области «SQL» преобразуется в формат, совместимый с базой данных.

SQL

Определяется базой данных, стандартом ANSI

Результаты

Определяется языковым стандартом

Поиск по логическим значениям

Форматы логических значений различаются для разных баз данных. Чаще всего значение False хранится в виде нуля (0). Значение True чаще всего хранится в виде 1 или иногда -1. При вводе логических значений в условиях поиска применяются следующие правила:

  • Для поиска значения False указывайте нуль, как в следующем примере:

    SELECT * FROM authorsWHERE contract = 0
    
  • Если неизвестно, какое значение указывать для поиска True, попробуйте указать 1, как в следующем примере:

    SELECT * FROM authorsWHERE contract = 1
    
  • В качестве альтернативного решения можно ограничить область поиска указанием ненулевого значения, как в следующем примере:

    SELECT * FROM authorsWHERE contract <> 0